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);
60 Set::Scalar T_L=0, T_R=0, p_L=0, p_R=0, gamma_L=0, gamma_R=0;
64 p_L = gas.
ComputeP(rho_L, T_L,
X, i-1, j, k);
65 gamma_L = gas.
gamma(T_L,
X, i-1, j, k);
67 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j, k);
68 gamma_R = gas.
gamma(T_R,
X, i, j, k);
72 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j, k);
73 gamma_L = gas.
gamma(T_L,
X, i, j, k);
75 p_R = gas.
ComputeP(rho_R, T_R,
X, i+1, j, k);
76 gamma_R = gas.
gamma(T_R,
X, i+1, j, k);
80 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j-1, k);
81 gamma_L = gas.
gamma(T_L,
X, i, j-1, k);
83 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j, k);
84 gamma_R = gas.
gamma(T_R,
X, i, j, k);
88 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j, k);
89 gamma_L = gas.
gamma(T_L,
X, i, j, k);
91 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j+1, k);
92 gamma_R = gas.
gamma(T_R,
X, i, j+1, k);
96 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j, k-1);
97 gamma_L = gas.
gamma(T_L,
X, i, j, k-1);
99 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j, k);
100 gamma_R = gas.
gamma(T_R,
X, i, j, k);
104 p_L = gas.
ComputeP(rho_L, T_L,
X, i, j, k);
105 gamma_L = gas.
gamma(T_L,
X, i, j, k);
107 p_R = gas.
ComputeP(rho_R, T_R,
X, i, j, k+1);
108 gamma_R = gas.
gamma(T_R,
X, i, j, k+1);
114 Set::Scalar c_L = std::sqrt(gamma_L * p_L / (rho_L + small));
115 Set::Scalar c_R = std::sqrt(gamma_R * p_R / (rho_R + small));
126 Set::Scalar Mach = std::abs(u_RL) / (a_RL + small);
155 State dState = hi - lo;
157 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)