69 #ifndef EPS_PSHOCK_FLATTEN
70 #define EPS_PSHOCK_FLATTEN 5.0
73 #ifndef EPS_PSHOCK_ENTROPY
74 #define EPS_PSHOCK_ENTROPY 0.05
77 #if (SHOCK_FLATTENING == MULTID) || ENTROPY_SWITCH
87 double divv, gradp, pt_min;
88 double dpx1, *dx1, *dV1, ***vx1, pt_min1, dvx1;
89 double dpx2, *dx2, *dV2, ***vx2, pt_min2, dvx2;
90 double dpx3, *dx3, *dV3, ***vx3, pt_min3, dvx3;
92 double *dVx, *dVy, *dVz;
93 double *Ar, *Ath, *r, *th,
s;
109 EXPAND(vx1 = d->
Vc[
VX1]; ,
121 #if EOS == ISOTHERMAL
122 pt[
k][
j][
i] = d->
Vc[
RHO][
k][
j][
i]*g_isoSoundSpeed*g_isoSoundSpeed;
129 #if (ENTROPY_SWITCH == SELECTIVE) || (ENTROPY_SWITCH == ALWAYS)
138 for (k = KOFFSET; k <
NX3_TOT-KOFFSET; k++){
139 for (j = JOFFSET; j <
NX2_TOT-JOFFSET; j++){
140 for (i = IOFFSET; i <
NX1_TOT-IOFFSET; i++){
144 #if GEOMETRY == CARTESIAN
146 D_EXPAND(dvx1 = vx1[k][j][i + 1] - vx1[k][j][i - 1]; ,
147 dvx2 = vx2[
k][j + 1][
i] - vx2[
k][j - 1][
i]; ,
148 dvx3 = vx3[k + 1][
j][
i] - vx3[k - 1][
j][
i];)
152 D_EXPAND(dvx1 = Ar[i] *(vx1[k][j][i + 1] + vx1[k][j][i])
153 - Ar[i-1]*(vx1[k][j][i - 1] + vx1[k][j][i]); ,
154 dvx2 = vx2[
k][j + 1][
i] - vx2[
k][j - 1][
i]; ,
155 dvx3 = vx3[k + 1][
j][
i] - vx3[k - 1][
j][
i];)
159 D_EXPAND(dvx1 = Ar[i] *(vx1[k][j][i + 1] + vx1[k][j][i])
160 - Ar[i-1]*(vx1[k][j][i - 1] + vx1[k][j][i]); ,
161 dvx2 = (vx2[
k][j + 1][
i] - vx2[
k][j - 1][
i])/r[i]; ,
162 dvx3 = vx3[k + 1][
j][
i] - vx3[k - 1][
j][
i];)
166 D_EXPAND(dvx1 = Ar[i] *(vx1[k][j][i + 1] + vx1[k][j][i])
167 - Ar[i-1]*(vx1[
k][
j][i - 1] + vx1[
k][
j][
i]); ,
168 dvx2 = ( Ath[
j] *(vx2[
k][j + 1][
i] + vx2[
k][
j][
i])
169 - Ath[j-1]*(vx2[k][j - 1][i] + vx2[k][j][i]))/fabs(r[i]); ,
171 dvx3 = (vx3[k + 1][
j][
i] - vx3[k - 1][
j][
i])/(r[i]*sin(s));)
175 divv =
D_EXPAND(dvx1/dV1[i], + dvx2/dV2[j], + dvx3/dV3[k]);
184 pt_min = pt[
k][
j][
i];
185 D_EXPAND(pt_min1 =
MIN(pt[k][j][i+1], pt[k][j][i-1]); ,
186 pt_min2 =
MIN(pt[k][j+1][i], pt[k][j-1][i]); ,
187 pt_min3 =
MIN(pt[k+1][j][i], pt[k-1][j][i]); )
190 pt_min =
MIN(pt_min, pt_min2); ,
191 pt_min =
MIN(pt_min, pt_min3);)
193 D_EXPAND(dpx1 = fabs(pt[k][j][i+1] - pt[k][j][i-1]); ,
194 dpx2 = fabs(pt[k][j+1][i] - pt[k][j-1][i]); ,
195 dpx3 = fabs(pt[k+1][j][i] - pt[k-1][j][i]);)
197 gradp =
D_EXPAND(dpx1, + dpx2, + dpx3);
199 #if SHOCK_FLATTENING == MULTID
220 #if ENTROPY_SWITCH == SELECTIVE
242 #undef EPS_PSHOCK_FLATTEN
243 #undef EPS_PSHOCK_ENTROPY
#define EPS_PSHOCK_FLATTEN
long int NX2_TOT
Total number of zones in the X2 direction (boundaries included) for the local processor.
double **** Vc
The main four-index data array used for cell-centered primitive variables.
#define ARRAY_3D(nx, ny, nz, type)
unsigned char *** flag
Pointer to a 3D array setting useful integration flags that are retrieved during integration.
#define EPS_PSHOCK_ENTROPY
#define FLAG_MINMOD
Reconstruct using MINMOD limiter.
#define TOT_LOOP(k, j, i)
#define FLAG_ENTROPY
Update pressure using entropy equation.
int AL_Exchange(void *vbuf, int sz_ptr)
long int NX3_TOT
Total number of zones in the X3 direction (boundaries included) for the local processor.
D_EXPAND(tot/[n]=(double) grid[IDIR].np_int_glob;, tot/[n]=(double) grid[JDIR].np_int_glob;, tot/[n]=(double) grid[KDIR].np_int_glob;)
#define FLAG_HLL
Use HLL Riemann solver.
void FlagShock(const Data *, Grid *)
long int NX1_TOT
Total number of zones in the X1 direction (boundaries included) for the local processor.
double * A
Right interface area, A[i] = .