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
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)\
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
void PLM_CoefficientsGet(PLM_Coeffs *, int)
void PLM_CoefficientsSet(Grid *grid)
struct PLM_COEFFS PLM_Coeffs