Alamo
EOS.H
Go to the documentation of this file.
1#ifndef MODEL_GAS_EOS_H_
2#define MODEL_GAS_EOS_H_
3
4#include <vector>
5#include <memory>
6#include <cmath>
7
8#include "Set/Set.H"
9
10namespace Model {
11namespace Gas {
12namespace EOS {
13
14class EOS {
15protected:
16
17public:
18 EOS() {} ;
19 virtual ~EOS() = default;
20 virtual const char* model_name() const = 0;
21
22 // Temperature, K
23 virtual double ComputeT(
24 double density, double momentumx, double momentumy, double E, double Tguess,
25 Set::Patch<const Set::Scalar>& X, int i, int j, int k, double rtol) const = 0;
26 virtual double ComputeT(
27 double pressure, double density,
28 Set::Patch<const Set::Scalar>& X, int i, int j, int k) const = 0;
29 // Pressure, Pa
30 virtual double ComputeP(
31 double density, double T,
32 Set::Patch<const Set::Scalar>& X, int i, int j, int k) const = 0;
33 // Energy, J/m^3
34 virtual double ComputeE(
35 double density, double momentumx, double momentumy, double T,
36 Set::Patch<const Set::Scalar>& X, int i, int j, int k) const = 0;
37
38}; // class EOS
39
40} // namespace EOS
41} // namespace Gas
42} // namespace Model
43
44#endif
#define X(name)
virtual double ComputeE(double density, double momentumx, double momentumy, double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const =0
virtual double ComputeT(double pressure, double density, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const =0
virtual double ComputeP(double density, double T, Set::Patch< const Set::Scalar > &X, int i, int j, int k) const =0
virtual const char * model_name() const =0
virtual 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) const =0
virtual ~EOS()=default
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
Definition Base.H:19