21 real aL, ML, MpL, PpL, asL2, asL, atL;
22 real aR, MR, MmR, PmR, asR2, asR, atR;
24 real *vL, *vR, *uL, *uR;
26 static real **fl, **fr, **ul, **ur;
38 for (i = beg; i <= end; i++) {
50 asL2 = aL*aL/(
g_gamma - 1.0) + 0.5*asL2;
54 asR2 = aR*aR/(
g_gamma - 1.0) + 0.5*asR2;
60 atL = asL2/
MAX(asL, fabs(vL[
VXn]));
61 atR = asR2/
MAX(asR, fabs(vR[
VXn]));
73 if ( fabs(ML) >= 1.0){
74 MpL = 0.5*(ML + fabs(ML));
75 PpL = ML > 0.0 ? 1.0:0.0;
77 MpL = 0.25*(ML + 1.0)*(ML + 1.0) + beta*(ML*ML - 1.0)*(ML*ML - 1.0);
78 PpL = 0.25*(ML + 1.0)*(ML + 1.0)*(2.0 - ML) + alpha*ML*(ML*ML - 1.0)*(ML*ML - 1.0);
82 if ( fabs(MR) >= 1.0){
83 MmR = 0.5*(MR - fabs(MR));
84 PmR = MR > 0.0 ? 0.0:1.0;
86 MmR = - 0.25*(MR - 1.0)*(MR - 1.0) - beta*(MR*MR - 1.0)*(MR*MR - 1.0);
87 PmR = 0.25*(MR - 1.0)*(MR - 1.0)*(2.0 + MR) - alpha*MR*(MR*MR - 1.0)*(MR*MR - 1.0);
92 mp = 0.5*(m + fabs(m));
93 mm = 0.5*(m - fabs(m));
99 state->
press[
i] = PpL*vL[PRS] + PmR*vR[PRS];
104 state->
flux[
i][ENG] = a*(mp*(uL[ENG] + vL[PRS]) + mm*(uR[ENG] + vR[PRS]));
108 cmax[
i] =
MAX(fabs(vL[
VXn]) + aL, fabs(vR[VXn]) + aR);
115 print1 (
"! AUSMp_Solver: not defined for this EOS\n");
double ** flux
upwind flux computed with the Riemann solver
void print1(const char *fmt,...)
double ** vR
Primitive variables to the right of the interface, .
double g_maxMach
The maximum Mach number computed during integration.
long int NMAX_POINT
Maximum number of points among the three directions, boundaries excluded.
void PrimToCons(double **uprim, double **ucons, int ibeg, int iend)
double ** vL
Primitive variables to the left of the interface, .
double * press
Upwind pressure term computed with the Riemann solver.
#define ARRAY_2D(nx, ny, type)
#define QUIT_PLUTO(e_code)