1 #ifndef __CS_CONVECTION_DIFFUSION_H__
2 #define __CS_CONVECTION_DIFFUSION_H__
119 double dcc, ddi, ddj;
124 testi = grdpai[0]*i_face_normal[0]
125 + grdpai[1]*i_face_normal[1]
126 + grdpai[2]*i_face_normal[2];
127 testj = grdpaj[0]*i_face_normal[0]
128 + grdpaj[1]*i_face_normal[1]
129 + grdpaj[2]*i_face_normal[2];
130 *testij = grdpai[0]*grdpaj[0]
131 + grdpai[1]*grdpaj[1]
132 + grdpai[2]*grdpaj[2];
135 dcc = gradi[0]*i_face_normal[0]
136 + gradi[1]*i_face_normal[1]
137 + gradi[2]*i_face_normal[2];
139 ddj = (pj-pi)/distf *srfan;
141 dcc = gradj[0]*i_face_normal[0]
142 + gradj[1]*i_face_normal[1]
143 + gradj[2]*i_face_normal[2];
144 ddi = (pj-pi)/distf *srfan;
183 double testi[3], testj[3];
184 double dcc[3], ddi[3], ddj[3];
190 for (
int i = 0; i < 3; i++) {
191 *testij += gradsti[i][0]*gradstj[i][0]
192 + gradsti[i][1]*gradstj[i][1]
193 + gradsti[i][2]*gradstj[i][2];
195 testi[i] = gradsti[i][0]*i_face_normal[0]
196 + gradsti[i][1]*i_face_normal[1]
197 + gradsti[i][2]*i_face_normal[2];
198 testj[i] = gradstj[i][0]*i_face_normal[0]
199 + gradstj[i][1]*i_face_normal[1]
200 + gradstj[i][2]*i_face_normal[2];
202 if (i_massflux > 0.) {
203 dcc[i] = gradi[i][0]*i_face_normal[0]
204 + gradi[i][1]*i_face_normal[1]
205 + gradi[i][2]*i_face_normal[2];
207 ddj[i] = (pj[i]-pi[i])/distf *srfan;
209 dcc[i] = gradj[i][0]*i_face_normal[0]
210 + gradj[i][1]*i_face_normal[1]
211 + gradj[i][2]*i_face_normal[2];
212 ddi[i] = (pj[i]-pi[i])/distf *srfan;
255 double testi[3], testj[3];
256 double dcc[3], ddi[3], ddj[3];
260 for (
int isou = 0; isou < 3; isou++) {
261 testi[isou] = grdpai[isou][0]*i_face_normal[0]
262 + grdpai[isou][1]*i_face_normal[1]
263 + grdpai[isou][2]*i_face_normal[2];
264 testj[isou] = grdpaj[isou][0]*i_face_normal[0]
265 + grdpaj[isou][1]*i_face_normal[1]
266 + grdpaj[isou][2]*i_face_normal[2];
267 testij[isou] = grdpai[isou][0]*grdpaj[isou][0]
268 + grdpai[isou][1]*grdpaj[isou][1]
269 + grdpai[isou][2]*grdpaj[isou][2];
272 dcc[isou] = gradi[isou][0]*i_face_normal[0]
273 + gradi[isou][1]*i_face_normal[1]
274 + gradi[isou][2]*i_face_normal[2];
275 ddi[isou] = testi[isou];
276 ddj[isou] = (pj[isou]-pi[isou])/distf *srfan;
278 dcc[isou] = gradj[isou][0]*i_face_normal[0]
279 + gradj[isou][1]*i_face_normal[1]
280 + gradj[isou][2]*i_face_normal[2];
281 ddi[isou] = (pj[isou]-pi[isou])/distf *srfan;
282 ddj[isou] = testj[isou];
322 double testi[6], testj[6];
323 double dcc[6], ddi[6], ddj[6];
329 for (
int ij = 0; ij < 6; ij++) {
330 *testij += gradsti[ij][0]*gradstj[ij][0]
331 + gradsti[ij][1]*gradstj[ij][1]
332 + gradsti[ij][2]*gradstj[ij][2];
333 testi[ij] = gradsti[ij][0]*i_face_normal[0]
334 + gradsti[ij][1]*i_face_normal[1]
335 + gradsti[ij][2]*i_face_normal[2];
336 testj[ij] = gradstj[ij][0]*i_face_normal[0]
337 + gradstj[ij][1]*i_face_normal[1]
338 + gradstj[ij][2]*i_face_normal[2];
340 if (i_massflux > 0.) {
341 dcc[ij] = gradi[ij][0]*i_face_normal[0]
342 + gradi[ij][1]*i_face_normal[1]
343 + gradi[ij][2]*i_face_normal[2];
345 ddj[ij] = (pj[ij]-pi[ij])/distf *srfan;
347 dcc[ij] = gradj[ij][0]*i_face_normal[0]
348 + gradj[ij][1]*i_face_normal[1]
349 + gradj[ij][2]*i_face_normal[2];
350 ddi[ij] = (pj[ij]-pi[ij])/distf *srfan;
395 cs_real_t diipfx, diipfy, diipfz, djjpfx, djjpfy, djjpfz;
400 diipfx = i_face_cog[0] - (cell_ceni[0] + (1.-pnd) * dijpf[0]);
401 diipfy = i_face_cog[1] - (cell_ceni[1] + (1.-pnd) * dijpf[1]);
402 diipfz = i_face_cog[2] - (cell_ceni[2] + (1.-pnd) * dijpf[2]);
404 djjpfx = i_face_cog[0] - cell_cenj[0] + pnd * dijpf[0];
405 djjpfy = i_face_cog[1] - cell_cenj[1] + pnd * dijpf[1];
406 djjpfz = i_face_cog[2] - cell_cenj[2] + pnd * dijpf[2];
408 dpxf = 0.5*(gradi[0] + gradj[0]);
409 dpyf = 0.5*(gradi[1] + gradj[1]);
410 dpzf = 0.5*(gradi[2] + gradj[2]);
413 *recoi = ircflp*(dpxf*diipfx+dpyf*diipfy+dpzf*diipfz);
414 *recoj = ircflp*(dpxf*djjpfx+dpyf*djjpfy+dpzf*djjpfz);
459 for (
int jsou = 0; jsou < 3; jsou++)
460 dijpfv[jsou] = dijpf[jsou];
463 for (
int jsou = 0; jsou < 3; jsou++) {
464 diipfv[jsou] = i_face_cog[jsou]
465 - (cell_ceni[jsou] + (1.-pnd) * dijpfv[jsou]);
466 djjpfv[jsou] = i_face_cog[jsou]
467 - cell_cenj[jsou] + pnd * dijpfv[jsou];
472 for (
int isou = 0; isou < 3; isou++) {
474 for (
int jsou = 0; jsou < 3; jsou++)
475 dpvf[jsou] = 0.5*( gradi[isou][jsou]
476 + gradj[isou][jsou]);
480 recoi[isou] = ircflp*( dpvf[0]*diipfv[0]
482 + dpvf[2]*diipfv[2]);
485 recoj[isou] = ircflp*( dpvf[0]*djjpfv[0]
487 + dpvf[2]*djjpfv[2]);
489 pip[isou] = pi[isou] + recoi[isou];
491 pjp[isou] = pj[isou] + recoj[isou];
536 for (
int jsou = 0; jsou < 3; jsou++)
537 dijpfv[jsou] = dijpf[jsou];
541 for (
int jsou = 0; jsou < 3; jsou++) {
542 diipfv[jsou] = i_face_cog[jsou]
543 - (cell_ceni[jsou] + (1.-pnd) * dijpfv[jsou]);
544 djjpfv[jsou] = i_face_cog[jsou]
545 - cell_cenj[jsou] + pnd * dijpfv[jsou];
550 for (
int isou = 0; isou < 6; isou++) {
552 for (
int jsou = 0; jsou < 3; jsou++)
553 dpvf[jsou] = 0.5*( gradi[isou][jsou]
554 + gradj[isou][jsou]);
558 recoi[isou] = ircflp*( dpvf[0]*diipfv[0]
560 + dpvf[2]*diipfv[2]);
563 recoj[isou] = ircflp*( dpvf[0]*djjpfv[0]
565 + dpvf[2]*djjpfv[2]);
567 pip[isou] = pi[isou] + recoi[isou];
569 pjp[isou] = pj[isou] + recoj[isou];
605 *pir = pi/relaxp - (1.-relaxp)/relaxp * pia;
606 *pjr = pj/relaxp - (1.-relaxp)/relaxp * pja;
608 *pipr = *pir + recoi;
609 *pjpr = *pjr + recoj;
643 for (
int isou = 0; isou < 3; isou++) {
644 pir[isou] = pi[isou] /relaxp - (1.-relaxp)/relaxp * pia[isou];
645 pjr[isou] = pj[isou] /relaxp - (1.-relaxp)/relaxp * pja[isou];
647 pipr[isou] = pir[isou] + recoi[isou];
648 pjpr[isou] = pjr[isou] + recoj[isou];
683 for (
int isou = 0; isou < 6; isou++) {
684 pir[isou] = pi[isou] /relaxp - (1.-relaxp)/relaxp * pia[isou];
685 pjr[isou] = pj[isou] /relaxp - (1.-relaxp)/relaxp * pja[isou];
687 pipr[isou] = pir[isou] + recoi[isou];
688 pjpr[isou] = pjr[isou] + recoj[isou];
721 for (
int isou = 0; isou < 3; isou++)
738 for (
int isou = 0; isou < 6; isou++)
759 *pf = pnd*pip + (1.-pnd)*pjp;
779 for (
int isou = 0; isou < 3; isou++)
780 pf[isou] = pnd*pip[isou] + (1.-pnd)*pjp[isou];
800 for (
int isou = 0; isou < 6; isou++)
801 pf[isou] = pnd*pip[isou] + (1.-pnd)*pjp[isou];
825 df[0] = i_face_cog[0] - cell_cen[0];
826 df[1] = i_face_cog[1] - cell_cen[1];
827 df[2] = i_face_cog[2] - cell_cen[2];
853 for (
int jsou = 0; jsou < 3; jsou++)
854 df[jsou] = i_face_cog[jsou] - cell_cen[jsou];
856 for (
int isou = 0; isou < 3; isou++) {
857 pf[isou] = p[isou] + df[0]*grad[isou][0]
858 + df[1]*grad[isou][1]
859 + df[2]*grad[isou][2];
885 for (
int jsou = 0; jsou < 3; jsou++)
886 df[jsou] = i_face_cog[jsou] - cell_cen[jsou];
888 for (
int isou = 0; isou < 6; isou++) {
889 pf[isou] = p[isou] + df[0]*grad[isou][0]
890 + df[1]*grad[isou][1]
891 + df[2]*grad[isou][2];
912 *pf = blencp * (*pf) + (1. - blencp) * p;
932 for (
int isou = 0; isou < 3; isou++)
933 pf[isou] = blencp*(pf[isou])+(1.-blencp)*p[isou];
953 for (
int isou = 0; isou < 6; isou++)
954 pf[isou] = blencp*(pf[isou])+(1.-blencp)*p[isou];
997 flui = 0.5*(i_massflux + fabs(i_massflux));
998 fluj = 0.5*(i_massflux - fabs(i_massflux));
1000 fluxij[0] += iconvp*xcppi*(thetap*(flui*pifri + fluj*pjfri) - imasac*i_massflux*pi);
1001 fluxij[1] += iconvp*xcppj*(thetap*(flui*pifrj + fluj*pjfrj) - imasac*i_massflux*pj);
1040 flui = 0.5*(i_massflux + fabs(i_massflux));
1041 fluj = 0.5*(i_massflux - fabs(i_massflux));
1043 for (
int isou = 0; isou < 3; isou++) {
1045 fluxi[isou] += iconvp*( thetap*(flui*pifri[isou] + fluj*pjfri[isou])
1046 - imasac*i_massflux*pi[isou]);
1047 fluxj[isou] += iconvp*( thetap*(flui*pifrj[isou] + fluj*pjfrj[isou])
1048 - imasac*i_massflux*pj[isou]);
1088 flui = 0.5*(i_massflux + fabs(i_massflux));
1089 fluj = 0.5*(i_massflux - fabs(i_massflux));
1091 for (
int isou = 0; isou < 6; isou++) {
1092 fluxi[isou] += iconvp*( thetap*(flui*pifri[isou] + fluj*pjfri[isou])
1093 - imasac*i_massflux*pi[isou]);
1094 fluxj[isou] += iconvp*( thetap*(flui*pifrj[isou] + fluj*pjfrj[isou])
1095 - imasac*i_massflux*pj[isou]);
1124 fluxij[0] += idiffp*thetap*i_visc*(pipr -pjp);
1125 fluxij[1] += idiffp*thetap*i_visc*(pip -pjpr);
1155 for (
int isou = 0; isou < 3; isou++) {
1156 fluxi[isou] += idiffp*thetap*i_visc*(pipr[isou] -pjp[isou]);
1157 fluxj[isou] += idiffp*thetap*i_visc*(pip[isou] -pjpr[isou]);
1188 for (
int isou = 0; isou < 6; isou++) {
1189 fluxi[isou] += idiffp*thetap*i_visc*(pipr[isou] -pjp[isou]);
1190 fluxj[isou] += idiffp*thetap*i_visc*(pip[isou] -pjpr[isou]);
1687 const double relaxp,
1688 const double blencp,
1763 }
else if (ischcp == 0) {
1869 const double relaxp,
1870 const double blencp,
2023 const double relaxp,
2024 const double blencp,
2176 const double blencp,
2225 }
else if (ischcp == 0) {
2301 const double blencp,
2349 }
else if (ischcp ==3) {
2379 for (
int isou = 0; isou < 3; isou++) {
2380 hybrid_blend_interp = fmin(hybrid_blend_i,hybrid_blend_j);
2381 pif[isou] = hybrid_blend_interp*pif[isou] + (1. - hybrid_blend_interp)*pif_up[isou];
2382 pjf[isou] = hybrid_blend_interp*pjf[isou] + (1. - hybrid_blend_interp)*pjf_up[isou];
2441 const double blencp,
2568 const double relaxp,
2569 const double blencp,
2570 const double blend_st,
2604 srfan = i_face_surf;
2606 *upwind_switch =
false;
2672 }
else if (ischcp == 0) {
2729 if (tesqck <= 0. || testij <= 0.) {
2744 *upwind_switch =
true;
2824 const double relaxp,
2825 const double blencp,
2859 srfan = i_face_surf;
2903 for (isou = 0; isou < 3; isou++) {
2904 if (tesqck[isou]<=0. || testij[isou]<=0.) {
2918 *upwind_switch =
true;
2991 for (isou = 0; isou < 3; isou++) {
3053 const double relaxp,
3054 const double blencp,
3055 const double blend_st,
3089 srfan = i_face_surf;
3133 for (isou = 0; isou < 3; isou++) {
3189 if (tesqck <= 0. || testij <= 0.) {
3203 *upwind_switch =
true;
3224 for (isou = 0; isou < 3; isou++) {
3286 const double relaxp,
3287 const double blencp,
3288 const double blend_st,
3322 srfan = i_face_surf;
3366 for (isou = 0; isou < 6; isou++) {
3422 if (tesqck <= 0. || testij <= 0.) {
3437 *upwind_switch =
true;
3460 for (isou = 0; isou < 6; isou++) {
3517 const double blencp,
3518 const double blend_st,
3547 srfan = i_face_surf;
3549 *upwind_switch =
false;
3595 }
else if (ischcp == 0) {
3632 if (tesqck<=0. || testij<=0.) {
3641 *upwind_switch =
true;
3703 const double blencp,
3730 srfan = i_face_surf;
3764 for (isou = 0; isou < 3; isou++) {
3765 if (tesqck[isou]<=0. || testij[isou]<=0.) {
3775 *upwind_switch =
true;
3825 for (isou = 0; isou < 3; isou++) {
3877 const double blencp,
3878 const double blend_st,
3905 srfan = i_face_surf;
3937 for (isou = 0; isou < 3; isou++) {
3975 if (tesqck <= 0. || testij <= 0.) {
3984 *upwind_switch =
true;
4001 for (isou = 0; isou < 3; isou++) {
4052 const double blencp,
4053 const double blend_st,
4080 srfan = i_face_surf;
4112 for (isou = 0; isou < 6; isou++) {
4148 if (tesqck <= 0. || testij <= 0.) {
4160 *upwind_switch =
true;
4177 for (isou = 0; isou < 6; isou++) {
4203 *recoi = ircflp * ( gradi[0]*diipb[0]
4205 + gradi[2]*diipb[2]);
4225 for (
int isou = 0; isou < 3; isou++) {
4226 recoi[isou] = ircflp * (gradi[isou][0]*diipb[0]
4227 + gradi[isou][1]*diipb[1]
4228 + gradi[isou][2]*diipb[2]);
4249 for (
int isou = 0; isou < 6; isou++) {
4250 recoi[isou] = ircflp * (gradi[isou][0]*diipb[0]
4251 + gradi[isou][1]*diipb[1]
4252 + gradi[isou][2]*diipb[2]);
4277 *pir = pi/relaxp - (1.-relaxp)/relaxp*pia;
4278 *pipr = *pir + recoi;
4302 for (
int isou = 0; isou < 3; isou++) {
4303 pir[isou] = pi[isou]/relaxp - (1.-relaxp)/relaxp*pia[isou];
4304 pipr[isou] = pir[isou] + recoi[isou];
4329 for (
int isou = 0; isou < 6; isou++) {
4330 pir[isou] = pi[isou]/relaxp - (1.-relaxp)/relaxp*pia[isou];
4331 pipr[isou] = pir[isou] + recoi[isou];
4390 flui = 0.5*(b_massflux +fabs(b_massflux));
4391 fluj = 0.5*(b_massflux -fabs(b_massflux));
4394 pfac = inc*coefap + coefbp*pipr;
4395 *flux += iconvp*xcpp*(thetap*(flui*pir + fluj*pfac) -imasac*( b_massflux*pi));
4401 pfac = inc*coface + cofbce*pipr;
4402 *flux += iconvp*xcpp*(-imasac*(b_massflux*pi) + thetap*(pfac));
4459 flui = 0.5*(b_massflux +fabs(b_massflux));
4460 fluj = 0.5*(b_massflux -fabs(b_massflux));
4462 for (
int isou = 0; isou < 3; isou++) {
4463 pfac = inc*coefap[isou];
4464 for (
int jsou = 0; jsou < 3; jsou++) {
4465 pfac += coefbp[isou][jsou]*pipr[jsou];
4467 flux[isou] += iconvp*( thetap*(flui*pir[isou] + fluj*pfac)
4468 - imasac*b_massflux*pi[isou]);
4475 for (
int isou = 0; isou < 3; isou++) {
4476 pfac = inc*coface[isou];
4477 for (
int jsou = 0; jsou < 3; jsou++) {
4478 pfac += cofbce[isou][jsou]*pipr[jsou];
4480 flux[isou] += iconvp*( thetap*pfac
4481 - imasac*b_massflux*pi[isou]);
4531 flui = 0.5*(b_massflux +fabs(b_massflux));
4532 fluj = 0.5*(b_massflux -fabs(b_massflux));
4535 pfac = inc*coefap + coefbp*pipr;
4536 *flux += iconvp*xcpp*(thetap*(flui*pir + fluj*pfac) -imasac*( b_massflux*pi));
4582 flui = 0.5*(b_massflux +fabs(b_massflux));
4583 fluj = 0.5*(b_massflux -fabs(b_massflux));
4585 for (
int isou = 0; isou < 3; isou++) {
4586 pfac = inc*coefa[isou];
4587 for (
int jsou = 0; jsou < 3; jsou++) {
4588 pfac += coefb[isou][jsou]*pipr[jsou];
4590 flux[isou] += iconvp*( thetap*(flui*pir[isou] + fluj*pfac)
4591 - imasac*b_massflux*pi[isou]);
4638 flui = 0.5*(b_massflux +fabs(b_massflux));
4639 fluj = 0.5*(b_massflux -fabs(b_massflux));
4641 for (
int isou = 0; isou < 6; isou++) {
4642 pfac = inc*coefa[isou];
4643 for (
int jsou = 0; jsou < 6; jsou++) {
4644 pfac += coefb[isou][jsou]*pipr[jsou];
4646 flux[isou] += iconvp*( thetap*(flui*pir[isou] + fluj*pfac)
4647 - imasac*b_massflux*pi[isou]);
4676 cs_real_t pfacd = inc*cofafp + cofbfp*pipr;
4677 *flux += idiffp*thetap*b_visc*pfacd;
4706 for (
int isou = 0; isou < 3; isou++) {
4707 pfacd = inc*cofaf[isou];
4708 for (
int jsou = 0; jsou < 3; jsou++) {
4709 pfacd += cofbf[isou][jsou]*pipr[jsou];
4711 flux[isou] += idiffp*thetap*b_visc*pfacd;
4741 for (
int isou = 0; isou < 6; isou++) {
4742 pfacd = inc*cofaf[isou];
4743 for (
int jsou = 0; jsou < 6; jsou++) {
4744 pfacd += cofbf[isou][jsou]*pipr[jsou];
4746 flux[isou] += idiffp*thetap*b_visc*pfacd;
4768 const double relaxp,
4809 const double relaxp,
4850 const double relaxp,
4930 for (
int isou = 0; isou < 3; isou++)
4931 pip[isou] = pi[isou] + recoi[isou];
4961 for(
int isou = 0; isou< 6; isou++)
4962 pip[isou] = pi[isou] + recoi[isou];
4985 *fluxi += idiffp*b_visc*(pi - pj);
5008 for (
int k = 0;
k < 3;
k++)
5009 fluxi[
k] += idiffp*b_visc*(pi[
k] - pj[
k]);
static void cs_b_cd_steady(const int ircflp, const double relaxp, const cs_real_3_t diipb, const cs_real_3_t gradi, const cs_real_t pi, const cs_real_t pia, cs_real_t *pir, cs_real_t *pipr)
Handle preparation of boundary face values for the flux computation in case of a steady algorithm...
Definition: cs_convection_diffusion.h:4767
Definition: cs_field_pointer.h:70
static void cs_upwind_f_val_vector(const cs_real_3_t p, cs_real_t pf[3])
Prepare value at face ij by using an upwind scheme.
Definition: cs_convection_diffusion.h:718
#define restrict
Definition: cs_defs.h:122
static cs_real_t cs_math_3_dot_product(const cs_real_t u[3], const cs_real_t v[3])
Compute the dot product of two vectors of 3 real values.
Definition: cs_math.h:253
static void cs_slope_test_vector_old(const cs_real_3_t pi, const cs_real_3_t pj, const cs_real_t distf, const cs_real_t srfan, const cs_real_3_t i_face_normal, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_33_t grdpai, const cs_real_33_t grdpaj, const cs_real_t i_massflux, cs_real_t testij[3], cs_real_t tesqck[3])
DEPRECATED Compute slope test criteria at internal face between cell i and j.
Definition: cs_convection_diffusion.h:242
static void cs_b_imposed_conv_flux_vector(int iconvp, cs_real_t thetap, int imasac, int inc, cs_int_t bc_type, int icvfli, const cs_real_t pi[restrict 3], const cs_real_t pir[restrict 3], const cs_real_t pipr[restrict 3], const cs_real_t coefap[restrict 3], const cs_real_t coefbp[restrict 3][3], const cs_real_t coface[restrict 3], const cs_real_t cofbce[restrict 3][3], cs_real_t b_massflux, cs_real_t flux[restrict 3])
Add convective flux (substracting the mass accumulation from it) to flux at boundary face...
Definition: cs_convection_diffusion.h:4432
static void cs_b_diff_flux_tensor(const int idiffp, const cs_real_t thetap, const int inc, const cs_real_6_t pipr, const cs_real_6_t cofaf, const cs_real_66_t cofbf, const cs_real_t b_visc, cs_real_t flux[6])
Add diffusive flux to flux at boundary face.
Definition: cs_convection_diffusion.h:4731
cs_real_t cs_real_2_t[2]
vector of 2 floating-point values
Definition: cs_defs.h:308
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition: cs_defs.h:311
static void cs_i_cd_unsteady(const int ircflp, const int ischcp, const double blencp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_3_t gradi, const cs_real_3_t gradj, const cs_real_3_t gradupi, const cs_real_3_t gradupj, const cs_real_t pi, const cs_real_t pj, cs_real_t *pif, cs_real_t *pjf, cs_real_t *pip, cs_real_t *pjp)
Handle preparation of internal face values for the fluxes computation in case of a unsteady algorithm...
Definition: cs_convection_diffusion.h:2174
void cs_anisotropic_diffusion_tensor(int idtvar, int f_id, const cs_var_cal_opt_t var_cal_opt, int inc, cs_real_6_t *restrict pvar, const cs_real_6_t *restrict pvara, const cs_real_6_t coefa[], const cs_real_66_t coefb[], const cs_real_6_t cofaf[], const cs_real_66_t cofbf[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *restrict viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_6_t *restrict rhs)
Add the explicit part of the diffusion terms with a symmetric tensor diffusivity for a transport equa...
Definition: cs_convection_diffusion.c:8755
static void cs_centered_f_val_tensor(const double pnd, const cs_real_6_t pip, const cs_real_6_t pjp, cs_real_t pf[6])
Prepare value at face ij by using a centered scheme.
Definition: cs_convection_diffusion.h:795
cs_nvd_type_t
Definition: cs_convection_diffusion.h:58
void cs_anisotropic_diffusion_scalar(int idtvar, int f_id, const cs_var_cal_opt_t var_cal_opt, int inc, int iccocg, cs_real_t *restrict pvar, const cs_real_t *restrict pvara, const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *restrict viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_t *restrict rhs)
Add the explicit part of the diffusion terms with a symmetric tensor diffusivity for a transport equa...
Definition: cs_convection_diffusion.c:6780
static void cs_b_cd_steady_vector(const int ircflp, const double relaxp, const cs_real_3_t diipb, const cs_real_33_t gradi, const cs_real_3_t pi, const cs_real_3_t pia, cs_real_t pir[3], cs_real_t pipr[3])
Handle preparation of boundary face values for the flux computation in case of a steady algorithm...
Definition: cs_convection_diffusion.h:4808
static void cs_i_cd_unsteady_slope_test_vector_old(bool *upwind_switch, const int iconvp, const int ircflp, const int ischcp, const double blencp, const cs_real_t weight, const cs_real_t i_dist, const cs_real_t i_face_surf, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_normal, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_t i_massflux, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_33_t grdpai, const cs_real_33_t grdpaj, const cs_real_3_t pi, const cs_real_3_t pj, cs_real_t pif[3], cs_real_t pjf[3], cs_real_t pip[3], cs_real_t pjp[3])
DEPRECATED Handle preparation of internal face values for the fluxes computation in case of a unstead...
Definition: cs_convection_diffusion.h:3699
static void cs_upwind_f_val_tensor(const cs_real_6_t p, cs_real_t pf[6])
Prepare value at face ij by using an upwind scheme.
Definition: cs_convection_diffusion.h:735
static void cs_b_cd_unsteady(const int ircflp, const cs_real_3_t diipb, const cs_real_3_t gradi, const cs_real_t pi, cs_real_t *pip)
Handle preparation of boundary face values for the flux computation in case of an unsteady algorithm...
Definition: cs_convection_diffusion.h:4887
static void cs_i_cd_steady_upwind_vector(const int ircflp, const cs_real_t relaxp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_3_t pi, const cs_real_3_t pj, const cs_real_3_t pia, const cs_real_3_t pja, cs_real_t pifri[3], cs_real_t pifrj[3], cs_real_t pjfri[3], cs_real_t pjfrj[3], cs_real_t pip[3], cs_real_t pjp[3], cs_real_t pipr[3], cs_real_t pjpr[3])
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:1316
cs_real_t cs_real_66_t[6][6]
6x6 matrix of floating-point values
Definition: cs_defs.h:316
Definition: cs_convection_diffusion.h:67
void cs_slope_test_gradient_tensor(const int inc, const cs_halo_type_t halo_type, const cs_real_63_t *grad, cs_real_63_t *grdpa, const cs_real_6_t *pvar, const cs_real_6_t *coefa, const cs_real_66_t *coefb, const cs_real_t *i_massflux)
Compute the upwind gradient used in the slope tests.
Definition: cs_convection_diffusion.c:1681
static void cs_b_imposed_conv_flux(int iconvp, cs_real_t thetap, int imasac, int inc, cs_int_t bc_type, int icvfli, cs_real_t pi, cs_real_t pir, cs_real_t pipr, cs_real_t coefap, cs_real_t coefbp, cs_real_t coface, cs_real_t cofbce, cs_real_t b_massflux, cs_real_t xcpp, cs_real_t *flux)
Add convective flux (substracting the mass accumulation from it) to flux at boundary face...
Definition: cs_convection_diffusion.h:4362
void cs_generalized_diffusion_vector(int idtvar, int f_id, const cs_var_cal_opt_t var_cal_opt, int inc, int ivisep, cs_real_3_t *restrict pvar, const cs_real_3_t *restrict pvara, const cs_real_3_t coefav[], const cs_real_33_t coefbv[], const cs_real_3_t cofafv[], const cs_real_33_t cofbfv[], const cs_real_33_t i_visc[], const cs_real_t b_visc[], const cs_real_t secvif[], cs_real_3_t *restrict rhs)
Add the explicit part of the diffusion terms with a symmetric tensorial diffusivity for a transport e...
Definition: cs_convection_diffusion.c:7496
#define BEGIN_C_DECLS
Definition: cs_defs.h:453
int cs_int_t
Fortran-compatible integer.
Definition: cs_defs.h:296
#define CS_UNUSED(x)
Definition: cs_defs.h:439
static void cs_b_diff_flux_coupling_vector(const int idiffp, const cs_real_3_t pi, const cs_real_3_t pj, const cs_real_t b_visc, cs_real_t fluxi[3])
Add diffusive flux to flux at an internal coupling face for a vector.
Definition: cs_convection_diffusion.h:5002
static void cs_i_cd_unsteady_slope_test(bool *upwind_switch, const int iconvp, const int ircflp, const int ischcp, const double blencp, const double blend_st, const cs_real_t weight, const cs_real_t i_dist, const cs_real_t i_face_surf, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_normal, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_t i_massflux, const cs_real_3_t gradi, const cs_real_3_t gradj, const cs_real_3_t gradupi, const cs_real_3_t gradupj, const cs_real_3_t gradsti, const cs_real_3_t gradstj, const cs_real_t pi, const cs_real_t pj, cs_real_t *pif, cs_real_t *pjf, cs_real_t *pip, cs_real_t *pjp)
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:3513
static void cs_i_cd_steady_tensor(const int ircflp, const int ischcp, const double relaxp, const double blencp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_63_t gradi, const cs_real_63_t gradj, const cs_real_6_t pi, const cs_real_6_t pj, const cs_real_6_t pia, const cs_real_6_t pja, cs_real_t pifri[6], cs_real_t pifrj[6], cs_real_t pjfri[6], cs_real_t pjfrj[6], cs_real_t pip[6], cs_real_t pjp[6], cs_real_t pipr[6], cs_real_t pjpr[6])
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:2021
Definition: cs_parameters.h:142
static void cs_i_relax_c_val_tensor(const double relaxp, const cs_real_6_t pia, const cs_real_6_t pja, const cs_real_6_t recoi, const cs_real_6_t recoj, const cs_real_6_t pi, const cs_real_6_t pj, cs_real_t pir[6], cs_real_t pjr[6], cs_real_t pipr[6], cs_real_t pjpr[6])
Compute relaxed values at cell i and j.
Definition: cs_convection_diffusion.h:671
static void cs_i_relax_c_val(const double relaxp, const cs_real_t pia, const cs_real_t pja, const cs_real_t recoi, const cs_real_t recoj, const cs_real_t pi, const cs_real_t pj, cs_real_t *pir, cs_real_t *pjr, cs_real_t *pipr, cs_real_t *pjpr)
Compute relaxed values at cell i and j.
Definition: cs_convection_diffusion.h:593
void cs_slope_test_gradient_vector(const int inc, const cs_halo_type_t halo_type, const cs_real_33_t *grad, cs_real_33_t *grdpa, const cs_real_3_t *pvar, const cs_real_3_t *coefa, const cs_real_33_t *coefb, const cs_real_t *i_massflux)
Compute the upwind gradient used in the slope tests.
Definition: cs_convection_diffusion.c:1526
static void cs_centered_f_val(const double pnd, const cs_real_t pip, const cs_real_t pjp, cs_real_t *pf)
Prepare value at face ij by using a centered scheme.
Definition: cs_convection_diffusion.h:754
static void cs_i_cd_steady_vector(const int ircflp, const int ischcp, const double relaxp, const double blencp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_3_t pi, const cs_real_3_t pj, const cs_real_3_t pia, const cs_real_3_t pja, cs_real_t pifri[3], cs_real_t pifrj[3], cs_real_t pjfri[3], cs_real_t pjfrj[3], cs_real_t pip[3], cs_real_t pjp[3], cs_real_t pipr[3], cs_real_t pjpr[3])
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:1867
Definition: cs_field_pointer.h:67
static void cs_b_compute_quantities_vector(const cs_real_3_t diipb, const cs_real_33_t gradi, const int ircflp, cs_real_t recoi[3])
Reconstruct values in I' at boundary cell i.
Definition: cs_convection_diffusion.h:4220
Definition: cs_convection_diffusion.h:62
void itrgrp(const cs_int_t *const f_id, const cs_int_t *const init, const cs_int_t *const inc, const cs_int_t *const imrgra, const cs_int_t *const iccocg, const cs_int_t *const nswrgp, const cs_int_t *const imligp, const cs_int_t *const iphydp, const cs_int_t *const iwarnp, const cs_real_t *const epsrgp, const cs_real_t *const climgp, const cs_real_t *const extrap, cs_real_3_t frcxt[], cs_real_t pvar[], const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_t visel[], cs_real_t diverg[])
Definition: cs_convection_diffusion.c:1100
Definition: cs_convection_diffusion.h:65
static void cs_blend_f_val_vector(const double blencp, const cs_real_3_t p, cs_real_t pf[3])
Blend face values for a centered or SOLU scheme with face values for an upwind scheme.
Definition: cs_convection_diffusion.h:928
static void cs_i_compute_quantities_vector(const int ircflp, const double pnd, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_3_t pi, const cs_real_3_t pj, cs_real_t recoi[3], cs_real_t recoj[3], cs_real_t pip[3], cs_real_t pjp[3])
Reconstruct values in I' and J'.
Definition: cs_convection_diffusion.h:441
double cs_real_t
Floating-point value.
Definition: cs_defs.h:297
static void cs_solu_f_val_tensor(const cs_real_3_t cell_cen, const cs_real_3_t i_face_cog, const cs_real_63_t grad, const cs_real_6_t p, cs_real_t pf[6])
Prepare value at face ij by using a Second Order Linear Upwind scheme.
Definition: cs_convection_diffusion.h:877
static cs_real_t cs_math_3_square_norm(const cs_real_t v[3])
Compute the square norm of a vector of 3 real values.
Definition: cs_math.h:288
static void cs_solu_f_val_vector(const cs_real_3_t cell_cen, const cs_real_3_t i_face_cog, const cs_real_33_t grad, const cs_real_3_t p, cs_real_t pf[3])
Prepare value at face ij by using a Second Order Linear Upwind scheme.
Definition: cs_convection_diffusion.h:845
static void cs_b_upwind_flux_vector(const int iconvp, const cs_real_t thetap, const int imasac, const int inc, const int bc_type, const cs_real_3_t pi, const cs_real_3_t pir, const cs_real_3_t pipr, const cs_real_3_t coefa, const cs_real_33_t coefb, const cs_real_t b_massflux, cs_real_t flux[3])
Add convective flux (substracting the mass accumulation from it) to flux at boundary face...
Definition: cs_convection_diffusion.h:4562
static cs_real_t cs_math_sq(cs_real_t x)
Compute the square of a real value.
Definition: cs_math.h:120
static void cs_i_cd_unsteady_slope_test_tensor(bool *upwind_switch, const int iconvp, const int ircflp, const int ischcp, const double blencp, const double blend_st, const cs_real_t weight, const cs_real_t i_dist, const cs_real_t i_face_surf, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_normal, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_t i_massflux, const cs_real_63_t gradi, const cs_real_63_t gradj, const cs_real_63_t grdpai, const cs_real_63_t grdpaj, const cs_real_6_t pi, const cs_real_6_t pj, cs_real_t pif[6], cs_real_t pjf[6], cs_real_t pip[6], cs_real_t pjp[6])
Handle preparation of internal face values for the fluxes computation in case of a unsteady algorithm...
Definition: cs_convection_diffusion.h:4048
static void cs_i_diff_flux(const int idiffp, const cs_real_t thetap, const cs_real_t pip, const cs_real_t pjp, const cs_real_t pipr, const cs_real_t pjpr, const cs_real_t i_visc, cs_real_2_t fluxij)
Add diffusive fluxes to fluxes at face ij.
Definition: cs_convection_diffusion.h:1115
static void cs_i_cd_unsteady_vector(const int ircflp, const int ischcp, const double blencp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_t hybrid_blend_i, const cs_real_t hybrid_blend_j, const cs_real_3_t dijpf, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_3_t pi, const cs_real_3_t pj, cs_real_t pif[3], cs_real_t pjf[3], cs_real_t pip[3], cs_real_t pjp[3])
Handle preparation of internal face values for the fluxes computation in case of an unsteady algorith...
Definition: cs_convection_diffusion.h:2299
void cs_convection_diffusion_vector(int idtvar, int f_id, const cs_var_cal_opt_t var_cal_opt, int icvflb, int inc, int ivisep, int imasac, cs_real_3_t *restrict pvar, const cs_real_3_t *restrict pvara, const cs_int_t icvfli[], const cs_real_3_t coefav[], const cs_real_33_t coefbv[], const cs_real_3_t cofafv[], const cs_real_33_t cofbfv[], const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t i_visc[], const cs_real_t b_visc[], const cs_real_t secvif[], cs_real_3_t *restrict rhs)
Add the explicit part of the convection/diffusion terms of a transport equation of a vector field ...
Definition: cs_convection_diffusion.c:3339
static void cs_i_compute_quantities_tensor(const int ircflp, const double pnd, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_63_t gradi, const cs_real_63_t gradj, const cs_real_6_t pi, const cs_real_6_t pj, cs_real_t recoi[6], cs_real_t recoj[6], cs_real_t pip[6], cs_real_t pjp[6])
Reconstruct values in I' and J'.
Definition: cs_convection_diffusion.h:518
static void cs_b_diff_flux_vector(const int idiffp, const cs_real_t thetap, const int inc, const cs_real_3_t pipr, const cs_real_3_t cofaf, const cs_real_33_t cofbf, const cs_real_t b_visc, cs_real_t flux[3])
Add diffusive flux to flux at boundary face.
Definition: cs_convection_diffusion.h:4696
static void cs_i_relax_c_val_vector(const double relaxp, const cs_real_3_t pia, const cs_real_3_t pja, const cs_real_3_t recoi, const cs_real_3_t recoj, const cs_real_3_t pi, const cs_real_3_t pj, cs_real_t pir[3], cs_real_t pjr[3], cs_real_t pipr[3], cs_real_t pjpr[3])
Compute relaxed values at cell i and j.
Definition: cs_convection_diffusion.h:631
static void cs_i_diff_flux_tensor(const int idiffp, const cs_real_t thetap, const cs_real_6_t pip, const cs_real_6_t pjp, const cs_real_6_t pipr, const cs_real_6_t pjpr, const cs_real_t i_visc, cs_real_t fluxi[6], cs_real_t fluxj[6])
Add diffusive fluxes to fluxes at face ij.
Definition: cs_convection_diffusion.h:1178
Definition: cs_convection_diffusion.h:64
static void cs_b_relax_c_val_tensor(const double relaxp, const cs_real_6_t pi, const cs_real_6_t pia, const cs_real_6_t recoi, cs_real_t pir[6], cs_real_t pipr[6])
Compute relaxed values at boundary cell i.
Definition: cs_convection_diffusion.h:4322
static void cs_i_cd_unsteady_tensor(const int ircflp, const int ischcp, const double blencp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_63_t gradi, const cs_real_63_t gradj, const cs_real_6_t pi, const cs_real_6_t pj, cs_real_t pif[6], cs_real_t pjf[6], cs_real_t pip[6], cs_real_t pjp[6])
Handle preparation of internal face values for the fluxes computation in case of an unsteady algorith...
Definition: cs_convection_diffusion.h:2439
static void cs_b_relax_c_val(const double relaxp, const cs_real_t pi, const cs_real_t pia, const cs_real_t recoi, cs_real_t *pir, cs_real_t *pipr)
Compute relaxed values at boundary cell i.
Definition: cs_convection_diffusion.h:4270
static void cs_i_cd_steady_upwind_tensor(const int ircflp, const cs_real_t relaxp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_63_t gradi, const cs_real_63_t gradj, const cs_real_6_t pi, const cs_real_6_t pj, const cs_real_6_t pia, const cs_real_6_t pja, cs_real_t pifri[6], cs_real_t pifrj[6], cs_real_t pjfri[6], cs_real_t pjfrj[6], cs_real_t pip[6], cs_real_t pjp[6], cs_real_t pipr[6], cs_real_t pjpr[6])
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:1409
static void cs_solu_f_val(const cs_real_3_t cell_cen, const cs_real_3_t i_face_cog, const cs_real_3_t grad, const cs_real_t p, cs_real_t *pf)
Prepare value at face ij by using a Second Order Linear Upwind scheme.
Definition: cs_convection_diffusion.h:817
Definition: cs_mesh_quantities.h:82
cs_halo_type_t
Definition: cs_halo.h:50
void cs_face_anisotropic_diffusion_potential(const int f_id, const cs_mesh_t *m, cs_mesh_quantities_t *fvq, int init, int inc, int imrgra, int iccocg, int nswrgp, int imligp, int ircflp, int iphydp, int iwgrp, int iwarnp, double epsrgp, double climgp, double extrap, cs_real_3_t *restrict frcxt, cs_real_t *restrict pvar, const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *restrict viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_t *restrict i_massflux, cs_real_t *restrict b_massflux)
Add the explicit part of the pressure gradient term to the mass flux in case of anisotropic diffusion...
Definition: cs_convection_diffusion.c:9714
static void cs_b_upwind_flux(const int iconvp, const cs_real_t thetap, const int imasac, const int inc, const int bc_type, const cs_real_t pi, const cs_real_t pir, const cs_real_t pipr, const cs_real_t coefap, const cs_real_t coefbp, const cs_real_t b_massflux, const cs_real_t xcpp, cs_real_t *flux)
Add convective flux (substracting the mass accumulation from it) to flux at boundary face...
Definition: cs_convection_diffusion.h:4510
void cs_anisotropic_diffusion_potential(const int f_id, const cs_mesh_t *m, cs_mesh_quantities_t *fvq, int init, int inc, int imrgra, int iccocg, int nswrgp, int imligp, int ircflp, int iphydp, int iwarnp, double epsrgp, double climgp, double extrap, cs_real_3_t *restrict frcxt, cs_real_t *restrict pvar, const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *restrict viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_t *restrict diverg)
Add the explicit part of the divergence of the mass flux due to the pressure gradient (routine analog...
Definition: cs_convection_diffusion.c:10589
static void cs_slope_test(const cs_real_t pi, const cs_real_t pj, const cs_real_t distf, const cs_real_t srfan, const cs_real_3_t i_face_normal, const cs_real_3_t gradi, const cs_real_3_t gradj, const cs_real_3_t grdpai, const cs_real_3_t grdpaj, const cs_real_t i_massflux, double *testij, double *tesqck)
Compute slope test criteria at internal face between cell i and j.
Definition: cs_convection_diffusion.h:105
Definition: cs_convection_diffusion.h:61
static void cs_b_compute_quantities_tensor(const cs_real_3_t diipb, const cs_real_63_t gradi, const int ircflp, cs_real_t recoi[6])
Reconstruct values in I' at boundary cell i.
Definition: cs_convection_diffusion.h:4244
static void cs_i_cd_unsteady_upwind_vector(const int ircflp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_3_t pi, const cs_real_3_t pj, cs_real_t pif[3], cs_real_t pjf[3], cs_real_t pip[3], cs_real_t pjp[3])
Handle preparation of internal face values for the fluxes computation in case of an unsteady algorith...
Definition: cs_convection_diffusion.h:1553
static void cs_slope_test_tensor(const cs_real_6_t pi, const cs_real_6_t pj, const cs_real_t distf, const cs_real_t srfan, const cs_real_3_t i_face_normal, const cs_real_63_t gradi, const cs_real_63_t gradj, const cs_real_63_t gradsti, const cs_real_63_t gradstj, const cs_real_t i_massflux, cs_real_t *testij, cs_real_t *tesqck)
Compute slope test criteria at internal face between cell i and j.
Definition: cs_convection_diffusion.h:309
static void cs_slope_test_vector(const cs_real_3_t pi, const cs_real_3_t pj, const cs_real_t distf, const cs_real_t srfan, const cs_real_3_t i_face_normal, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_33_t gradsti, const cs_real_33_t gradstj, const cs_real_t i_massflux, cs_real_t *testij, cs_real_t *tesqck)
Compute slope test criteria at internal face between cell i and j.
Definition: cs_convection_diffusion.h:170
static void cs_i_conv_flux(const int iconvp, const cs_real_t thetap, const int imasac, const cs_real_t pi, const cs_real_t pj, const cs_real_t pifri, const cs_real_t pifrj, const cs_real_t pjfri, const cs_real_t pjfrj, const cs_real_t i_massflux, const cs_real_t xcppi, const cs_real_t xcppj, cs_real_2_t fluxij)
Add convective fluxes (substracting the mass accumulation from them) to fluxes at face ij...
Definition: cs_convection_diffusion.h:981
static void cs_centered_f_val_vector(const double pnd, const cs_real_3_t pip, const cs_real_3_t pjp, cs_real_t pf[3])
Prepare value at face ij by using a centered scheme.
Definition: cs_convection_diffusion.h:774
static void cs_b_cd_unsteady_tensor(const int ircflp, const cs_real_3_t diipb, const cs_real_63_t gradi, const cs_real_6_t pi, cs_real_t pip[6])
Handle preparation of boundary face values for the flux computation in case of a steady algorithm...
Definition: cs_convection_diffusion.h:4948
void cs_face_diffusion_potential(const int f_id, const cs_mesh_t *m, cs_mesh_quantities_t *fvq, int init, int inc, int imrgra, int iccocg, int nswrgp, int imligp, int iphydp, int iwgrp, int iwarnp, double epsrgp, double climgp, double extrap, cs_real_3_t *restrict frcxt, cs_real_t *restrict pvar, const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_t *restrict visel, cs_real_t *restrict i_massflux, cs_real_t *restrict b_massflux)
Update the face mass flux with the face pressure (or pressure increment, or pressure double increment...
Definition: cs_convection_diffusion.c:9356
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:309
static void cs_b_diff_flux_coupling(const int idiffp, const cs_real_t pi, const cs_real_t pj, const cs_real_t b_visc, cs_real_t *fluxi)
Add diffusive flux to flux at an internal coupling face.
Definition: cs_convection_diffusion.h:4979
static void cs_i_cd_steady_slope_test_tensor(bool *upwind_switch, const int iconvp, const int ircflp, const int ischcp, const double relaxp, const double blencp, const double blend_st, const cs_real_t weight, const cs_real_t i_dist, const cs_real_t i_face_surf, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_normal, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_t i_massflux, const cs_real_63_t gradi, const cs_real_63_t gradj, const cs_real_63_t grdpai, const cs_real_63_t grdpaj, const cs_real_6_t pi, const cs_real_6_t pj, const cs_real_6_t pia, const cs_real_6_t pja, cs_real_t pifri[6], cs_real_t pifrj[6], cs_real_t pjfri[6], cs_real_t pjfrj[6], cs_real_t pip[6], cs_real_t pjp[6], cs_real_t pipr[6], cs_real_t pjpr[6])
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:3282
static void cs_b_upwind_flux_tensor(const int iconvp, const cs_real_t thetap, const int imasac, const int inc, const int bc_type, const cs_real_6_t pi, const cs_real_6_t pir, const cs_real_6_t pipr, const cs_real_6_t coefa, const cs_real_66_t coefb, const cs_real_t b_massflux, cs_real_t flux[6])
Add convective flux (substracting the mass accumulation from it) to flux at boundary face...
Definition: cs_convection_diffusion.h:4618
Definition: cs_convection_diffusion.h:73
void cs_slope_test_gradient(int f_id, int inc, cs_halo_type_t halo_type, const cs_real_3_t *grad, cs_real_3_t *grdpa, const cs_real_t *pvar, const cs_real_t *coefap, const cs_real_t *coefbp, const cs_real_t *i_massflux)
Compute the upwind gradient used in the slope tests.
Definition: cs_convection_diffusion.c:1245
static void cs_i_conv_flux_vector(const int iconvp, const cs_real_t thetap, const int imasac, const cs_real_3_t pi, const cs_real_3_t pj, const cs_real_3_t pifri, const cs_real_3_t pifrj, const cs_real_3_t pjfri, const cs_real_3_t pjfrj, const cs_real_t i_massflux, cs_real_t fluxi[3], cs_real_t fluxj[3])
Add convective fluxes (substracting the mass accumulation from them) to fluxes at face ij...
Definition: cs_convection_diffusion.h:1025
static void cs_i_conv_flux_tensor(const int iconvp, const cs_real_t thetap, const int imasac, const cs_real_6_t pi, const cs_real_6_t pj, const cs_real_6_t pifri, const cs_real_6_t pifrj, const cs_real_6_t pjfri, const cs_real_6_t pjfrj, const cs_real_t i_massflux, cs_real_t fluxi[6], cs_real_t fluxj[6])
Add convective fluxes (substracting the mass accumulation from them) to fluxes at face ij...
Definition: cs_convection_diffusion.h:1073
void cs_convection_diffusion_tensor(int idtvar, int f_id, const cs_var_cal_opt_t var_cal_opt, int icvflb, int inc, int imasac, cs_real_6_t *restrict pvar, const cs_real_6_t *restrict pvara, const cs_real_6_t coefa[], const cs_real_66_t coefb[], const cs_real_6_t cofaf[], const cs_real_66_t cofbf[], const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t *restrict rhs)
Add the explicit part of the convection/diffusion terms of a transport equation of a vector field ...
Definition: cs_convection_diffusion.c:4665
static void cs_i_cd_steady_slope_test_vector_old(bool *upwind_switch, const int iconvp, const int ircflp, const int ischcp, const double relaxp, const double blencp, const cs_real_t weight, const cs_real_t i_dist, const cs_real_t i_face_surf, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_normal, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_t i_massflux, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_33_t grdpai, const cs_real_33_t grdpaj, const cs_real_3_t pi, const cs_real_3_t pj, const cs_real_3_t pia, const cs_real_3_t pja, cs_real_t pifri[3], cs_real_t pifrj[3], cs_real_t pjfri[3], cs_real_t pjfrj[3], cs_real_t pip[3], cs_real_t pjp[3], cs_real_t pipr[3], cs_real_t pjpr[3])
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:2820
structure containing the variable calculation options.
Definition: cs_parameters.h:59
static void cs_i_cd_steady_slope_test_vector(bool *upwind_switch, const int iconvp, const int ircflp, const int ischcp, const double relaxp, const double blencp, const double blend_st, const cs_real_t weight, const cs_real_t i_dist, const cs_real_t i_face_surf, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_normal, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_t i_massflux, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_33_t grdpai, const cs_real_33_t grdpaj, const cs_real_3_t pi, const cs_real_3_t pj, const cs_real_3_t pia, const cs_real_3_t pja, cs_real_t pifri[3], cs_real_t pifrj[3], cs_real_t pjfri[3], cs_real_t pjfrj[3], cs_real_t pip[3], cs_real_t pjp[3], cs_real_t pipr[3], cs_real_t pjpr[3])
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:3049
static void cs_b_compute_quantities(const cs_real_3_t diipb, const cs_real_3_t gradi, const int ircflp, cs_real_t *recoi)
Reconstruct values in I' at boundary cell i.
Definition: cs_convection_diffusion.h:4198
static void cs_i_diff_flux_vector(const int idiffp, const cs_real_t thetap, const cs_real_3_t pip, const cs_real_3_t pjp, const cs_real_3_t pipr, const cs_real_3_t pjpr, const cs_real_t i_visc, cs_real_t fluxi[3], cs_real_t fluxj[3])
Add diffusive fluxes to fluxes at face ij.
Definition: cs_convection_diffusion.h:1145
static void cs_i_cd_steady(const int ircflp, const int ischcp, const double relaxp, const double blencp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_3_t gradi, const cs_real_3_t gradj, const cs_real_3_t gradupi, const cs_real_3_t gradupj, const cs_real_t pi, const cs_real_t pj, const cs_real_t pia, const cs_real_t pja, cs_real_t *pifri, cs_real_t *pifrj, cs_real_t *pjfri, cs_real_t *pjfrj, cs_real_t *pip, cs_real_t *pjp, cs_real_t *pipr, cs_real_t *pjpr)
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:1685
void itrgrv(const cs_int_t *const f_id, const cs_int_t *const init, const cs_int_t *const inc, const cs_int_t *const imrgra, const cs_int_t *const iccocg, const cs_int_t *const nswrgp, const cs_int_t *const imligp, const cs_int_t *const ircflp, const cs_int_t *const iphydp, const cs_int_t *const iwarnp, const cs_real_t *const epsrgp, const cs_real_t *const climgp, const cs_real_t *const extrap, cs_real_3_t frcxt[], cs_real_t pvar[], const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t viscel[], const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_t diverg[])
Definition: cs_convection_diffusion.c:1159
Definition: cs_convection_diffusion.h:69
static cs_real_t cs_math_3_square_distance(const cs_real_t xa[3], const cs_real_t xb[3])
Compute the squared distance between two points xa and xb in a cartesian coordinate system of dimensi...
Definition: cs_math.h:231
static void cs_i_cd_steady_slope_test(bool *upwind_switch, const int iconvp, const int ircflp, const int ischcp, const double relaxp, const double blencp, const double blend_st, const cs_real_t weight, const cs_real_t i_dist, const cs_real_t i_face_surf, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_normal, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_t i_massflux, const cs_real_3_t gradi, const cs_real_3_t gradj, const cs_real_3_t gradupi, const cs_real_3_t gradupj, const cs_real_3_t gradsti, const cs_real_3_t gradstj, const cs_real_t pi, const cs_real_t pj, const cs_real_t pia, const cs_real_t pja, cs_real_t *pifri, cs_real_t *pifrj, cs_real_t *pjfri, cs_real_t *pjfrj, cs_real_t *pip, cs_real_t *pjp, cs_real_t *pipr, cs_real_t *pjpr)
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:2564
void itrmas(const cs_int_t *const f_id, const cs_int_t *const init, const cs_int_t *const inc, const cs_int_t *const imrgra, const cs_int_t *const iccocg, const cs_int_t *const nswrgp, const cs_int_t *const imligp, const cs_int_t *const iphydp, const cs_int_t *const iwgrp, const cs_int_t *const iwarnp, const cs_real_t *const epsrgp, const cs_real_t *const climgp, const cs_real_t *const extrap, cs_real_3_t frcxt[], cs_real_t pvar[], const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_t visel[], cs_real_t i_massflux[], cs_real_t b_massflux[])
Definition: cs_convection_diffusion.c:968
void cs_diffusion_potential(const int f_id, const cs_mesh_t *m, cs_mesh_quantities_t *fvq, int init, int inc, int imrgra, int iccocg, int nswrgp, int imligp, int iphydp, int iwarnp, double epsrgp, double climgp, double extrap, cs_real_3_t *restrict frcxt, cs_real_t *restrict pvar, const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_t visel[], cs_real_t *restrict diverg)
Update the cell mass flux divergence with the face pressure (or pressure increment, or pressure double increment) gradient.
Definition: cs_convection_diffusion.c:10182
#define END_C_DECLS
Definition: cs_defs.h:454
static void cs_i_cd_steady_upwind(const int ircflp, const cs_real_t relaxp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_3_t gradi, const cs_real_3_t gradj, const cs_real_t pi, const cs_real_t pj, const cs_real_t pia, const cs_real_t pja, cs_real_t *pifri, cs_real_t *pifrj, cs_real_t *pjfri, cs_real_t *pjfrj, cs_real_t *pip, cs_real_t *pjp, cs_real_t *pipr, cs_real_t *pjpr)
Handle preparation of internal face values for the fluxes computation in case of a steady algorithm a...
Definition: cs_convection_diffusion.h:1224
Definition: cs_convection_diffusion.h:66
Definition: cs_convection_diffusion.h:71
static void cs_i_compute_quantities(const int ircflp, const double pnd, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_3_t gradi, const cs_real_3_t gradj, const cs_real_t pi, const cs_real_t pj, cs_real_t *recoi, cs_real_t *recoj, cs_real_t *pip, cs_real_t *pjp)
Reconstruct values in I' and J'.
Definition: cs_convection_diffusion.h:380
#define CS_PROCF(x, y)
Definition: cs_defs.h:467
static void cs_i_cd_unsteady_slope_test_vector(bool *upwind_switch, const int iconvp, const int ircflp, const int ischcp, const double blencp, const double blend_st, const cs_real_t weight, const cs_real_t i_dist, const cs_real_t i_face_surf, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_normal, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_t i_massflux, const cs_real_33_t gradi, const cs_real_33_t gradj, const cs_real_33_t grdpai, const cs_real_33_t grdpaj, const cs_real_3_t pi, const cs_real_3_t pj, cs_real_t pif[3], cs_real_t pjf[3], cs_real_t pip[3], cs_real_t pjp[3])
Handle preparation of internal face values for the fluxes computation in case of a unsteady algorithm...
Definition: cs_convection_diffusion.h:3873
static void cs_i_cd_unsteady_upwind_tensor(const int ircflp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_63_t gradi, const cs_real_63_t gradj, const cs_real_6_t pi, const cs_real_6_t pj, cs_real_t pif[6], cs_real_t pjf[6], cs_real_t pip[6], cs_real_t pjp[6])
Handle preparation of internal face values for the fluxes computation in case of an unsteady algorith...
Definition: cs_convection_diffusion.h:1613
cs_real_t cs_real_33_t[3][3]
3x3 matrix of floating-point values
Definition: cs_defs.h:315
Definition: cs_convection_diffusion.h:70
Definition: cs_convection_diffusion.h:60
Definition: cs_convection_diffusion.h:63
void cs_convection_diffusion_scalar(int idtvar, int f_id, const cs_var_cal_opt_t var_cal_opt, int icvflb, int inc, int iccocg, int imasac, cs_real_t *restrict pvar, const cs_real_t *restrict pvara, const cs_int_t icvfli[], const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_t *restrict rhs)
Add the explicit part of the convection/diffusion terms of a standard transport equation of a scalar ...
Definition: cs_convection_diffusion.c:1978
static void cs_blend_f_val_tensor(const double blencp, const cs_real_6_t p, cs_real_t pf[6])
Blend face values for a centered or SOLU scheme with face values for an upwind scheme.
Definition: cs_convection_diffusion.h:949
cs_real_t cs_real_63_t[6][3]
Definition: cs_defs.h:321
static void cs_b_cd_unsteady_vector(const int ircflp, const cs_real_3_t diipb, const cs_real_33_t gradi, const cs_real_3_t pi, cs_real_t pip[3])
Handle preparation of boundary face values for the flux computation in case of a steady algorithm...
Definition: cs_convection_diffusion.h:4917
static void cs_i_cd_unsteady_upwind(const int ircflp, const cs_real_t weight, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_real_3_t i_face_cog, const cs_real_3_t dijpf, const cs_real_3_t gradi, const cs_real_3_t gradj, const cs_real_t pi, const cs_real_t pj, cs_real_t *pif, cs_real_t *pjf, cs_real_t *pip, cs_real_t *pjp)
Handle preparation of internal face values for the fluxes computation in case of an unsteady algorith...
Definition: cs_convection_diffusion.h:1494
static void cs_b_cd_steady_tensor(const int ircflp, const double relaxp, const cs_real_3_t diipb, const cs_real_63_t gradi, const cs_real_6_t pi, const cs_real_6_t pia, cs_real_t pir[6], cs_real_t pipr[6])
Handle preparation of boundary face values for the flux computation in case of a steady algorithm...
Definition: cs_convection_diffusion.h:4849
void cs_max_limiter_building(int f_id, int inc, const cs_real_t rovsdt[])
Compute a coefficient for blending that ensures the positivity of the scalar.
Definition: cs_convection_diffusion.c:1827
static void cs_upwind_f_val(const cs_real_t p, cs_real_t *pf)
Prepare value at face ij by using an upwind scheme.
Definition: cs_convection_diffusion.h:702
void cs_convection_diffusion_thermal(int idtvar, int f_id, const cs_var_cal_opt_t var_cal_opt, int inc, int iccocg, int imasac, cs_real_t *restrict pvar, const cs_real_t *restrict pvara, const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t i_visc[], const cs_real_t b_visc[], const cs_real_t xcpp[], cs_real_t *restrict rhs)
Add the explicit part of the convection/diffusion terms of a transport equation of a scalar field su...
Definition: cs_convection_diffusion.c:5580
static void cs_b_diff_flux(const int idiffp, const cs_real_t thetap, const int inc, const cs_real_t pipr, const cs_real_t cofafp, const cs_real_t cofbfp, const cs_real_t b_visc, cs_real_t *flux)
Add diffusive flux to flux at boundary face.
Definition: cs_convection_diffusion.h:4667
void cs_upwind_gradient(const int f_id, const int inc, const cs_halo_type_t halo_type, const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t *restrict pvar, cs_real_3_t *restrict grdpa)
Compute the upwind gradient in order to cope with SOLU schemes observed in the litterature.
Definition: cs_convection_diffusion.c:1394
Definition: cs_convection_diffusion.h:68
void itrmav(const cs_int_t *const f_id, const cs_int_t *const init, const cs_int_t *const inc, const cs_int_t *const imrgra, const cs_int_t *const iccocg, const cs_int_t *const nswrgp, const cs_int_t *const imligp, const cs_int_t *const ircflp, const cs_int_t *const iphydp, const cs_int_t *const iwgrp, const cs_int_t *const iwarnp, const cs_real_t *const epsrgp, const cs_real_t *const climgp, const cs_real_t *const extrap, cs_real_3_t frcxt[], cs_real_t pvar[], const cs_real_t coefap[], const cs_real_t coefbp[], const cs_real_t cofafp[], const cs_real_t cofbfp[], const cs_real_t i_visc[], const cs_real_t b_visc[], cs_real_6_t viscel[], const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_t i_massflux[], cs_real_t b_massflux[])
Definition: cs_convection_diffusion.c:1031
static void cs_b_relax_c_val_vector(const double relaxp, const cs_real_3_t pi, const cs_real_3_t pia, const cs_real_3_t recoi, cs_real_t pir[3], cs_real_t pipr[3])
Compute relaxed values at boundary cell i.
Definition: cs_convection_diffusion.h:4295
static void cs_blend_f_val(const double blencp, const cs_real_t p, cs_real_t *pf)
Blend face values for a centered or SOLU scheme with face values for an upwind scheme.
Definition: cs_convection_diffusion.h:908
Definition: cs_convection_diffusion.h:72
void cs_anisotropic_diffusion_vector(int idtvar, int f_id, const cs_var_cal_opt_t var_cal_opt, int inc, int ivisep, cs_real_3_t *restrict pvar, const cs_real_3_t *restrict pvara, const cs_real_3_t coefav[], const cs_real_33_t coefbv[], const cs_real_3_t cofafv[], const cs_real_33_t cofbfv[], const cs_real_t i_visc[], const cs_real_t b_visc[], const cs_real_t secvif[], cs_real_6_t *restrict viscel, const cs_real_2_t weighf[], const cs_real_t weighb[], cs_real_3_t *restrict rhs)
Add the explicit part of the diffusion terms with a symmetric tensorial diffusivity for a transport e...
Definition: cs_convection_diffusion.c:8068