Line data Source code
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 :
10 : namespace Model {
11 : namespace Gas {
12 : namespace EOS {
13 :
14 : class EOS {
15 : protected:
16 :
17 : public:
18 8 : EOS() {} ;
19 8 : 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
|