1#ifndef MODEL_GAS_EOS_CPG_H_
2#define MODEL_GAS_EOS_CPG_H_
16 static constexpr const char*
name =
"cpg";
22 template<
typename GAS>
23 AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE
24 double ComputeT(
const GAS &gas,
double density,
double momentumx,
double momentumy,
double E,
double Tguess,
27 double P = (E - 0.5*(momentumx*momentumx + momentumy*momentumy)/density) * (gas.gamma(Tguess,
X, i, j, k) - 1.0);
28 double T = P / density / gas.R(
X, i, j, k);
32 AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE
33 double ComputeT(
double pressure,
double density,
36 return pressure / density / R;
39 AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE
43 return density * R * T;
46 AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE
47 double ComputeE(
double density,
double momentumx,
double momentumy,
double T,
48 double R,
double gamma)
const
50 double P = density * R * T;
51 double rhoE = P / (gamma - 1.0);
52 double E = rhoE + 0.5*(momentumx*momentumx + momentumy*momentumy)/density;
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE double ComputeP(double density, double T, double R) const
static void Parse(CPG &, IO::ParmParse &)
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE double ComputeE(double density, double momentumx, double momentumy, double T, double R, double gamma) const
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE double ComputeT(double pressure, double density, double R) const
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE double ComputeT(const GAS &gas, double density, double momentumx, double momentumy, double E, double Tguess, Set::Patch< const Set::Scalar > &X, int i, int j, int k, double) const
static constexpr const char * name
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector