1#ifndef CS_CONVECTION_DIFFUSION_PRIV_H
2#define CS_CONVECTION_DIFFUSION_PRIV_H
98 cs_real_t beta_m, rfc, r1f, r1, r2, r3, b1, b2;
103 rfc = (nvf_r_f-nvf_r_c)/(1.-nvf_r_c);
105 if (nvf_p_c < beta_m) {
106 nvf_p_f = nvf_p_c*(1.+rfc*(1.-nvf_p_c)/beta_m);
108 r1f = (1.-nvf_r_f)/(1.-nvf_r_c);
110 nvf_p_f = r1f*nvf_p_c+rfc;
116 if (nvf_p_c < (nvf_r_c/3.)) {
117 r1 = nvf_r_f*(1.-3.*nvf_r_c+2.*nvf_r_f);
118 r2 = nvf_r_c*(1.-nvf_r_c);
120 nvf_p_f = nvf_p_c*r1/r2;
121 }
else if (nvf_p_c <= (nvf_r_c*(1.+nvf_r_f-nvf_r_c)/nvf_r_f)) {
122 rfc = (nvf_r_f-nvf_r_c)/(1.-nvf_r_c);
123 r1f = (1.-nvf_r_f)/(1.-nvf_r_c);
125 nvf_p_f = nvf_r_f*(r1f*nvf_p_c/nvf_r_c + rfc);
133 if (nvf_p_c < (3.*nvf_r_c/4.)) {
134 rfc = (nvf_r_f-nvf_r_c)/(1.-nvf_r_c);
136 nvf_p_f = nvf_r_f*(1.+rfc/3.)*nvf_p_c/nvf_r_c;
137 }
else if (nvf_p_c <= (nvf_r_c*(1.+2.*(nvf_r_f-nvf_r_c))/(2.*nvf_r_f-nvf_r_c))) {
138 rfc = (nvf_r_f-nvf_r_c)/(1.-nvf_r_c);
139 r1f = (1.-nvf_r_f)/(1.-nvf_r_c);
141 nvf_p_f = nvf_r_f*(r1f*nvf_p_c/nvf_r_c+rfc);
143 r1f = (1.-nvf_r_f)/(1.-nvf_r_c);
145 nvf_p_f = 1.-.5*r1f*(1.-nvf_p_c);
151 if (nvf_p_c < (nvf_r_c/(2.-nvf_r_c))) {
152 nvf_p_f = (2.*nvf_r_f-nvf_r_c)*nvf_p_c/nvf_r_c;
153 }
else if (nvf_p_c < nvf_r_c) {
154 rfc = (nvf_r_f-nvf_r_c)/(1.-nvf_r_c);
155 r1f = (1.-nvf_r_f)/(1.-nvf_r_c);
157 nvf_p_f = r1f*nvf_p_c+rfc;
158 }
else if (nvf_p_c < (nvf_r_c/nvf_r_f)) {
159 nvf_p_f = nvf_r_f*nvf_p_c/nvf_r_c;
167 if (nvf_p_c < (.5*nvf_r_c)) {
168 nvf_p_f = (2.*nvf_r_f-nvf_r_c)*nvf_p_c/nvf_r_c;
169 }
else if (nvf_p_c < (1.+nvf_r_c-nvf_r_f)) {
170 nvf_p_f = nvf_p_c+nvf_r_f-nvf_r_c;
178 if (nvf_p_c < nvf_r_c) {
179 nvf_p_f = nvf_r_f*nvf_p_c/nvf_r_c;
181 rfc = (nvf_r_f-nvf_r_c)/(1.-nvf_r_c);
182 r1f = (1.-nvf_r_f)/(1.-nvf_r_c);
184 nvf_p_f = r1f*nvf_p_c+rfc;
190 r1 = nvf_r_c*nvf_r_c-nvf_r_f;
191 r2 = nvf_r_c*(nvf_r_c-1.);
192 r3 = nvf_r_f-nvf_r_c;
194 nvf_p_f = nvf_p_c*(r1+r3*nvf_p_c)/r2;
199 b1 = (nvf_r_c-nvf_r_f)*nvf_r_c;
200 b2 = nvf_r_c+nvf_r_f+2.*nvf_r_f*nvf_r_f-4.*nvf_r_f*nvf_r_c;
202 if (nvf_p_c < (b1/b2)) {
203 r1 = -nvf_r_f*(1.-3.*nvf_r_c+2.*nvf_r_f);
204 r2 = nvf_r_c*(nvf_r_c-1.);
206 nvf_p_f = nvf_p_c*r1/r2;
207 }
else if (nvf_p_c < nvf_r_c) {
208 rfc = (nvf_r_f-nvf_r_c)/(1.-nvf_r_c);
209 r1f = (1.-nvf_r_f)/(1.-nvf_r_c);
211 nvf_p_f = r1f*nvf_p_c+rfc;
212 }
else if (nvf_p_c < (nvf_r_c*(1.+nvf_r_f-nvf_r_c)/nvf_r_f)) {
213 rfc = (nvf_r_f-nvf_r_c)/(1.-nvf_r_c);
214 r1f = (1.-nvf_r_f)/(1.-nvf_r_c);
216 nvf_p_f = nvf_r_f*(nvf_p_c*r1f/nvf_r_c+rfc);
224 if (nvf_p_c < (nvf_r_c/nvf_r_f)) {
225 nvf_p_f = nvf_r_f*nvf_p_c/nvf_r_c;
233 r1 = nvf_r_c*nvf_r_f*(nvf_r_f-nvf_r_c);
234 r2 = 2.*nvf_r_c*(1.-nvf_r_c)-nvf_r_f*(1.-nvf_r_f);
236 if (nvf_p_c < (r1/r2)) {
237 nvf_p_f = 2.*nvf_p_c;
238 }
else if (nvf_p_c <= (nvf_r_c*(1.+nvf_r_f-nvf_r_c)/nvf_r_f)) {
239 rfc = (nvf_r_f-nvf_r_c)/(1.-nvf_r_c);
240 r1f = (1.-nvf_r_f)/(1.-nvf_r_c);
242 nvf_p_f = nvf_r_f*(nvf_p_c*r1f/nvf_r_c+rfc);
287 cs_real_t blend, high_order, low_order, ratio;
297 high_order = 2.*nvf_p_c;
317 nvf_p_f = blend*high_order + (1.-blend)*low_order;
320 if (c_courant < .7 && c_courant > .3) {
321 nvf_p_f = nvf_p_f + (nvf_p_f - low_order)*(.7 - c_courant )/.4;
322 }
else if (c_courant >= .7) {
327 if (c_courant <= .3) {
329 }
else if (c_courant <= .6) {
331 }
else if (c_courant <= .7) {
336 high_order = 10.*( (.7-c_courant)*
cs_math_fmin(1., nvf_p_c/.3)
337 + (c_courant-.6)*superbee);
361 nvf_p_f = blend*high_order + (1.-blend)*low_order;
384 nvf_p_f = blend*high_order + (1.-blend)*low_order;
426 *testij = grdpai[0]*grdpaj[0]
427 + grdpai[1]*grdpaj[1]
428 + grdpai[2]*grdpaj[2];
430 if (i_massflux > 0.) {
431 dcc = gradi[0]*i_face_u_normal[0]
432 + gradi[1]*i_face_u_normal[1]
433 + gradi[2]*i_face_u_normal[2];
434 ddi = grdpai[0]*i_face_u_normal[0]
435 + grdpai[1]*i_face_u_normal[1]
436 + grdpai[2]*i_face_u_normal[2];
440 dcc = gradj[0]*i_face_u_normal[0]
441 + gradj[1]*i_face_u_normal[1]
442 + gradj[2]*i_face_u_normal[2];
444 ddj = grdpaj[0]*i_face_u_normal[0]
445 + grdpaj[1]*i_face_u_normal[1]
446 + grdpaj[2]*i_face_u_normal[2];
475template <cs_lnum_t str
ide,
typename T>
481 const T gradi[stride][3],
482 const T gradj[stride][3],
483 const T gradsti[stride][3],
484 const T gradstj[stride][3],
494 for (
int i = 0; i < stride; i++) {
498 *testij += gradsti[i][0]*gradstj[i][0]
499 + gradsti[i][1]*gradstj[i][1]
500 + gradsti[i][2]*gradstj[i][2];
502 if (i_massflux > 0.) {
503 dcc = gradi[i][0]*i_face_u_normal[0]
504 + gradi[i][1]*i_face_u_normal[1]
505 + gradi[i][2]*i_face_u_normal[2];
506 ddi = gradsti[i][0]*i_face_u_normal[0]
507 + gradsti[i][1]*i_face_u_normal[1]
508 + gradsti[i][2]*i_face_u_normal[2];
509 ddj = (pj[i]-
pi[i])/distf;
512 dcc = gradj[i][0]*i_face_u_normal[0]
513 + gradj[i][1]*i_face_u_normal[1]
514 + gradj[i][2]*i_face_u_normal[2];
515 ddi = (pj[i]-
pi[i])/distf;
516 ddj = gradstj[i][0]*i_face_u_normal[0]
517 + gradstj[i][1]*i_face_u_normal[1]
518 + gradstj[i][2]*i_face_u_normal[2];
557 T gradpf[3] = {(T)0.5*(gradi[0] + gradj[0]),
558 (T)0.5*(gradi[1] + gradj[1]),
559 (T)0.5*(gradi[2] + gradj[2])};
589template <cs_lnum_t str
ide,
typename T>
594 const T gradi[stride][3],
595 const T gradj[stride][3],
607 for (
int isou = 0; isou < stride; isou++) {
609 for (
int jsou = 0; jsou < 3; jsou++)
610 dpvf[jsou] = 0.5*( gradi[isou][jsou]
611 + gradj[isou][jsou]);
618 pip[isou] =
pi[isou] + recoi[isou];
619 pjp[isou] = pj[isou] + recoj[isou];
637 if (pip < bounds[0]) {
640 else if (pip > bounds[1]) {
658template <cs_lnum_t str
ide>
665 for (
cs_lnum_t isou = 0; isou < stride; isou++)
666 v_r[isou] = pip[isou] -
pi[isou];
668 cs_real_t d2 = cs_math_square_norm<stride>(v_r);
672 for (
cs_lnum_t isou = 0; isou < stride; isou++)
673 pip[isou] = pip[isou] + v_r[isou]*s;
708 *pir =
pi/relaxp - (1.-relaxp)/relaxp * pia;
709 *pjr = pj/relaxp - (1.-relaxp)/relaxp * pja;
711 *pipr = *pir + recoi;
712 *pjpr = *pjr + recoj;
736template <cs_lnum_t str
ide,
typename T>
741 const T recoi[stride],
742 const T recoj[stride],
750 for (
int isou = 0; isou < stride; isou++) {
751 pir[isou] =
pi[isou] /relaxp - (1.-relaxp)/relaxp * pia[isou];
752 pjr[isou] = pj[isou] /relaxp - (1.-relaxp)/relaxp * pja[isou];
754 pipr[isou] = pir[isou] + recoi[isou];
755 pjpr[isou] = pjr[isou] + recoj[isou];
776 *pf = pnd*pip + (1.-pnd)*pjp;
793template <cs_lnum_t str
ide>
800 for (
int isou = 0; isou < stride; isou++)
801 pf[isou] = pnd*pip[isou] + (1.-pnd)*pjp[isou];
826 df[0] = i_face_cog[0] - cell_cen[0];
827 df[1] = i_face_cog[1] - cell_cen[1];
828 df[2] = i_face_cog[2] - cell_cen[2];
848template <cs_lnum_t str
ide,
typename T>
852 const T grad[stride][3],
858 for (
cs_lnum_t jsou = 0; jsou < 3; jsou++)
859 df[jsou] = i_face_cog[jsou] - cell_cen[jsou];
861 for (
cs_lnum_t isou = 0; isou < stride; isou++) {
862 pf[isou] =
p[isou] + df[0]*grad[isou][0]
863 + df[1]*grad[isou][1]
864 + df[2]*grad[isou][2];
885 *pf = blencp * (*pf) + (1. - blencp) *
p;
903template <cs_lnum_t str
ide>
909 for (
int isou = 0; isou < stride; isou++)
910 pf[isou] = blencp*(pf[isou])+(1.-blencp)*
p[isou];
953 flui = 0.5*(i_massflux + fabs(i_massflux));
954 fluj = 0.5*(i_massflux - fabs(i_massflux));
956 fluxij[0] += iconvp*xcppi*(thetap*(flui*pifri + fluj*pjfri) - imasac*i_massflux*
pi);
957 fluxij[1] += iconvp*xcppj*(thetap*(flui*pifrj + fluj*pjfrj) - imasac*i_massflux*pj);
983template <cs_lnum_t str
ide>
1000 flui = 0.5*(i_massflux + fabs(i_massflux));
1001 fluj = 0.5*(i_massflux - fabs(i_massflux));
1003 for (
int isou = 0; isou < stride; isou++) {
1004 fluxi[isou] += iconvp*( thetap*(flui*pifri[isou] + fluj*pjfri[isou])
1005 - imasac*i_massflux*
pi[isou]);
1006 fluxj[isou] += iconvp*( thetap*(flui*pifrj[isou] + fluj*pjfrj[isou])
1007 - imasac*i_massflux*pj[isou]);
1036 fluxij[0] += idiffp*thetap*i_visc*(pipr -pjp);
1037 fluxij[1] += idiffp*thetap*i_visc*(pip -pjpr);
1059template <cs_lnum_t str
ide>
1071 for (
int isou = 0; isou < stride; isou++) {
1072 fluxi[isou] += idiffp*thetap*i_visc*(pipr[isou] -pjp[isou]);
1073 fluxj[isou] += idiffp*thetap*i_visc*(pip[isou] -pjpr[isou]);
1149template <cs_lnum_t str
ide>
1165 cs_i_compute_quantities_strided<stride>(bldfrp,
1177 for (
int l = 0; l < stride; l++) {
1216 const double blencp,
1265 }
else if (ischcp == 0) {
1281 }
else if (ischcp == 3) {
1311 hybrid_blend_interp = fmin(hybrid_blend_i,hybrid_blend_j);
1312 *pif = hybrid_blend_interp*(*pif) + (1. - hybrid_blend_interp)*pif_up;
1313 *pjf = hybrid_blend_interp*(*pjf) + (1. - hybrid_blend_interp)*pjf_up;
1375template <cs_lnum_t str
ide>
1400 cs_i_compute_quantities_strided<stride>(bldfrp,
1417 cs_centered_f_val_strided<stride>(weight, pip, pjp, pif);
1418 cs_centered_f_val_strided<stride>(weight, pip, pjp, pjf);
1421 else if (ischcp == 3) {
1426 cs_centered_f_val_strided<stride>(weight, pip, pjp, pif);
1427 cs_centered_f_val_strided<stride>(weight, pip, pjp, pjf);
1431 cs_real_t pif_up[stride], pjf_up[stride];
1434 cs_solu_f_val_strided<stride>(cell_ceni,
1439 cs_solu_f_val_strided<stride>(cell_cenj,
1445 hybrid_blend_interp = fmin(hybrid_blend_i, hybrid_blend_j);
1446 for (
int isou = 0; isou < stride; isou++) {
1447 pif[isou] = hybrid_blend_interp *pif[isou]
1448 + (1. - hybrid_blend_interp)*pif_up[isou];
1449 pjf[isou] = hybrid_blend_interp *pjf[isou]
1450 + (1. - hybrid_blend_interp)*pjf_up[isou];
1458 cs_solu_f_val_strided<stride>(cell_ceni,
1463 cs_solu_f_val_strided<stride>(cell_cenj,
1474 cs_blend_f_val_strided<stride>(blencp,
pi, pif);
1475 cs_blend_f_val_strided<stride>(blencp, pj, pjf);
1521 const double blencp,
1522 const double blend_st,
1550 *upwind_switch =
false;
1592 }
else if (ischcp == 0) {
1629 if (tesqck<=0. || testij<=0.) {
1638 *upwind_switch =
true;
1681 if (i_massflux >= 0.) {
1713template <
typename T>
1735 cs_real_t diff[3] = {cell_cen_d[0] - cell_cen_c[0],
1736 cell_cen_d[1] - cell_cen_c[1],
1737 cell_cen_d[2] - cell_cen_c[2]};
1750 const cs_real_t dist_du = dist_dc + dist_cu;
1756 const cs_real_t grad2c = ((p_d - p_c)/dist_dc - gradc)/dist_dc;
1758 cs_real_t p_u = p_c + (grad2c*dist_cu - gradc)*dist_cu;
1762 const cs_real_t nvf_r_f = (dist_fc+dist_cu)/dist_du;
1763 const cs_real_t nvf_r_c = dist_cu/dist_du;
1770 if (
cs::abs(p_d-p_u) <= _small) {
1775 const cs_real_t nvf_p_c = (p_c - p_u)/(p_d - p_u);
1777 if (nvf_p_c <= 0. || nvf_p_c >= 1.) {
1800 *pif = p_u + nvf_p_f*(p_d - p_u);
1851template <cs_lnum_t str
ide>
1883 cs_i_compute_quantities_strided<stride>(bldfrp,
1897 cs_slope_test_strided<stride>(
pi,
1909 for (isou = 0; isou < stride; isou++) {
1946 if (tesqck <= 0. || testij <= 0.) {
1951 cs_blend_f_val_strided<stride>(blend_st,
pi, pif);
1952 cs_blend_f_val_strided<stride>(blend_st, pj, pjf);
1954 *upwind_switch =
true;
1960 cs_blend_f_val_strided<stride>(blencp,
pi, pif);
1961 cs_blend_f_val_strided<stride>(blencp, pj, pjf);
1967 for (
int l = 0; l < stride; l++) {
1986template <
typename T>
1993 *recoi = bldfrp * ( gradi[0]*diipb[0]
1995 + gradi[2]*diipb[2]);
2012template <cs_lnum_t str
ide,
typename T>
2015 const T gradi[stride][3],
2019 for (
int isou = 0; isou < stride; isou++) {
2020 recoi[isou] = bldfrp * ( gradi[isou][0]*diipb[0]
2021 + gradi[isou][1]*diipb[1]
2022 + gradi[isou][2]*diipb[2]);
2047 *pir =
pi/relaxp - (1.-relaxp)/relaxp*pia;
2048 *pipr = *pir + recoi;
2067template <cs_lnum_t str
ide>
2076 for (
int isou = 0; isou < stride; isou++) {
2077 pir[isou] =
pi[isou]/relaxp - (1.-relaxp)/relaxp*pia[isou];
2078 pipr[isou] = pir[isou] + recoi[isou];
2135 flui = 0.5*(b_massflux +fabs(b_massflux));
2136 fluj = 0.5*(b_massflux -fabs(b_massflux));
2139 *flux += iconvp*xcpp*(thetap*(flui*pir + fluj*val_f) -imasac*( b_massflux*
pi));
2145 pfac = inc*coface + cofbce*pipr;
2146 *flux += iconvp*xcpp*(-imasac*(b_massflux*
pi) + thetap*(pfac));
2177template <cs_lnum_t str
ide>
2206 flui = 0.5*(b_massflux +fabs(b_massflux));
2207 fluj = 0.5*(b_massflux -fabs(b_massflux));
2210 for (
int isou = 0; isou < stride; isou++)
2211 flux[isou] += iconvp*( thetap*(flui*pir[isou] + fluj*pfac[isou])
2212 - imasac*b_massflux*
pi[isou]);
2219 for (
int isou = 0; isou < stride; isou++) {
2220 pfac[isou] = inc*coface[isou];
2221 for (
int jsou = 0; jsou < stride; jsou++) {
2222 pfac[isou] += cofbce[isou][jsou]*pipr[jsou];
2224 flux[isou] += iconvp*( thetap*pfac[isou]
2225 - imasac*b_massflux*
pi[isou]);
2269 flui = 0.5*(b_massflux +fabs(b_massflux));
2270 fluj = 0.5*(b_massflux -fabs(b_massflux));
2273 *flux += iconvp*xcpp*(thetap*(flui*pir + fluj*val_f) -imasac*( b_massflux*
pi));
2320 flui = 0.5*(b_massflux +fabs(b_massflux));
2321 fluj = 0.5*(b_massflux -fabs(b_massflux));
2324 pfac = inc*coefap + coefbp*pipr;
2325 *flux += iconvp*xcpp*(thetap*(flui*pir + fluj*pfac) -imasac*( b_massflux*
pi));
2348template <cs_lnum_t str
ide>
2367 flui = 0.5*(b_massflux +fabs(b_massflux));
2368 fluj = 0.5*(b_massflux -fabs(b_massflux));
2371 for (
int isou = 0; isou < stride; isou++)
2372 flux[isou] += iconvp*( thetap*(flui*pir[isou] + fluj*pfac[isou])
2373 - imasac*b_massflux*
pi[isou]);
2395 *flux += idiffp*thetap*b_visc*pfacd;
2423 cs_real_t pfacd = inc*cofafp + cofbfp*pipr;
2424 *flux += idiffp*thetap*b_visc*pfacd;
2442template <cs_lnum_t str
ide>
2450 for (
int isou = 0; isou < stride; isou++)
2451 flux[isou] += idiffp*thetap*b_visc*pfacd[isou];
2467template <
typename T>
2501template <cs_lnum_t str
ide,
typename T>
2505 const T gradi[stride][3],
2511 cs_b_compute_quantities_strided<stride>(diipb,
2516 for (
int isou = 0; isou < stride; isou++)
2517 pip[isou] =
pi[isou] + recoi[isou];
2540 *fluxi += idiffp*b_visc*(
pi - pj);
2559template <cs_lnum_t str
ide>
2567 for (
int k = 0;
k < stride;
k++)
2568 fluxi[
k] += idiffp*b_visc*(
pi[
k] - pj[
k]);
2580template <
typename T>
2585 const char *var_name,
2601template <cs_lnum_t str
ide,
typename T>
2606 const char *var_name,
2612 const T (*
restrict grad)[stride][3],
2650template <cs_lnum_t str
ide>
2655 const char *var_name,
Definition: cs_dispatch.h:2288
Field boundary condition descriptor (for variables)
Definition: cs_field.h:107
Field descriptor.
Definition: cs_field.h:275
cs_nvd_type_t
Definition: cs_convection_diffusion.h:55
@ CS_NVD_SUPERBEE
Definition: cs_convection_diffusion.h:60
@ CS_NVD_SMART
Definition: cs_convection_diffusion.h:58
@ CS_NVD_CUBISTA
Definition: cs_convection_diffusion.h:59
@ CS_NVD_STOIC
Definition: cs_convection_diffusion.h:64
@ CS_NVD_WASEB
Definition: cs_convection_diffusion.h:66
@ CS_NVD_CLAM
Definition: cs_convection_diffusion.h:63
@ CS_NVD_OSHER
Definition: cs_convection_diffusion.h:65
@ CS_NVD_VOF_CICSAM
Definition: cs_convection_diffusion.h:68
@ CS_NVD_GAMMA
Definition: cs_convection_diffusion.h:57
@ CS_NVD_MINMOD
Definition: cs_convection_diffusion.h:62
@ CS_NVD_VOF_HRIC
Definition: cs_convection_diffusion.h:67
@ CS_NVD_MUSCL
Definition: cs_convection_diffusion.h:61
static CS_F_HOST_DEVICE void cs_b_diff_flux_coupling(int idiffp, cs_real_t pi, cs_real_t pj, cs_real_t b_visc, cs_real_t *fluxi)
Add diffusive flux to flux at an internal coupling face.
Definition: cs_convection_diffusion_priv.h:2534
static CS_F_HOST_DEVICE void cs_i_compute_quantities(const T bldfrp, const cs_rreal_3_t diipf, const cs_rreal_3_t djjpf, const T gradi[3], const T gradj[3], const cs_real_t pi, const cs_real_t pj, T *recoi, T *recoj, cs_real_t *pip, cs_real_t *pjp)
Reconstruct values in I' and J'.
Definition: cs_convection_diffusion_priv.h:545
static CS_F_HOST_DEVICE void cs_i_diff_flux_strided(int idiffp, cs_real_t thetap, const cs_real_t pip[stride], const cs_real_t pjp[stride], const cs_real_t pipr[stride], const cs_real_t pjpr[stride], const cs_real_t i_visc, cs_real_t fluxi[stride], cs_real_t fluxj[stride])
Add diffusive fluxes to fluxes at face ij.
Definition: cs_convection_diffusion_priv.h:1061
void cs_convection_diffusion_steady_scalar(const cs_field_t *f, const cs_equation_param_t &eqp, bool icvflb, int inc, const cs_real_t *restrict pvar, const cs_real_t *restrict pvara, const int icvfli[], const cs_field_bc_coeffs_t *bc_coeffs, 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)
static CS_F_HOST_DEVICE void cs_centered_f_val_strided(double pnd, const cs_real_t pip[stride], const cs_real_t pjp[stride], cs_real_t pf[stride])
Prepare value at face ij by using a centered scheme.
Definition: cs_convection_diffusion_priv.h:795
bool cs_convection_diffusion_vector_v9(int idtvar, int f_id, const cs_equation_param_t eqp, int icvflb, int inc, int ivisep, int imasac, cs_real_3_t *restrict pvar, const cs_real_3_t *restrict pvara, const int icvfli[], cs_field_bc_coeffs_t *bc_coeffs, 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 i_secvis[], const cs_real_t b_secvis[], cs_real_3_t *restrict i_pvar, cs_real_3_t *restrict b_pvar, 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_v9.cpp:2284
static CS_F_HOST_DEVICE void cs_i_cd_unsteady_slope_test_strided(bool *upwind_switch, int iconvp, cs_real_t bldfrp, int ischcp, double blencp, double blend_st, cs_real_t weight, cs_real_t i_dist, const cs_real_t cell_ceni[3], const cs_real_t cell_cenj[3], const cs_nreal_t i_face_u_normal[3], const cs_real_t i_face_cog[3], const cs_rreal_t diipf[3], const cs_rreal_t djjpf[3], cs_real_t i_massflux, const cs_real_t gradi[stride][3], const cs_real_t gradj[stride][3], const cs_real_t grdpai[stride][3], const cs_real_t grdpaj[stride][3], const cs_real_t pi[stride], const cs_real_t pj[stride], cs_real_t pif[stride], cs_real_t pjf[stride], cs_real_t pip[stride], cs_real_t pjp[stride])
Handle preparation of internal face values for the fluxes computation in case of a unsteady algorithm...
Definition: cs_convection_diffusion_priv.h:1853
static CS_F_HOST_DEVICE void cs_i_cd_unsteady(const cs_real_t bldfrp, 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_rreal_3_t diipf, const cs_rreal_3_t djjpf, 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_priv.h:1214
static CS_F_HOST_DEVICE void cs_i_cd_unsteady_nvd(const cs_nvd_type_t limiter, const double beta, const cs_real_3_t cell_cen_c, const cs_real_3_t cell_cen_d, const cs_nreal_3_t i_face_u_normal, const cs_real_3_t i_face_cog, const T gradv_c, const cs_real_t p_c, const cs_real_t p_d, const cs_real_t local_max_c, const cs_real_t local_min_c, const cs_real_t courant_c, cs_real_t *pif, cs_real_t *pjf)
Handle preparation of internal face values for the convection flux computation in case of an unsteady...
Definition: cs_convection_diffusion_priv.h:1715
static CS_F_HOST_DEVICE void cs_b_relax_c_val_strided(const double relaxp, const cs_real_t pi[stride], const cs_real_t pia[stride], const cs_real_t recoi[stride], cs_real_t pir[stride], cs_real_t pipr[stride])
Compute relaxed values at boundary cell i.
Definition: cs_convection_diffusion_priv.h:2069
void cs_convection_diffusion_adjust_and_check_bounds_scalar(cs_dispatch_context &ctx, const char *var_name, const cs_equation_param_t &eqp, bool face_gradient, int ircflb, const cs_mesh_t *m, const cs_mesh_quantities_t *fvq, const cs_real_t *restrict pvar, const T(*restrict grad)[3], const cs_real_t *df_limiter, cs_real_t(*restrict bounds)[2])
Adust bounds if rc_clip_factor < or > 1, and check bounds if required by verbosity level or postproce...
Definition: cs_convection_diffusion.cpp:4646
bool cs_convection_diffusion_thermal_v9(const cs_field_t *f, const cs_equation_param_t eqp, int inc, int imasac, const cs_real_t *pvar, cs_field_bc_coeffs_t *bc_coeffs, 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 *c_weight, 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_v9.cpp:2187
static CS_F_HOST_DEVICE void cs_i_cd_unsteady_upwind_strided(const cs_real_t bldfrp, const cs_rreal_t diipf[3], const cs_rreal_t djjpf[3], const cs_real_t gradi[stride][3], const cs_real_t gradj[stride][3], const cs_real_t pi[stride], const cs_real_t pj[stride], cs_real_t pif[stride], cs_real_t pjf[stride], cs_real_t pip[stride], cs_real_t pjp[stride])
Handle preparation of internal face values for the fluxes computation in case of an unsteady algorith...
Definition: cs_convection_diffusion_priv.h:1151
void cs_convection_diffusion_adjust_and_check_bounds_strided(cs_dispatch_context &ctx, const char *var_name, const cs_equation_param_t &eqp, bool face_gradient, int ircflb, const cs_mesh_t *m, const cs_mesh_quantities_t *fvq, const T(*restrict grad)[stride][3], const cs_real_t *df_limiter, cs_real_t *restrict bounds)
Adust bounds if rc_clip_factor < or > 1, and check bounds if required by verbosity level or postproce...
Definition: cs_convection_diffusion.cpp:4734
void cs_face_convection_steady_scalar(const cs_field_t *f, const cs_equation_param_t eqp, int icvflb, int inc, cs_real_t *restrict pvar, const cs_real_t *restrict pvara, const int icvfli[], const cs_field_bc_coeffs_t *bc_coeffs, const cs_real_t i_massflux[], const cs_real_t b_massflux[], cs_real_t i_conv_flux[][2], cs_real_t b_conv_flux[])
static void cs_sync_scalar_halo(const cs_mesh_t *m, cs_halo_type_t halo_type, cs_real_t pvar[])
Definition: cs_convection_diffusion_priv.h:69
bool cs_convection_diffusion_tensor_v9(int idtvar, int f_id, const cs_equation_param_t eqp, int icvflb, int inc, int imasac, cs_real_6_t *restrict pvar, const cs_real_6_t *restrict pvara, cs_field_bc_coeffs_t *bc_coeffs, 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 tensor field .
Definition: cs_convection_diffusion_v9.cpp:2543
static CS_F_HOST_DEVICE 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_priv.h:696
static CS_F_HOST_DEVICE void cs_b_upwind_flux(const int iconvp, const cs_real_t thetap, const int imasac, const int bc_type, const cs_real_t pi, const cs_real_t pir, const cs_real_t val_f, 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_priv.h:2251
static CS_F_HOST_DEVICE void cs_i_compute_quantities_strided(const T bldfrp, const cs_rreal_t diipf[3], const cs_rreal_t djjpf[3], const T gradi[stride][3], const T gradj[stride][3], const cs_real_t pi[stride], const cs_real_t pj[stride], T recoi[stride], T recoj[stride], cs_real_t pip[stride], cs_real_t pjp[stride])
Reconstruct values in I' and J'.
Definition: cs_convection_diffusion_priv.h:591
static CS_F_HOST_DEVICE void cs_i_cd_unsteady_slope_test(bool *upwind_switch, const int iconvp, const cs_real_t bldfrp, const int ischcp, const double blencp, const double blend_st, const cs_real_t weight, const cs_real_t i_dist, const cs_real_3_t cell_ceni, const cs_real_3_t cell_cenj, const cs_nreal_3_t i_face_u_normal, const cs_real_3_t i_face_cog, const cs_rreal_3_t diipf, const cs_rreal_3_t djjpf, 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_priv.h:1517
static CS_F_HOST_DEVICE void cs_b_upwind_flux_strided(int iconvp, cs_real_t thetap, int imasac, int bc_type, const cs_real_t pi[stride], const cs_real_t pir[stride], const cs_real_t b_massflux, const cs_real_t pfac[stride], cs_real_t flux[stride])
Add convective flux (substracting the mass accumulation from it) to flux at boundary face....
Definition: cs_convection_diffusion_priv.h:2350
static CS_F_HOST_DEVICE void cs_b_diff_flux_coupling_strided(int idiffp, const cs_real_t pi[stride], const cs_real_t pj[stride], cs_real_t b_visc, cs_real_t fluxi[stride])
Add diffusive flux to flux at an internal coupling face for a vector.
Definition: cs_convection_diffusion_priv.h:2561
static CS_F_HOST_DEVICE void cs_b_cd_unsteady_strided(T bldfrp, const cs_rreal_t diipb[3], const T gradi[stride][3], const cs_real_t pi[stride], cs_real_t pip[stride])
Handle preparation of boundary face values for the flux computation in case of a steady algorithm.
Definition: cs_convection_diffusion_priv.h:2503
static CS_F_HOST_DEVICE void cs_clip_quantity_strided(const cs_real_t &bounds, const cs_real_t pi[stride], cs_real_t pip[stride])
Clip reconstructed value in strided case.
Definition: cs_convection_diffusion_priv.h:660
static CS_F_HOST_DEVICE void cs_b_diff_flux(const int idiffp, const cs_real_t thetap, const cs_real_t pfacd, const cs_real_t b_visc, cs_real_t *flux)
Add diffusive flux to flux at boundary face.
Definition: cs_convection_diffusion_priv.h:2389
static CS_F_HOST_DEVICE 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_priv.h:2040
static CS_F_HOST_DEVICE void cs_centered_f_val(double pnd, cs_real_t pip, cs_real_t pjp, cs_real_t *pf)
Prepare value at face ij by using a centered scheme.
Definition: cs_convection_diffusion_priv.h:771
static CS_F_HOST_DEVICE void cs_slope_test(const cs_real_t pi, const cs_real_t pj, const cs_real_t distf, const cs_nreal_t i_face_u_normal[3], const T gradi[3], const T gradj[3], const T grdpai[3], const T grdpaj[3], const cs_real_t i_massflux, T *testij, T *tesqck)
Compute slope test criteria at internal face between cell i and j.
Definition: cs_convection_diffusion_priv.h:410
static CS_F_HOST_DEVICE void cs_b_imposed_conv_flux(int iconvp, cs_real_t thetap, int imasac, int inc, int bc_type, int icvfli, cs_real_t pi, cs_real_t pir, cs_real_t pipr, cs_real_t coface, cs_real_t cofbce, cs_real_t b_massflux, cs_real_t xcpp, cs_real_t val_f, cs_real_t *flux)
Add convective flux (substracting the mass accumulation from it) to flux at boundary face....
Definition: cs_convection_diffusion_priv.h:2108
static CS_F_HOST_DEVICE void cs_clip_quantity(const cs_real_t bounds[2], cs_real_t &pip)
Clip reconstructed value.
Definition: cs_convection_diffusion_priv.h:634
static CS_F_HOST_DEVICE void cs_i_relax_c_val_strided(cs_real_t relaxp, const cs_real_t pia[stride], const cs_real_t pja[stride], const T recoi[stride], const T recoj[stride], const cs_real_t pi[stride], const cs_real_t pj[stride], cs_real_t pir[stride], cs_real_t pjr[stride], cs_real_t pipr[stride], cs_real_t pjpr[stride])
Compute relaxed values at cell i and j.
Definition: cs_convection_diffusion_priv.h:738
static CS_F_HOST_DEVICE void cs_b_imposed_conv_flux_strided(int iconvp, cs_real_t thetap, int imasac, int inc, int bc_type, int icvfli, const cs_real_t pi[stride], const cs_real_t pir[stride], const cs_real_t pipr[stride], const cs_real_t coface[stride], const cs_real_t cofbce[stride][stride], cs_real_t b_massflux, cs_real_t pfac[stride], cs_real_t flux[stride])
Add convective flux (substracting the mass accumulation from it) to flux at boundary face....
Definition: cs_convection_diffusion_priv.h:2179
static CS_F_HOST_DEVICE void cs_i_cd_unsteady_upwind(const cs_real_t bldfrp, const cs_rreal_t diipf[3], const cs_rreal_t djjpf[3], const cs_real_t gradi[3], const cs_real_t gradj[3], 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_priv.h:1097
static CS_F_HOST_DEVICE void cs_blend_f_val_strided(const double blencp, const cs_real_t p[stride], cs_real_t pf[stride])
Blend face values for a centered or SOLU scheme with face values for an upwind scheme.
Definition: cs_convection_diffusion_priv.h:905
static CS_F_HOST_DEVICE void cs_i_conv_flux_strided(int iconvp, cs_real_t thetap, int imasac, const cs_real_t pi[stride], const cs_real_t pj[stride], const cs_real_t pifri[stride], const cs_real_t pifrj[stride], const cs_real_t pjfri[stride], const cs_real_t pjfrj[stride], cs_real_t i_massflux, cs_real_t fluxi[stride], cs_real_t fluxj[stride])
Add convective fluxes (substracting the mass accumulation from them) to fluxes at face ij.
Definition: cs_convection_diffusion_priv.h:985
static CS_F_HOST_DEVICE void cs_slope_test_strided(const cs_real_t pi[stride], const cs_real_t pj[stride], const cs_real_t distf, const cs_nreal_t i_face_u_normal[3], const T gradi[stride][3], const T gradj[stride][3], const T gradsti[stride][3], const T gradstj[stride][3], const cs_real_t i_massflux, T *testij, T *tesqck)
Compute slope test criteria at internal face between cell i and j.
Definition: cs_convection_diffusion_priv.h:477
static CS_F_HOST_DEVICE void cs_b_compute_quantities_strided(const cs_rreal_t diipb[3], const T gradi[stride][3], const T bldfrp, T recoi[stride])
Reconstruct values in I' at boundary cell i.
Definition: cs_convection_diffusion_priv.h:2014
static CS_F_HOST_DEVICE 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_t fluxij[2])
Add diffusive fluxes to fluxes at face ij.
Definition: cs_convection_diffusion_priv.h:1027
bool cs_convection_diffusion_scalar_v9(const cs_field_t *f, const cs_equation_param_t eqp, int icvflb, int inc, int imasac, const cs_real_t *restrict pvar, const int icvfli[], cs_field_bc_coeffs_t *bc_coeffs, 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 *c_weight, cs_real_t *rhs, cs_real_2_t i_flux[], cs_real_t b_flux[])
Add the explicit part of the convection/diffusion terms of a standard transport equation of a scalar ...
Definition: cs_convection_diffusion_v9.cpp:2081
static CS_F_HOST_DEVICE cs_real_t cs_nvd_vof_scheme_scalar(cs_nvd_type_t limiter, const cs_nreal_t i_face_u_normal[3], cs_real_t nvf_p_c, cs_real_t nvf_r_f, cs_real_t nvf_r_c, const T gradv_c[3], const cs_real_t c_courant)
Compute the normalised face scalar using the specified NVD scheme for the case of a Volume-of-Fluid (...
Definition: cs_convection_diffusion_priv.h:276
static CS_F_HOST_DEVICE void cs_b_compute_quantities(const cs_rreal_t diipb[3], const T gradi[3], const T bldfrp, T *recoi)
Reconstruct values in I' at boundary cell i.
Definition: cs_convection_diffusion_priv.h:1988
static CS_F_HOST_DEVICE void cs_b_diff_flux_strided(int idiffp, cs_real_t thetap, cs_real_t b_visc, const cs_real_t pfacd[stride], cs_real_t flux[stride])
Add diffusive flux to flux at boundary face.
Definition: cs_convection_diffusion_priv.h:2444
static CS_F_HOST_DEVICE void cs_b_cd_unsteady(const T bldfrp, const cs_rreal_t diipb[3], const T gradi[3], 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_priv.h:2469
static CS_F_HOST_DEVICE void cs_central_downwind_cells(const cs_lnum_t ii, const cs_lnum_t jj, const cs_real_t i_massflux, cs_lnum_t *ic, cs_lnum_t *id)
Determine the upwind and downwind sides of an internal face and matching cell indices.
Definition: cs_convection_diffusion_priv.h:1675
static CS_F_HOST_DEVICE 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_priv.h:937
static CS_F_HOST_DEVICE void cs_solu_f_val(const cs_real_t cell_cen[3], const cs_real_t i_face_cog[3], const T grad[3], 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_priv.h:818
static CS_F_HOST_DEVICE cs_real_t cs_nvd_scheme_scalar(const cs_nvd_type_t limiter, const cs_real_t nvf_p_c, const cs_real_t nvf_r_f, const cs_real_t nvf_r_c)
Compute the normalized face scalar using the specified NVD scheme.
Definition: cs_convection_diffusion_priv.h:91
static CS_F_HOST_DEVICE 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_priv.h:881
static CS_F_HOST_DEVICE void cs_i_cd_unsteady_strided(cs_real_t bldfrp, int ischcp, double blencp, cs_real_t weight, const cs_real_t cell_ceni[3], const cs_real_t cell_cenj[3], const cs_real_t i_face_cog[3], const cs_real_t hybrid_blend_i, const cs_real_t hybrid_blend_j, const cs_rreal_t diipf[3], const cs_rreal_t djjpf[3], const cs_real_t gradi[stride][3], const cs_real_t gradj[stride][3], const cs_real_t pi[stride], const cs_real_t pj[stride], cs_real_t pif[stride], cs_real_t pjf[stride], cs_real_t pip[stride], cs_real_t pjp[stride])
Handle preparation of internal face values for the fluxes computation in case of an unsteady algorith...
Definition: cs_convection_diffusion_priv.h:1377
void cs_convection_diffusion_steady_strided(cs_field_t *f, const char *var_name, const cs_equation_param_t &eqp, int icvflb, int inc, cs_real_t(*pvar)[stride], const cs_real_t(*pvara)[stride], const int icvfli[], const cs_field_bc_coeffs_t *bc_coeffs, 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 grad)[stride][3], cs_real_t(*restrict rhs)[stride])
static CS_F_HOST_DEVICE void cs_solu_f_val_strided(const cs_real_t cell_cen[3], const cs_real_t i_face_cog[3], const T grad[stride][3], const cs_real_t p[stride], cs_real_t pf[stride])
Prepare value at face ij by using a Second Order Linear Upwind scheme.
Definition: cs_convection_diffusion_priv.h:850
#define restrict
Definition: cs_defs.h:148
#define CS_F_HOST_DEVICE
Definition: cs_defs.h:555
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
cs_rreal_t cs_rreal_3_t[3]
Definition: cs_defs.h:378
cs_nreal_t cs_nreal_3_t[3]
Definition: cs_defs.h:375
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:349
cs_real_t cs_real_2_t[2]
vector of 2 floating-point values
Definition: cs_defs.h:348
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition: cs_defs.h:351
#define CS_UNUSED(x)
Definition: cs_defs.h:518
double cs_rreal_t
Definition: cs_defs.h:338
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
double cs_nreal_t
Definition: cs_defs.h:336
@ p
Definition: cs_field_pointer.h:63
@ k
Definition: cs_field_pointer.h:68
void cs_halo_sync_var(const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_real_t var[])
Definition: cs_halo.cpp:2372
cs_halo_type_t
Definition: cs_halo.h:53
CS_F_HOST_DEVICE cs_real_t cs_math_3_dot_product(const T u[3], const U v[3])
Compute the dot product of two vectors of 3 real values.
Definition: cs_math.h:194
static constexpr cs_real_t cs_math_epzero
Definition: cs_math.h:102
CS_F_HOST_DEVICE T cs_math_sq(T x)
Compute the square of a real value.
Definition: cs_math.h:149
CS_F_HOST_DEVICE cs_real_t cs_math_3_distance(const cs_real_t xa[3], const cs_real_t xb[3])
Compute the (euclidean) distance between two points xa and xb in a Cartesian coordinate system of dim...
Definition: cs_math.h:970
CS_F_HOST_DEVICE cs_real_t cs_math_fmin(cs_real_t x, cs_real_t y)
Compute the min value of two real values.
Definition: cs_math.h:825
CS_F_HOST_DEVICE T cs_math_3_norm(const T v[3])
Compute the euclidean norm of a vector of dimension 3.
Definition: cs_math.h:240
@ CS_COUPLED_FD
Definition: cs_parameters.h:99
double precision pi
value with 16 digits
Definition: cstnum.f90:42
integer(c_int), pointer, save idtvar
option for a variable time step
Definition: optcal.f90:70
CS_F_HOST_DEVICE T max(const T a, const T b)
Definition: cs_defs.h:735
CS_F_HOST_DEVICE T min(const T a, const T b)
Definition: cs_defs.h:712
CS_F_HOST_DEVICE T abs(const T a)
Definition: cs_defs.h:690
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources.
Definition: cs_equation_param.h:190
Definition: cs_mesh_quantities.h:88
cs_halo_t * halo
Definition: cs_mesh.h:156