www.mooseframework.org
IdealGasFluidProperties.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 #include "NaNInterface.h"
14 
15 #pragma GCC diagnostic push
16 #pragma GCC diagnostic ignored "-Woverloaded-virtual"
17 
23 {
24 public:
26 
28  virtual ~IdealGasFluidProperties();
29 
30  virtual Real p_from_v_e(Real v, Real e) const override;
31  virtual ADReal p_from_v_e(const ADReal & v, const ADReal & e) const override;
32  virtual void p_from_v_e(Real v, Real e, Real & p, Real & dp_dv, Real & dp_de) const override;
33  virtual void p_from_v_e(const DualReal & v,
34  const DualReal & e,
35  DualReal & p,
36  DualReal & dp_dv,
37  DualReal & dp_de) const override;
38  virtual Real T_from_v_e(Real v, Real e) const override;
39  virtual ADReal T_from_v_e(const ADReal & v, const ADReal & e) const override;
40  virtual void T_from_v_e(Real v, Real e, Real & T, Real & dT_dv, Real & dT_de) const override;
41  virtual void T_from_v_e(const DualReal & v,
42  const DualReal & e,
43  DualReal & T,
44  DualReal & dT_dv,
45  DualReal & dT_de) const override;
46  virtual Real c_from_v_e(Real v, Real e) const override;
47  virtual ADReal c_from_v_e(const ADReal & v, const ADReal & e) const override;
48  virtual void c_from_v_e(Real v, Real e, Real & c, Real & dc_dv, Real & dc_de) const override;
49  virtual Real cp_from_v_e(Real v, Real e) const override;
50  virtual void cp_from_v_e(Real v, Real e, Real & cp, Real & dcp_dv, Real & dcp_de) const override;
51  virtual Real cv_from_v_e(Real v, Real e) const override;
52  virtual void cv_from_v_e(Real v, Real e, Real & cv, Real & dcv_dv, Real & dcv_de) const override;
53  virtual Real mu_from_v_e(Real v, Real e) const override;
54  virtual void mu_from_v_e(Real v, Real e, Real & mu, Real & dmu_dv, Real & dmu_de) const override;
55  virtual Real k_from_v_e(Real v, Real e) const override;
56  virtual void k_from_v_e(Real v, Real e, Real & k, Real & dk_dv, Real & dk_de) const override;
57  virtual Real s_from_v_e(Real v, Real e) const override;
58  virtual void s_from_v_e(Real v, Real e, Real & s, Real & ds_dv, Real & ds_de) const override;
59  virtual Real s_from_p_T(Real p, Real T) const override;
60  virtual void s_from_p_T(Real p, Real T, Real & s, Real & ds_dp, Real & ds_dT) const override;
61  virtual Real s_from_h_p(Real h, Real p) const override;
62  virtual void s_from_h_p(Real h, Real p, Real & s, Real & ds_dh, Real & ds_dp) const override;
63  virtual Real rho_from_p_s(Real p, Real s) const override;
64  virtual void
65  rho_from_p_s(Real p, Real s, Real & rho, Real & drho_dp, Real & drho_ds) const override;
66  virtual Real e_from_v_h(Real v, Real h) const override;
67  virtual void e_from_v_h(Real v, Real h, Real & e, Real & de_dv, Real & de_dh) const override;
68  virtual Real rho_from_p_T(Real p, Real T) const override;
69  virtual ADReal rho_from_p_T(const ADReal & p, const ADReal & T) const override;
70  virtual void
71  rho_from_p_T(Real p, Real T, Real & rho, Real & drho_dp, Real & drho_dT) const override;
72  virtual void rho_from_p_T(const DualReal & p,
73  const DualReal & T,
74  DualReal & rho,
75  DualReal & drho_dp,
76  DualReal & drho_dT) const override;
77  virtual Real e_from_p_rho(Real p, Real rho) const override;
78  virtual ADReal e_from_p_rho(const ADReal & p, const ADReal & rho) const override;
79  virtual void
80  e_from_p_rho(Real p, Real rho, Real & e, Real & de_dp, Real & de_drho) const override;
81  virtual void e_from_p_rho(const ADReal & p,
82  const ADReal & rho,
83  ADReal & e,
84  ADReal & de_dp,
85  ADReal & de_drho) const override;
86  virtual Real e_from_T_v(Real T, Real v) const override;
87  virtual void e_from_T_v(Real T, Real v, Real & e, Real & de_dT, Real & de_dv) const override;
88  virtual ADReal e_from_T_v(const ADReal & T, const ADReal & v) const override;
89  virtual void e_from_T_v(const ADReal & T,
90  const ADReal & v,
91  ADReal & e,
92  ADReal & de_dT,
93  ADReal & de_dv) const override;
94  virtual Real p_from_T_v(Real T, Real v) const override;
95  virtual void p_from_T_v(Real T, Real v, Real & p, Real & dp_dT, Real & dp_dv) const override;
96  virtual Real h_from_T_v(Real T, Real v) const override;
97  virtual void h_from_T_v(Real T, Real v, Real & h, Real & dh_dT, Real & dh_dv) const override;
98  virtual Real s_from_T_v(Real T, Real v) const override;
99  virtual void s_from_T_v(Real T, Real v, Real & s, Real & ds_dT, Real & ds_dv) const override;
100  virtual Real cv_from_T_v(Real T, Real v) const override;
101  virtual Real e_spndl_from_v(Real v) const override;
102  virtual void v_e_spndl_from_T(Real T, Real & v, Real & e) const override;
103  virtual Real h_from_p_T(Real p, Real T) const override;
104  virtual void h_from_p_T(Real p, Real T, Real & h, Real & dh_dp, Real & dh_dT) const override;
105  virtual Real e_from_p_T(Real p, Real T) const override;
106  virtual void e_from_p_T(Real p, Real T, Real & e, Real & de_dp, Real & de_dT) const override;
107  virtual Real p_from_h_s(Real h, Real s) const override;
108  virtual void p_from_h_s(Real h, Real s, Real & p, Real & dp_dh, Real & dp_ds) const override;
109  virtual Real g_from_v_e(Real v, Real e) const override;
110  virtual Real T_from_p_h(Real p, Real h) const override;
111  virtual void T_from_p_h(Real p, Real h, Real & T, Real & dT_dp, Real & dT_dh) const override;
112  virtual Real cv_from_p_T(Real p, Real T) const override;
113  virtual void cv_from_p_T(Real p, Real T, Real & cv, Real & dcv_dp, Real & dcv_dT) const override;
114  virtual Real cp_from_p_T(Real p, Real T) const override;
115  virtual void cp_from_p_T(Real p, Real T, Real & cp, Real & dcp_dp, Real & dcp_dT) const override;
116  virtual Real mu_from_p_T(Real p, Real T) const override;
117  virtual void mu_from_p_T(Real p, Real T, Real & mu, Real & dmu_dp, Real & dmu_dT) const override;
118  virtual Real k_from_p_T(Real pressure, Real temperature) const override;
119  virtual void
120  k_from_p_T(Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const override;
121  virtual std::string fluidName() const override;
122  virtual Real molarMass() const override;
123  virtual Real criticalTemperature() const override;
124  virtual Real criticalDensity() const override;
125  virtual Real criticalInternalEnergy() const override;
126  virtual Real gamma_from_v_e(Real v, Real e) const override;
127  virtual Real gamma_from_p_T(Real p, Real T) const override;
128  virtual Real c_from_p_T(Real p, Real T) const override;
129  virtual ADReal c_from_p_T(const ADReal & p, const ADReal & T) const override;
130  virtual void c_from_p_T(Real /*p*/, Real T, Real & c, Real & dc_dp, Real & dc_dT) const override;
131 
132  virtual Real pp_sat_from_p_T(Real /*p*/, Real /*T*/) const override;
133 
134  // Methods used by Navier-Stokes module
135  virtual Real gamma() const { return _gamma; };
136  virtual Real cv() const { return _cv; };
137  virtual Real cp() const { return _cp; };
138 
139 protected:
141  const Real & _gamma;
143  const Real & _molar_mass;
144 
148  const Real _cp;
150  const Real _cv;
151 
153  const Real _mu;
155  const Real _k;
156 
157  // properties at critical point (used by IdealRealGasMixtureFluidProperties (primary component))
161 };
162 
163 #pragma GCC diagnostic pop
virtual Real criticalInternalEnergy() const override
Critical specific internal energy.
virtual Real cv_from_p_T(Real p, Real T) const override
const Real _cv
Specific heat at constant volume.
virtual Real rho_from_p_T(Real p, Real T) const override
virtual Real criticalTemperature() const override
Critical temperature.
const Real _k
Thermal conductivity.
virtual Real cv_from_v_e(Real v, Real e) const override
const Real & _gamma
Adiabatic index (ratio of specific heats cp/cv)
DualNumber< Real, DNDerivativeType, true > DualReal
virtual Real criticalDensity() const override
Critical density.
virtual Real e_from_v_h(Real v, Real h) const override
virtual Real p_from_v_e(Real v, Real e) const override
virtual Real mu_from_v_e(Real v, Real e) const override
virtual Real k_from_p_T(Real pressure, Real temperature) const override
virtual Real T_from_v_e(Real v, Real e) const override
virtual Real k_from_v_e(Real v, Real e) const override
static const std::string temperature
Definition: NS.h:57
virtual Real pp_sat_from_p_T(Real, Real) const override
virtual Real molarMass() const override
Fluid name.
virtual Real e_from_T_v(Real T, Real v) const override
virtual Real h_from_T_v(Real T, Real v) const override
virtual Real rho_from_p_s(Real p, Real s) const override
IdealGasFluidProperties(const InputParameters &parameters)
virtual Real s_from_T_v(Real T, Real v) const override
virtual Real e_from_p_rho(Real p, Real rho) const override
virtual Real s_from_h_p(Real h, Real p) const override
static const std::string mu
Definition: NS.h:122
virtual Real p_from_T_v(Real T, Real v) const override
virtual Real gamma_from_v_e(Real v, Real e) const override
virtual Real c_from_p_T(Real p, Real T) const override
const Real & _molar_mass
molar mass
Common class for single phase fluid properties.
virtual Real T_from_p_h(Real p, Real h) const override
DualReal ADReal
e e e e s T T T T T rho v v T h
static InputParameters validParams()
virtual std::string fluidName() const override
virtual Real g_from_v_e(Real v, Real e) const override
const Real _cp
Specific heat at constant pressure.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real mu_from_p_T(Real p, Real T) const override
virtual Real e_from_p_T(Real p, Real T) const override
const Real _R_specific
Specific gas constant (R / molar mass)
static const std::string pressure
Definition: NS.h:56
virtual Real p_from_h_s(Real h, Real s) const override
virtual Real cp_from_v_e(Real v, Real e) const override
virtual Real cp_from_p_T(Real p, Real T) const override
virtual Real c_from_v_e(Real v, Real e) const override
const InputParameters & parameters() const
virtual Real s_from_v_e(Real v, Real e) const override
virtual Real h_from_p_T(Real p, Real T) const override
virtual Real e_spndl_from_v(Real v) const override
Specific internal energy from temperature and specific volume.
virtual Real cv_from_T_v(Real T, Real v) const override
Ideal gas fluid properties Default parameters are for air at atmospheric pressure and temperature...
Interface class for producing errors, warnings, or just quiet NaNs.
Definition: NaNInterface.h:22
virtual void v_e_spndl_from_T(Real T, Real &v, Real &e) const override
Specific internal energy from temperature and specific volume.
virtual Real gamma_from_p_T(Real p, Real T) const override
static const std::string k
Definition: NS.h:124
virtual Real s_from_p_T(Real p, Real T) const override
const Real _mu
Dynamic viscosity.