1#ifndef SOLVER_LOCAL_RIEMANN_HLLE_H
2#define SOLVER_LOCAL_RIEMANN_HLLE_H
22 static constexpr const char*
name =
"hlle";
53 rho_L = std::max(small,rho_L);
54 rho_R = std::max(small,rho_R);
58 Set::Scalar u_L = Mn_L/(rho_L+small), u_R = Mn_R/(rho_R+small);
59 Set::Scalar v_L = Mn_L/(rho_L+small), v_R = Mn_R/(rho_R+small);
61 Set::Scalar T_L=0, T_R=0, p_L=0, p_R=0, gamma_L=0, gamma_R=0;
65 p_L = gas.
ComputeP(rho_L, T_L,
X, i-1, j, k);
66 gamma_L = gas.
gamma(T_L,
X, i-1, j, k);
68 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j, k);
69 gamma_R = gas.
gamma(T_R,
X, i, j, k);
73 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j, k);
74 gamma_L = gas.
gamma(T_L,
X, i, j, k);
76 p_R = gas.
ComputeP(rho_R, T_R,
X, i+1, j, k);
77 gamma_R = gas.
gamma(T_R,
X, i+1, j, k);
81 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j-1, k);
82 gamma_L = gas.
gamma(T_L,
X, i, j-1, k);
84 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j, k);
85 gamma_R = gas.
gamma(T_R,
X, i, j, k);
89 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j, k);
90 gamma_L = gas.
gamma(T_L,
X, i, j, k);
92 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j+1, k);
93 gamma_R = gas.
gamma(T_R,
X, i, j+1, k);
97 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j, k-1);
98 gamma_L = gas.
gamma(T_L,
X, i, j, k-1);
100 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j, k);
101 gamma_R = gas.
gamma(T_R,
X, i, j, k);
105 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j, k);
106 gamma_L = gas.
gamma(T_L,
X, i, j, k);
108 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j, k+1);
109 gamma_R = gas.
gamma(T_R,
X, i, j, k+1);
115 Set::Scalar c_L = std::sqrt(gamma_L * p_L / (rho_L + small));
116 Set::Scalar c_R = std::sqrt(gamma_R * p_R / (rho_R + small));
127 Set::Scalar Mach = std::abs(u_RL) / (a_RL + small);
156 State dState = hi - lo;
158 return (S_R*F_L - S_L*F_R + S_L*S_R*
Flux(dState)) / dS;
#define pp_queryclass(...)
int query_default(std::string name, T &value, T defaultvalue)
double ComputeP(double density, double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
double ComputeT(double density, double momentumx, double momentumy, double E, double Tguess, Set::Patch< const Set::Scalar > &X, int i, int j, int k, double rtol=1e-12) const
double gamma(double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
static constexpr const char * name
static void Parse(HLLE &value, IO::ParmParse &pp)
HLLE(IO::ParmParse &pp, std::string name)
virtual Flux Solve(State lo, State hi, Model::Gas::Gas &gas, Set::Patch< const Set::Scalar > &X, int i, int j, int k, int side, Set::Scalar small) override
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
void Abort(const char *msg)