https://mooseframework.inl.gov
IdealGasFluidProperties.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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  using SinglePhaseFluidProperties::cp_from_p_T;
31  using SinglePhaseFluidProperties::cv_from_p_T;
32  using SinglePhaseFluidProperties::e_from_p_T;
33  using SinglePhaseFluidProperties::k_from_p_T;
34  using SinglePhaseFluidProperties::mu_from_p_T;
35  using SinglePhaseFluidProperties::s_from_p_T;
36 
37  virtual Real p_from_v_e(Real v, Real e) const override;
38  virtual ADReal p_from_v_e(const ADReal & v, const ADReal & e) const override;
39  virtual void p_from_v_e(Real v, Real e, Real & p, Real & dp_dv, Real & dp_de) const override;
40  virtual void p_from_v_e(const ADReal & v,
41  const ADReal & e,
42  ADReal & p,
43  ADReal & dp_dv,
44  ADReal & dp_de) const override;
45  virtual Real T_from_v_e(Real v, Real e) const override;
46  virtual ADReal T_from_v_e(const ADReal & v, const ADReal & e) const override;
47  virtual void T_from_v_e(Real v, Real e, Real & T, Real & dT_dv, Real & dT_de) const override;
48  virtual void T_from_v_e(const ADReal & v,
49  const ADReal & e,
50  ADReal & T,
51  ADReal & dT_dv,
52  ADReal & dT_de) const override;
53  virtual Real c_from_v_e(Real v, Real e) const override;
54  virtual ADReal c_from_v_e(const ADReal & v, const ADReal & e) const override;
55  virtual void c_from_v_e(Real v, Real e, Real & c, Real & dc_dv, Real & dc_de) const override;
56  virtual Real cp_from_v_e(Real v, Real e) const override;
57  virtual void cp_from_v_e(Real v, Real e, Real & cp, Real & dcp_dv, Real & dcp_de) const override;
58  virtual Real cv_from_v_e(Real v, Real e) const override;
59  virtual void cv_from_v_e(Real v, Real e, Real & cv, Real & dcv_dv, Real & dcv_de) const override;
60  virtual Real mu_from_v_e(Real v, Real e) const override;
61  virtual void mu_from_v_e(Real v, Real e, Real & mu, Real & dmu_dv, Real & dmu_de) const override;
62  virtual Real k_from_v_e(Real v, Real e) const override;
63  virtual void k_from_v_e(Real v, Real e, Real & k, Real & dk_dv, Real & dk_de) const override;
64  virtual Real s_from_v_e(Real v, Real e) const override;
65  virtual void s_from_v_e(Real v, Real e, Real & s, Real & ds_dv, Real & ds_de) const override;
66  virtual Real s_from_p_T(Real p, Real T) const override;
67  virtual void s_from_p_T(Real p, Real T, Real & s, Real & ds_dp, Real & ds_dT) const override;
68  virtual Real s_from_h_p(Real h, Real p) const override;
69  virtual void s_from_h_p(Real h, Real p, Real & s, Real & ds_dh, Real & ds_dp) const override;
70  virtual Real rho_from_p_s(Real p, Real s) const override;
71  virtual void
72  rho_from_p_s(Real p, Real s, Real & rho, Real & drho_dp, Real & drho_ds) const override;
73  virtual Real e_from_v_h(Real v, Real h) const override;
74  virtual void e_from_v_h(Real v, Real h, Real & e, Real & de_dv, Real & de_dh) const override;
75  virtual Real rho_from_p_T(Real p, Real T) const override;
76  virtual ADReal rho_from_p_T(const ADReal & p, const ADReal & T) const override;
77  virtual void
78  rho_from_p_T(Real p, Real T, Real & rho, Real & drho_dp, Real & drho_dT) const override;
79  virtual void rho_from_p_T(const ADReal & p,
80  const ADReal & T,
81  ADReal & rho,
82  ADReal & drho_dp,
83  ADReal & drho_dT) const override;
84  virtual Real e_from_p_rho(Real p, Real rho) const override;
85  virtual ADReal e_from_p_rho(const ADReal & p, const ADReal & rho) const override;
86  virtual void
87  e_from_p_rho(Real p, Real rho, Real & e, Real & de_dp, Real & de_drho) const override;
88  virtual void e_from_p_rho(const ADReal & p,
89  const ADReal & rho,
90  ADReal & e,
91  ADReal & de_dp,
92  ADReal & de_drho) const override;
93  virtual Real e_from_T_v(Real T, Real v) const override;
94  virtual void e_from_T_v(Real T, Real v, Real & e, Real & de_dT, Real & de_dv) const override;
95  virtual ADReal e_from_T_v(const ADReal & T, const ADReal & v) const override;
96  virtual void e_from_T_v(const ADReal & T,
97  const ADReal & v,
98  ADReal & e,
99  ADReal & de_dT,
100  ADReal & de_dv) const override;
101  virtual Real p_from_T_v(Real T, Real v) const override;
102  virtual void p_from_T_v(Real T, Real v, Real & p, Real & dp_dT, Real & dp_dv) const override;
103  virtual Real h_from_T_v(Real T, Real v) const override;
104  virtual void h_from_T_v(Real T, Real v, Real & h, Real & dh_dT, Real & dh_dv) const override;
105  virtual Real s_from_T_v(Real T, Real v) const override;
106  virtual void s_from_T_v(Real T, Real v, Real & s, Real & ds_dT, Real & ds_dv) const override;
107  virtual Real cv_from_T_v(Real T, Real v) const override;
108  virtual Real e_spndl_from_v(Real v) const override;
109  virtual void v_e_spndl_from_T(Real T, Real & v, Real & e) const override;
110  virtual Real h_from_p_T(Real p, Real T) const override;
111  virtual void h_from_p_T(Real p, Real T, Real & h, Real & dh_dp, Real & dh_dT) const override;
112  virtual Real e_from_p_T(Real p, Real T) const override;
113  virtual void e_from_p_T(Real p, Real T, Real & e, Real & de_dp, Real & de_dT) const override;
114  virtual Real p_from_h_s(Real h, Real s) const override;
115  virtual void p_from_h_s(Real h, Real s, Real & p, Real & dp_dh, Real & dp_ds) const override;
116  virtual Real g_from_v_e(Real v, Real e) const override;
117  virtual Real T_from_p_h(Real p, Real h) const override;
118  virtual void T_from_p_h(Real p, Real h, Real & T, Real & dT_dp, Real & dT_dh) const override;
119  virtual Real cv_from_p_T(Real p, Real T) const override;
120  virtual void cv_from_p_T(Real p, Real T, Real & cv, Real & dcv_dp, Real & dcv_dT) const override;
121  virtual Real cp_from_p_T(Real p, Real T) const override;
122  virtual void cp_from_p_T(Real p, Real T, Real & cp, Real & dcp_dp, Real & dcp_dT) const override;
123  virtual Real mu_from_p_T(Real p, Real T) const override;
124  virtual void mu_from_p_T(Real p, Real T, Real & mu, Real & dmu_dp, Real & dmu_dT) const override;
125  virtual Real k_from_p_T(Real pressure, Real temperature) const override;
126  virtual void
127  k_from_p_T(Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const override;
128  virtual std::string fluidName() const override;
129  virtual Real molarMass() const override;
130  virtual Real criticalTemperature() const override;
131  virtual Real criticalDensity() const override;
132  virtual Real criticalInternalEnergy() const override;
133  virtual Real gamma_from_v_e(Real v, Real e) const override;
134  virtual Real gamma_from_p_T(Real p, Real T) const override;
135  virtual Real c_from_p_T(Real p, Real T) const override;
136  virtual ADReal c_from_p_T(const ADReal & p, const ADReal & T) const override;
137  virtual void c_from_p_T(Real /*p*/, Real T, Real & c, Real & dc_dp, Real & dc_dT) const override;
138  virtual Real beta_from_p_T(Real p, Real T) const override;
139  virtual ADReal beta_from_p_T(const ADReal & p, const ADReal & T) const override;
140  virtual void
141  beta_from_p_T(Real p, Real T, Real & beta, Real & dbeta_dp, Real & dbeta_dT) const override;
142 
143  virtual Real pp_sat_from_p_T(Real /*p*/, Real /*T*/) const override;
144 
146 
147  // Methods used by Navier-Stokes module
148  virtual Real gamma() const { return _gamma; };
149  virtual Real cv() const { return _cv; };
150  virtual Real cp() const { return _cp; };
151 
152 protected:
154  const Real & _gamma;
156  const Real & _molar_mass;
158  const Real & _e_ref;
159 
163  const Real _cp;
165  const Real _cv;
166 
168  const Real _mu;
170  const Real _k;
171 
172  // properties at critical point (used by IdealRealGasMixtureFluidProperties (primary component))
176 };
177 
178 #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)
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:59
virtual Real pp_sat_from_p_T(Real, Real) const override
virtual Real molarMass() const override
Molar mass [kg/mol].
virtual Real e_from_T_v(Real T, Real v) const override
DualNumber< Real, DNDerivativeType, true > ADReal
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
e e e e s T T T T T rho v v T e h
virtual Real s_from_h_p(Real h, Real p) const override
static const std::string mu
Definition: NS.h:123
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
static InputParameters validParams()
virtual std::string fluidName() const override
Fluid name.
virtual Real beta_from_p_T(Real p, Real T) 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:130
virtual Real s_from_p_T(Real p, Real T) const override
const Real _mu
Dynamic viscosity.
const Real & _e_ref
Reference specific internal energy.