Alamo
CPG.cpp
Go to the documentation of this file.
1#include "Model/Gas/Gas.H"
2#include "Model/Gas/EOS/CPG.H"
3
4namespace Model {
5namespace Gas {
6namespace EOS {
7
8double CPG::ComputeT(double density, double momentumx, double momentumy, double E, double Tguess,
9 Set::Patch<const Set::Scalar>& X, int i, int j, int k, double /*rtol=1e-12*/) const {
10 // Temperature, K
11 // Since gamma is not a function of temperature, but is a function of composition, we can
12 // compute gamma at any dummy temperature
13 double P = (E - 0.5*(momentumx*momentumx + momentumy*momentumy)/density) * (gas->gamma(Tguess, X, i, j, k) - 1.0);
14 double T = P / density / gas->R(X, i, j, k);
15 return T;
16}
17double CPG::ComputeT(double pressure, double density,
18 Set::Patch<const Set::Scalar>& X, int i, int j, int k) const {
19 // Temperature, K
20 double T = pressure / density / gas->R(X, i, j, k);
21 return T;
22}
23double CPG::ComputeP(double density, double T,
24 Set::Patch<const Set::Scalar>& X, int i, int j, int k) const {
25 // Pressure, Pa
26 double P = density * gas->R(X, i, j, k) * T;
27 return P;
28}
29double CPG::ComputeE(double density, double momentumx, double momentumy, double T,
30 Set::Patch<const Set::Scalar>& X, int i, int j, int k) const {
31 // Energy, J/m^3
32 double P = density * gas->R(X, i, j, k) * T;
33 double rhoE = P / (gas->gamma(T, X, i, j, k) - 1.0);
34 double E = rhoE + 0.5*(momentumx*momentumx + momentumy*momentumy)/density;
35 return E;
36}
37
38} // namespace EOS
39} // namespace Gas
40} // namespace Model
#define X(name)
double ComputeP(double density, double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const override
Definition CPG.cpp:23
Gas const *const gas
Definition CPG.H:20
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) const override
Definition CPG.cpp:8
double ComputeE(double density, double momentumx, double momentumy, double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const override
Definition CPG.cpp:29
double R(Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.H:113
double gamma(double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.H:129
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
Definition Base.H:19