Alamo
Gas.cpp
Go to the documentation of this file.
1#include <vector>
2#include <cmath>
3#include <memory>
4#include "Util/Util.H"
5#include "Set/Base.H"
6#include "Set/Set.H"
7#include "Model/Gas/Gas.H"
10#include "Model/Gas/EOS/EOS.H"
11
12namespace Model {
13namespace Gas {
14
15// Methods that need to be defined by inherited class
16
17// Thermodynamic quantities
18double Gas::cp_mol(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const {
19 // Specific heat (constant pressure), J/(kmol-K)
20 return thermo.cp_mol(T, X, i , j, k);
21}
22double Gas::enthalpy_mol(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const {
23 // Specific enthalpy, J/kmol)
24 return thermo.enthalpy_mol(T, X, i , j, k);
25}
26double Gas::entropy_mol(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const {
27 // specific entropy, J/(kmol-K)
28 return thermo.entropy_mol(T, X, i , j, k);
29}
30
31// Transport quantities
32double Gas::dynamic_viscosity(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const {
33 // Dynamic viscosity, Pa-s
34 return transport.dynamic_viscosity(T, X, i , j, k);
35}
36double Gas::thermal_conductivity(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const {
37 // Thermal conductivity coefficient, W/(m-K)
38 return transport.thermal_conductivity(T, X, i , j, k);
39}
40void Gas::diffusion_coeffs(Set::Patch<Set::Scalar>& DKM, double T, double P, Set::Patch<const Set::Scalar>& X, int i, int j, int k) {
41 // Species diffusion coefficients, m^2/s
42 return transport.diffusion_coeffs(DKM, T, P, X, i , j, k);
43}
44
45// EOS
47 double density, double momentumx, double momentumy, double E, double Tguess,
48 Set::Patch<const Set::Scalar>& X, int i, int j, int k, double rtol) const
49{
50 // Temperature, K
51 return eos.ComputeT(*this, density, momentumx, momentumy, E, Tguess, X, i, j, k, rtol);
52}
54 double pressure, double density,
55 Set::Patch<const Set::Scalar>& X, int i, int j, int k) const
56{
57 // Temperature, K
58 return eos.ComputeT(pressure, density, R(X,i,j,k));
59}
60double Gas::ComputeP(double density, double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const
61{
62 // Pressure, Pa
63 return eos.ComputeP(density, T, R(X,i,j,k));
64}
66 double density, double momentumx, double momentumy, double T,
67 Set::Patch<const Set::Scalar>& X, int i, int j, int k) const
68{
69 // Energy, J/m^3
70 return eos.ComputeE(density, momentumx, momentumy, T, R(X,i,j,k), gamma(T,X,i,j,k));
71}
72
73} // namespace Gas
74} // namespace Model
#define X(name)
Thermo::Thermo< Thermo::CpConstant > thermo
Definition Gas.H:24
double R(Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.H:111
double ComputeP(double density, double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.cpp:60
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
Definition Gas.cpp:46
double gamma(double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.H:127
double entropy_mol(double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.cpp:26
void diffusion_coeffs(Set::Patch< Set::Scalar > &DKM, double T, double P, Set::Patch< const Set::Scalar > &X, int i, int j, int k)
Definition Gas.cpp:40
double dynamic_viscosity(double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.cpp:32
double thermal_conductivity(double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.cpp:36
double cp_mol(double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.cpp:18
Transport::Transport< Transport::Mixture_Averaged > transport
Definition Gas.H:25
EOS::EOS< EOS::CPG > eos
Definition Gas.H:26
double ComputeE(double density, double momentumx, double momentumy, double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.cpp:65
double enthalpy_mol(double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const
Definition Gas.cpp:22
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
Definition Base.H:21