56 Set::Scalar T_L=0, T_R=0, p_L=0, p_R=0, gamma_L=0, gamma_R=0;
60 p_L = std::max(small, gas.
ComputeP(rho_L, T_L,
X, i-1, j, k));
61 gamma_L = gas.
gamma(T_L,
X, i-1, j, k);
63 p_R = std::max(small, gas.
ComputeP(rho_R, T_R,
X, i, j, k));
64 gamma_R = gas.
gamma(T_R,
X, i, j, k);
68 p_L = std::max(small, gas.
ComputeP(rho_L, T_L,
X, i, j, k));
69 gamma_L = gas.
gamma(T_L,
X, i, j, k);
71 p_R = std::max(small, gas.
ComputeP(rho_R, T_R,
X, i+1, j, k));
72 gamma_R = gas.
gamma(T_R,
X, i+1, j, k);
76 p_L = std::max(small, gas.
ComputeP(rho_L, T_L,
X, i, j-1, k));
77 gamma_L = gas.
gamma(T_L,
X, i, j-1, k);
79 p_R = std::max(small, gas.
ComputeP(rho_R, T_R,
X, i, j, k));
80 gamma_R = gas.
gamma(T_R,
X, i, j, k);
84 p_L = std::max(small, gas.
ComputeP(rho_L, T_L,
X, i, j, k));
85 gamma_L = gas.
gamma(T_L,
X, i, j, k);
87 p_R = std::max(small, gas.
ComputeP(rho_R, T_R,
X, i, j+1, k));
88 gamma_R = gas.
gamma(T_R,
X, i, j+1, k);
92 p_L = std::max(small, gas.
ComputeP(rho_L, T_L,
X, i, j, k-1));
93 gamma_L = gas.
gamma(T_L,
X, i, j, k-1);
95 p_R = std::max(small, gas.
ComputeP(rho_R, T_R,
X, i, j, k));
96 gamma_R = gas.
gamma(T_R,
X, i, j, k);
100 p_L = std::max(small, gas.
ComputeP(rho_L, T_L,
X, i, j, k));
101 gamma_L = gas.
gamma(T_L,
X, i, j, k);
103 p_R = std::max(small, gas.
ComputeP(rho_R, T_R,
X, i, j, k+1));
104 gamma_R = gas.
gamma(T_R,
X, i, j, k+1);
122 Set::Scalar pstar = std::max(0.0, 0.5*(p_L + p_R) - 0.5*(u_R - u_L)*rhobar*abar);
126 std::sqrt(1.0 + ((gamma_L+1.0)/(2.0*gamma_L)) * (pstar/p_L - 1.0));
129 std::sqrt(1.0 + ((gamma_R+1.0)/(2.0*gamma_R)) * (pstar/p_R - 1.0));
137 (p_R - p_L + rho_L*u_L*(S_L-u_L) - rho_R*u_R*(S_R-u_R)) /
138 ( rho_L*(S_L-u_L) - rho_R*(S_R - u_R) );
143 Flux F_L ( rho_L*u_L,
149 else if (S_L <= 0.0 && 0.0 < Sstar)
151 Flux F_L ( rho_L*u_L,
163 (E_L/rho_L) + (Sstar-u_L) * (Sstar + p_L/(rho_L*(S_L-u_L))));
164 Ustar_L *= rho_L*(S_L - u_L)/(S_L-Sstar);
166 return F_L + S_L*(Ustar_L - U_L);
168 else if (Sstar <= 0.0 && 0.0 <= S_R )
170 Flux F_R ( rho_R*u_R,
183 (E_R/rho_R) + (Sstar - u_R)*(Sstar + p_R/(rho_R*(S_R-u_R))));
184 Ustar_R *= rho_R*(S_R-u_R)/(S_R-Sstar);
186 return F_R + S_R*(Ustar_R - U_R);
190 Flux F_R ( rho_R*u_R,
202 return Flux(NAN,NAN,NAN,NAN);