Line data Source code
1 : #ifndef MODEL_GAS_THERMO_H_
2 : #define MODEL_GAS_THERMO_H_
3 :
4 : #include <vector>
5 : #include <memory>
6 : #include "Set/Set.H"
7 : #include <cmath>
8 :
9 : namespace Model {
10 : namespace Gas {
11 : namespace Thermo {
12 :
13 : class Thermo {
14 : protected:
15 :
16 : public:
17 8 : Thermo() {} ;
18 8 : virtual ~Thermo() = default;
19 : virtual const char* model_name() const = 0;
20 :
21 : // Specific heat (constant pressure), J/(kmol-K)
22 : virtual double cp_mol(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const = 0;
23 : // Specific enthalpy, J/kmol)
24 : virtual double enthalpy_mol(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const = 0;
25 : // specific entropy, J/(kmol-K)
26 : virtual double entropy_mol(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const = 0;
27 :
28 : }; // class Thermo
29 :
30 : } // namespace Thermo
31 : } // namespace Gas
32 : } // namespace Model
33 :
34 : #endif
|