23 #ifndef UNIFORM_CARTESIAN_GRID 24 #if GEOMETRY == CARTESIAN 25 #define UNIFORM_CARTESIAN_GRID YES 27 #define UNIFORM_CARTESIAN_GRID NO 31 #define CHECK_MONOTONICITY NO 38 typedef struct PLM_COEFFS{
72 #define SET_FL_LIMITER(dv, dvp, dvm, cp, cm) \ 76 #define SET_MM_LIMITER(dv, dvp, dvm, cp, cm) \ 77 dv = ( (dvp)*(dvm) > 0.0 ? ABS_MIN((dvp), (dvm)): 0.0) 80 #define SET_VA_LIMITER(dv, dvp, dvm, cp, cm)\ 81 if ((dvp)*(dvm) > 0.0) { \ 82 double _dpp= (dvp)*(dvp), _dmm = (dvm)*(dvm); \ 83 dv = ( (dvp)*(_dmm + 1.e-18) + (dvm)*(_dpp + 1.e-18))/(_dpp + _dmm + 1.e-18); \ 87 #define SET_UM_LIMITER(dv, dvp, dvm, cp, cm)\ 88 if ( (dvp)*(dvm) > 0.0){ \ 89 double _ddp = 0.25*( (dvp) + 3.0*(dvm)), _ddm = 0.25*((dvm) + 3.0*(dvp)); \ 90 double _d2 = 2.0*ABS_MIN( (dvp), (dvm) );\ 91 _d2 = ABS_MIN(_d2, _ddp);\ 92 dv = ABS_MIN(_d2, _ddm);\ 96 #define SET_GM_LIMITER(dv, dvp, dvm, cp, cm) \ 97 if (dvp*dvm > 0.0) { \ 98 double _qc = 0.5*(dvm + dvp), _scrh = ABS_MIN((dvp)*(cp), (dvm)*(cm)); \ 99 dv = ABS_MIN(_qc, _scrh); \ 106 #if UNIFORM_CARTESIAN_GRID == YES 109 #define SET_OS_LIMITER(dv, dvp, dvm, cp, cm)\ 110 dv = ( (dvp)*(dvm) > 0.0? \ 111 dv = 1.5*(dvp)*(dvm)*((dvm) + (dvp))/((dvp)*(dvp) + (dvm)*(dvm) + (dvp)*(dvm)): 0.0); 114 #define SET_VL_LIMITER(dv, dvp, dvm, cp, cm)\ 115 dv = ( (dvp)*(dvm) > 0.0 ? 2.0*(dvp)*(dvm)/((dvp) + (dvm)) :0.0) 119 #define SET_MC_LIMITER(dv, dvp, dvm, cp, cm) \ 120 if ( (dvp)*(dvm) > 0.0) { \ 121 double _qc = 0.5*( (dvm) + (dvp) ), _scrh = 2.0*ABS_MIN( (dvp), (dvm) ); \ 122 dv = ABS_MIN(_qc, _scrh); \ 132 #define SET_OS_LIMITER(dv, dvp, dvm, cp, cm)\ 133 if (dvp*dvm > 0.0){ \ 134 double _den = 2.0*(dvp)*(dvp) + 2.0*(dvm)*(dvm) + (cp + cm - 2.0)*(dvp)*(dvm);\ 135 dv = dvp*dvm*((1.0+cp)*(dvm) + (1.0+cm)*(dvp))/_den; \ 140 #define SET_VL_LIMITER(dv, dvp, dvm, cp, cm)\ 141 dv = (dvp*dvm > 0.0 ? (dvp)*(dvm)*(cp*(dvm) + cm*(dvp)) \ 142 /((dvp)*(dvp) + (dvm)*(dvm) + (cp + cm - 2.0)*(dvp)*(dvm)) :0.0) 146 #define SET_MC_LIMITER(dv, dvp, dvm, cp, cm) \ 147 if (dvp*dvm > 0.0) { \ 148 double _qc = 0.5*((dvm) + (dvp)), _scrh = ABS_MIN((dvp)*cp, (dvm)*cm); \ 149 dv = ABS_MIN(_qc, _scrh); \ 160 #if LIMITER == FLAT_LIM 161 #define SET_LIMITER SET_FL_LIMITER 162 #elif LIMITER == MINMOD_LIM 163 #define SET_LIMITER SET_MM_LIMITER 164 #elif LIMITER == VANALBADA_LIM 165 #define SET_LIMITER SET_VA_LIMITER 166 #elif LIMITER == OSPRE_LIM 167 #define SET_LIMITER SET_OS_LIMITER 168 #elif LIMITER == UMIST_LIM 169 #define SET_LIMITER SET_UM_LIMITER 170 #elif LIMITER == VANLEER_LIM 171 #define SET_LIMITER SET_VL_LIMITER 172 #elif LIMITER == MC_LIM 173 #define SET_LIMITER SET_MC_LIMITER 179 #define SET_LIMITER SET_VL_LIMITER void PLM_CoefficientsGet(PLM_Coeffs *, int)
Definition: plm_coeffs.c:82
Definition: structs.h:124
Definition: plm_coeffs.h:38
void PLM_CoefficientsSet(Grid *grid)
Definition: plm_coeffs.c:30