16 #if SHOCK_FLATTENING == ONED
49 #if PHYSICS == RHD || PHYSICS == RMHD
59 double scrh, dp, d2p, min_p, vf, fj;
93 for (i = beg - 1; i <= end + 1; i++) {
94 dp = v[i + 1][PRS] - v[i - 1][PRS];
95 min_p =
MIN(v[i + 1][PRS], v[i - 1][PRS]);
96 d2p = v[i + 2][PRS] - v[i - 2][PRS];
97 scrh = fabs(dp)/min_p;
98 if (scrh <
EPS2 || (v[i + 1][
VXn] > v[i - 1][
VXn])){
102 scrh =
MIN(1.0, scrh);
103 f_t[
i] =
MAX(0.0, scrh);
107 for (i = beg; i <=
end; i++) {
108 sj = (v[i + 1][PRS] < v[i - 1][PRS] ? 1 : -1);
109 fj =
MAX(f_t[i], f_t[i + sj]);
110 for (nv = 0; nv <
NVAR; nv++){
113 vm[
i][nv] = vf + vm[
i][nv]*
scrh;
114 vp[
i][nv] = vf + vp[
i][nv]*
scrh;
double ** v
Cell-centered primitive varables at the base time level, v[i] = .
int end
Global end index for the local array.
double ** vp
prim vars at i+1/2 edge, vp[i] = vL(i+1/2)
int g_dir
Specifies the current sweep or direction of integration.
int beg
Global start index for the local array.
void Flatten(const State_1D *state, int beg, int end, Grid *grid)
double ** vm
prim vars at i-1/2 edge, vm[i] = vR(i-1/2)
#define ARRAY_1D(nx, type)
long int NMAX_POINT
Maximum number of points among the three directions, boundaries excluded.
int np_tot
Total number of points in the local domain (boundaries included).