www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
HydrogenFluidProperties Class Reference

Hydrogen (H2) fluid properties as a function of pressure (Pa) and temperature (K). More...

#include <HydrogenFluidProperties.h>

Inheritance diagram for HydrogenFluidProperties:
[legend]

Public Member Functions

 HydrogenFluidProperties (const InputParameters &parameters)
 
virtual std::string fluidName () const override
 Fluid name. More...
 
virtual Real molarMass () const override
 Molar mass [kg/mol]. More...
 
virtual Real mu_from_rho_T (Real density, Real temperature) const override
 Dynamic viscosity as a function of density and temperature. More...
 
virtual void mu_from_rho_T (Real density, Real temperature, Real ddensity_dT, Real &mu, Real &dmu_drho, Real &dmu_dT) const override
 Dynamic viscosity and its derivatives wrt density and temperature. More...
 
virtual Real mu_from_p_T (Real pressure, Real temperature) const override
 
virtual void mu_from_p_T (Real pressure, Real temperature, Real &mu, Real &dmu_dp, Real &dmu_dT) const override
 
virtual void rho_mu_from_p_T (Real pressure, Real temperature, Real &rho, Real &mu) const override
 
virtual void rho_mu_from_p_T (Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT, Real &mu, Real &dmu_dp, Real &dmu_dT) const override
 Density and viscosity and their derivatives wrt pressure and temperature. More...
 
virtual Real k_from_rho_T (Real density, Real temperature) const override
 Thermal conductivity as a function of density and temperature. More...
 
virtual Real k_from_p_T (Real pressure, Real temperature) const override
 Thermal conductivity. More...
 
virtual void k_from_p_T (Real pressure, Real temperature, Real &k, Real &dk_dp, Real &dk_dT) const override
 Thermal conductivity and its derivatives wrt pressure and temperature. More...
 
virtual Real henryConstant (Real temperature) const override
 Henry's law constant for dissolution in water. More...
 
virtual void henryConstant (Real temperature, Real &Kh, Real &dKh_dT) const override
 Henry's law constant for dissolution in water and derivative wrt temperature. More...
 
virtual Real criticalPressure () const override
 Critical pressure. More...
 
virtual Real criticalTemperature () const override
 Critical temperature. More...
 
virtual Real criticalDensity () const override
 Critical density. More...
 
virtual Real triplePointPressure () const override
 Triple point pressure. More...
 
virtual Real triplePointTemperature () const override
 Triple point temperature. More...
 
virtual Real vaporPressure (Real temperature) const override
 Vapor pressure. More...
 
virtual void vaporPressure (Real temperature, Real &psat, Real &dpsat_dT) const override
 Vapor pressure. More...
 
virtual Real rho_from_p_T (Real pressure, Real temperature) const override
 Density from pressure and temperature. More...
 
virtual void rho_from_p_T (Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT) const override
 Density and its derivatives from pressure and temperature. More...
 
virtual Real e_from_p_T (Real pressure, Real temperature) const override
 Internal energy from pressure and temperature. More...
 
virtual void e_from_p_T (Real p, Real T, Real &e, Real &de_dp, Real &de_dT) const override
 Internal energy and its derivatives from pressure and temperature. More...
 
virtual Real c_from_p_T (Real pressure, Real temperature) const override
 Speed of sound. More...
 
virtual Real cp_from_p_T (Real pressure, Real temperature) const override
 Isobaric specific heat capacity. More...
 
virtual Real cp_from_p_T (Real pressure, Real temperature) const
 Isobaric specific heat capacity. More...
 
virtual void cp_from_p_T (Real pressure, Real temperature, Real &cp, Real &dcp_dp, Real &dcp_dT) const
 Isobaric specific heat capacity from pressure and temperature. More...
 
virtual void cp_from_p_T (Real pressure, Real temperature, Real &cp, Real &dcp_dp, Real &dcp_dT) const
 Isobaric specific heat capacity from pressure and temperature. More...
 
virtual Real cv_from_p_T (Real pressure, Real temperature) const override
 Isochoric specific heat. More...
 
virtual Real s_from_p_T (Real pressure, Real temperature) const override
 Specific entropy from pressure and temperature. More...
 
virtual void s_from_p_T (Real p, Real T, Real &s, Real &ds_dp, Real &ds_dT) const override
 Specific entropy and its derivatives from pressure and temperature. More...
 
virtual Real h_from_p_T (Real pressure, Real temperature) const override
 Specific enthalpy from pressure and temperature. More...
 
virtual void h_from_p_T (Real p, Real T, Real &h, Real &dh_dp, Real &dh_dT) const override
 Specific enthalpy and its derivatives from pressure and temperature. More...
 
virtual Real p_from_rho_T (Real rho, Real T) const
 Pressure as a function of density and temperature. More...
 
virtual Real p_from_v_e (Real v, Real e) const
 Pressure from specific volume and specific internal energy. More...
 
virtual void p_from_v_e (Real v, Real e, Real &p, Real &dp_dv, Real &dp_de) const
 Pressure and its derivatives from specific volume and specific internal energy. More...
 
virtual Real T_from_v_e (Real v, Real e) const
 Temperature from specific volume and specific internal energy. More...
 
virtual void T_from_v_e (Real v, Real e, Real &T, Real &dT_dv, Real &dT_de) const
 Temperature and its derivatives from specific volume and specific internal energy. More...
 
virtual Real c_from_v_e (Real v, Real e) const
 Sound speed from specific volume and specific internal energy. More...
 
virtual void c_from_v_e (Real v, Real e, Real &c, Real &dc_dv, Real &dc_de) const
 Sound speed and its derivatives from specific volume and specific internal energy. More...
 
virtual Real cp_from_v_e (Real v, Real e) const
 Isobaric (constant-pressure) specific heat from specific volume and specific internal energy. More...
 
virtual void cp_from_v_e (Real v, Real e, Real &cp, Real &dcp_dv, Real &dcp_de) const
 Isobaric (constant pressure) specific heat from specific volume and specific internal energy. More...
 
virtual Real cv_from_v_e (Real v, Real e) const
 Isochoric (constant-volume) specific heat from specific volume and specific internal energy. More...
 
virtual Real mu_from_v_e (Real v, Real e) const
 Dynamic viscosity from specific volume and specific internal energy. More...
 
virtual Real k_from_v_e (Real v, Real e) const
 Thermal conductivity from specific volume and specific internal energy. More...
 
virtual Real s_from_v_e (Real v, Real e) const
 Specific entropy from specific volume and specific internal energy. More...
 
virtual void s_from_v_e (Real v, Real e, Real &s, Real &ds_dv, Real &ds_de) const
 Specific entropy and its derivatives from specific volume and specific internal energy. More...
 
virtual Real s (Real pressure, Real temperature) const
 
virtual Real s_from_h_p (Real h, Real p) const
 Specific entropy from specific enthalpy and pressure. More...
 
virtual void s_from_h_p (Real h, Real p, Real &s, Real &ds_dh, Real &ds_dp) const
 Specific entropy and its derivatives from specific enthalpy and pressure. More...
 
virtual Real rho_from_p_s (Real p, Real s) const
 Density from pressure and specific entropy. More...
 
virtual void rho_from_p_s (Real p, Real s, Real &rho, Real &drho_dp, Real &drho_ds) const
 Density and its derivatives from pressure and specific entropy. More...
 
virtual Real e_from_v_h (Real v, Real h) const
 Specific internal energy as a function of specific volume and specific enthalpy. More...
 
virtual void e_from_v_h (Real v, Real h, Real &e, Real &de_dv, Real &de_dh) const
 Specific internal energy and derivatives as a function of specific volume and specific enthalpy. More...
 
virtual Real rho (Real p, Real T) const
 
virtual void rho_dpT (Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT) const
 
virtual Real v_from_p_T (Real p, Real T) const
 Specific volume from pressure and temperature. More...
 
virtual void v_from_p_T (Real p, Real T, Real &v, Real &dv_dp, Real &dv_dT) const
 Specific volume and its derivatives from pressure and temperature. More...
 
virtual Real e_from_p_rho (Real p, Real rho) const
 Specific internal energy from pressure and density. More...
 
virtual void e_from_p_rho (Real p, Real rho, Real &e, Real &de_dp, Real &de_drho) const
 Specific internal energy and its derivatives from pressure and density. More...
 
virtual Real e_spndl_from_v (Real v) const
 Specific internal energy from temperature and specific volume. More...
 
virtual void v_e_spndl_from_T (Real T, Real &v, Real &e) const
 Specific internal energy from temperature and specific volume. More...
 
virtual Real e_from_T_v (Real T, Real v) const
 Specific volume and specific internal energy from temerature at the vapor spinodal. More...
 
virtual void e_from_T_v (Real T, Real v, Real &e, Real &de_dT, Real &de_dv) const
 Specific internal energy and its derivatives from temperature and specific volume. More...
 
virtual Real p_from_T_v (Real T, Real v) const
 Pressure from temperature and specific volume. More...
 
virtual void p_from_T_v (Real T, Real v, Real &p, Real &dp_dT, Real &dp_dv) const
 Pressure and its derivatives from temperature and specific volume. More...
 
virtual Real h_from_T_v (Real T, Real v) const
 Specific enthalpy from temperature and specific volume. More...
 
virtual void h_from_T_v (Real T, Real v, Real &h, Real &dh_dT, Real &dh_dv) const
 Specific enthalpy and its derivatives from temperature and specific volume. More...
 
virtual Real s_from_T_v (Real T, Real v) const
 Specific entropy from temperature and specific volume. More...
 
virtual void s_from_T_v (Real T, Real v, Real &s, Real &ds_dT, Real &ds_dv) const
 Specific entropy and its derivatives from temperature and specific volume. More...
 
virtual Real cv_from_T_v (Real T, Real v) const
 Specific isochoric heat capacity from temperature and specific volume. More...
 
virtual Real h (Real p, Real T) const
 
virtual void h_dpT (Real pressure, Real temperature, Real &h, Real &dh_dp, Real &dh_dT) const
 
virtual Real e (Real pressure, Real temperature) const
 
virtual void e_dpT (Real pressure, Real temperature, Real &e, Real &de_dp, Real &de_dT) const
 
virtual Real p_from_h_s (Real h, Real s) const
 Pressure from specific enthalpy and specific entropy. More...
 
virtual void p_from_h_s (Real h, Real s, Real &p, Real &dp_dh, Real &dp_ds) const
 Pressure and its derivatives from specific enthalpy and specific entropy. More...
 
virtual Real g_from_v_e (Real v, Real e) const
 Gibbs free energy from specific volume and specific internal energy. More...
 
virtual Real beta_from_p_T (Real p, Real T) const
 Thermal expansion coefficient from pressure and temperature. More...
 
virtual void beta_from_p_T (Real p, Real T, Real &beta, Real &dbeta_dp, Real &dbeta_dT) const
 Thermal expansion coefficient and its derivatives from pressure and temperature. More...
 
virtual Real beta (Real pressure, Real temperature) const
 
virtual Real pp_sat_from_p_T (Real p, Real T) const
 Partial pressure at saturation in a gas mixture. More...
 
virtual Real T_from_p_h (Real pressure, Real enthalpy) const
 Temperature from pressure and specific enthalpy. More...
 
virtual Real criticalInternalEnergy () const
 Critical specific internal energy. More...
 
virtual void rho_e_from_p_T (Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT, Real &e, Real &de_dp, Real &de_dT) const
 Density and internal energy and their derivatives wrt pressure and temperature. More...
 
virtual void rho_e_dpT (Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT, Real &e, Real &de_dp, Real &de_dT) const
 
virtual Real c (Real pressure, Real temperature) const
 
virtual Real gamma_from_p_T (Real pressure, Real temperature) const
 Adiabatic index - ratio of specific heats. More...
 
virtual Real mu (Real pressure, Real temperature) const
 Dynamic viscosity. More...
 
virtual void mu_dpT (Real pressure, Real temperature, Real &mu, Real &dmu_dp, Real &dmu_dT) const
 Dynamic viscosity and its derivatives wrt pressure and temperature. More...
 
virtual void mu_drhoT_from_rho_T (Real density, Real temperature, Real ddensity_dT, Real &mu, Real &dmu_drho, Real &dmu_dT) const
 
virtual void rho_mu (Real pressure, Real temperature, Real &rho, Real &mu) const
 Density and viscosity. More...
 
virtual void rho_mu_dpT (Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT, Real &mu, Real &dmu_dp, Real &dmu_dT) const
 
virtual Real k (Real pressure, Real temperature) const
 
virtual void k_dpT (Real pressure, Real temperature, Real &k, Real &dk_dp, Real &dk_dT) const
 
virtual void henryConstant_dT (Real temperature, Real &Kh, Real &dKh_dT) const
 
virtual void vaporPressure_dT (Real temperature, Real &psat, Real &dpsat_dT) const
 
virtual void execute () final
 
virtual void initialize () final
 
virtual void finalize () final
 
virtual void threadJoin (const UserObject &) final
 
virtual void subdomainSetup () final
 

Protected Member Functions

virtual Real alpha (Real delta, Real tau) const override
 Helmholtz free energy for H2 From Leachman et al (reference above) More...
 
virtual Real dalpha_ddelta (Real delta, Real tau) const override
 Derivative of Helmholtz free energy wrt delta. More...
 
virtual Real dalpha_dtau (Real delta, Real tau) const override
 Derivative of Helmholtz free energy wrt tau. More...
 
virtual Real d2alpha_ddelta2 (Real delta, Real tau) const override
 Second derivative of Helmholtz free energy wrt delta. More...
 
virtual Real d2alpha_dtau2 (Real delta, Real tau) const override
 Second derivative of Helmholtz free energy wrt tau. More...
 
virtual Real d2alpha_ddeltatau (Real delta, Real tau) const override
 Second derivative of Helmholtz free energy wrt delta and tau. More...
 
virtual Real henryConstantIAPWS (Real temperature, Real A, Real B, Real C) const
 IAPWS formulation of Henry's law constant for dissolution in water From Guidelines on the Henry's constant and vapour liquid distribution constant for gases in H20 and D20 at high temperatures, IAPWS (2004) More...
 
virtual void henryConstantIAPWS (Real temperature, Real &Kh, Real &dKh_dT, Real A, Real B, Real C) const
 
virtual void henryConstantIAPWS_dT (Real temperature, Real &Kh, Real &dKh_dT, Real A, Real B, Real C) const
 

Protected Attributes

const Real _Mh2
 Hydrogen molar mass (kg/mol) More...
 
const Real _p_critical
 Critical pressure (Pa) More...
 
const Real _T_critical
 Critical temperature (K) More...
 
const Real _rho_molar_critical
 Critical molar density (mol/l) More...
 
const Real _rho_critical
 Critical density (kg/m^3) More...
 
const Real _p_triple
 Triple point pressure (Pa) More...
 
const Real _T_triple
 Triple point temperature (K) More...
 
const std::array< Real, 5 > _a {{1.616, -0.4117, -0.792, 0.758, 1.217}}
 Coefficients for ideal gas component of the Helmholtz free energy. More...
 
const std::array< Real, 5 > _b
 
const std::array< Real, 7 > _N1 {{-6.93643, 0.01, 2.1101, 4.52059, 0.732564, -1.34086, 0.130985}}
 Coefficients for residual component of the Helmholtz free energy. More...
 
const std::array< Real, 7 > _t1 {{0.6844, 1.0, 0.989, 0.489, 0.803, 1.1444, 1.409}}
 
const std::array< unsigned int, 7 > _d1 {{1, 4, 1, 1, 2, 2, 3}}
 
const std::array< Real, 2 > _N2 {{-0.777414, 0.351944}}
 
const std::array< Real, 2 > _t2 {{1.754, 1.311}}
 
const std::array< unsigned int, 2 > _d2 {{1, 3}}
 
const std::array< Real, 5 > _N3 {{-0.0211716, 0.0226312, 0.032187, -0.0231752, 0.0557346}}
 
const std::array< Real, 5 > _t3 {{4.187, 5.646, 0.791, 7.249, 2.986}}
 
const std::array< unsigned int, 5 > _d3 {{2, 1, 3, 1, 1}}
 
const std::array< Real, 5 > _phi3 {{-1.685, -0.489, -0.103, -2.506, -1.607}}
 
const std::array< Real, 5 > _beta3 {{-0.171, -0.2245, -0.1304, -0.2785, -0.3967}}
 
const std::array< Real, 5 > _gamma3 {{0.7164, 1.3444, 1.4517, 0.7204, 1.5445}}
 
const std::array< Real, 5 > _D3 {{1.506, 0.156, 1.736, 0.67, 1.662}}
 
const std::array< Real, 5 > _amu {{2.09630e-1, -4.55274e-1, 1.423602e-1, -3.35325e-2, 2.76981e-3}}
 Coefficients for viscosity. More...
 
const std::array< Real, 7 > _bmu {{-0.187, 2.4871, 3.7151, -11.0972, 9.0965, -3.8292, 0.5166}}
 
const std::array< Real, 6 > _cmu
 
const std::array< Real, 7 > _a1k
 Coefficients for thermal conductivity. More...
 
const std::array< Real, 4 > _a2k {{1.38497e2, -2.21878e1, 4.57151, 1.0}}
 
const std::array< Real, 5 > _b1k {{3.63081e-2, -2.07629e-2, 3.1481e-2, -1.43097e-2, 1.7498e-3}}
 
const std::array< Real, 5 > _b2k {{1.8337e-3, -8.86716e-3, 1.5826e-2, -1.06283e-2, 2.80673e-3}}
 
const Real _R
 Universal gas constant (J/mol/K) More...
 
const Real _T_c2k
 Conversion of temperature from Celsius to Kelvin. More...
 

Detailed Description

Hydrogen (H2) fluid properties as a function of pressure (Pa) and temperature (K).

Thermodynamic properties calculated from: Leachman, Jacobsen, Penoncello,and Lemmon, Fundamental equations of state for parahydrogen, normal hydrogen, and orthohydrogen, Journal of Physical and Chemical Reference Data, 38, 721–748 (2009)

Viscosity from: Muzny, Huber and Kazakov, Correlation for the viscosity of normal hydrogen obtained from symbolic regression, Journal of Chemical and Engineering Data, 58, 969-979 (2013)

Thermal conductivity from: Assael, Assael, Huber, Perkins and Takata, Correlation of the thermal conductivity of normal and parahydrogen from the triple point to 1000 K and up to 100 Mpa, Journal of Physical and Chemical Reference Data, 40 (2011)

Definition at line 40 of file HydrogenFluidProperties.h.

Constructor & Destructor Documentation

◆ HydrogenFluidProperties()

HydrogenFluidProperties::HydrogenFluidProperties ( const InputParameters &  parameters)

Definition at line 26 of file HydrogenFluidProperties.C.

27  : HelmholtzFluidProperties(parameters),
28  _Mh2(2.01588e-3),
29  _p_critical(1.315e6),
30  _T_critical(33.19),
31  _rho_molar_critical(15.508),
33  _p_triple(7.7e3),
34  _T_triple(13.952)
35 {
36 }
const Real _T_triple
Triple point temperature (K)
const Real _rho_molar_critical
Critical molar density (mol/l)
HelmholtzFluidProperties(const InputParameters &parameters)
const Real _rho_critical
Critical density (kg/m^3)
const Real _Mh2
Hydrogen molar mass (kg/mol)
const Real _T_critical
Critical temperature (K)
const Real _p_triple
Triple point pressure (Pa)
const Real _p_critical
Critical pressure (Pa)
virtual Real e(Real pressure, Real temperature) const

Member Function Documentation

◆ alpha()

Real HydrogenFluidProperties::alpha ( Real  delta,
Real  tau 
) const
overrideprotectedvirtual

Helmholtz free energy for H2 From Leachman et al (reference above)

Parameters
deltascaled density (-)
tauscaled temperature (-)
Returns
alpha Helmholtz free energy

Implements HelmholtzFluidProperties.

Definition at line 306 of file HydrogenFluidProperties.C.

307 {
308  // Ideal gas component of the Helmholtz free energy
309  Real alpha0 = std::log(delta) + 1.5 * std::log(tau) - 1.4579856475 + 1.888076782 * tau;
310 
311  for (std::size_t i = 0; i < _a.size(); ++i)
312  alpha0 += _a[i] * std::log(1.0 - std::exp(_b[i] * tau));
313 
314  // Residual component of the Helmholtz free energy
315  Real alphar = 0.0;
316 
317  for (std::size_t i = 0; i < _t1.size(); ++i)
318  alphar += _N1[i] * MathUtils::pow(delta, _d1[i]) * std::pow(tau, _t1[i]);
319 
320  for (std::size_t i = 0; i < _t2.size(); ++i)
321  alphar += _N2[i] * MathUtils::pow(delta, _d2[i]) * std::pow(tau, _t2[i]) * std::exp(-delta);
322 
323  for (std::size_t i = 0; i < _t3.size(); ++i)
324  alphar += _N3[i] * MathUtils::pow(delta, _d3[i]) * std::pow(tau, _t3[i]) *
325  std::exp(_phi3[i] * Utility::pow<2>(delta - _D3[i]) +
326  _beta3[i] * Utility::pow<2>(tau - _gamma3[i]));
327 
328  // The Helmholtz free energy is the sum of these two
329  return alpha0 + alphar;
330 }
const std::array< Real, 2 > _N2
const std::array< Real, 5 > _beta3
const std::array< Real, 5 > _t3
const std::array< Real, 7 > _N1
Coefficients for residual component of the Helmholtz free energy.
const std::array< Real, 5 > _N3
const std::array< unsigned int, 7 > _d1
const std::array< Real, 7 > _t1
const std::array< Real, 5 > _phi3
const std::array< Real, 5 > _b
const std::array< unsigned int, 2 > _d2
const std::array< Real, 5 > _D3
const std::array< Real, 5 > _a
Coefficients for ideal gas component of the Helmholtz free energy.
const std::array< Real, 5 > _gamma3
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const std::array< Real, 2 > _t2
const std::array< unsigned int, 5 > _d3

◆ beta()

Real SinglePhaseFluidProperties::beta ( Real  pressure,
Real  temperature 
) const
virtualinherited

Definition at line 268 of file SinglePhaseFluidProperties.C.

Referenced by SimpleFluidProperties::beta_from_p_T(), and Water97FluidProperties::vaporTemperature().

269 {
270  return beta_from_p_T(p, T);
271 }
virtual Real beta_from_p_T(Real p, Real T) const
Thermal expansion coefficient from pressure and temperature.

◆ beta_from_p_T() [1/2]

Real SinglePhaseFluidProperties::beta_from_p_T ( Real  p,
Real  T 
) const
virtualinherited

Thermal expansion coefficient from pressure and temperature.

Parameters
[in]ppressure (Pa)
[in]Ttemperature (K)
Returns
beta (1/K)

Reimplemented in SimpleFluidProperties.

Definition at line 177 of file SinglePhaseFluidProperties.C.

Referenced by SinglePhaseFluidProperties::beta().

178 {
179  // The volumetric thermal expansion coefficient is defined as
180  // 1/v dv/dT)_p
181  // It is the fractional change rate of volume with respect to temperature change
182  // at constant pressure. Here it is coded as
183  // - 1/rho drho/dT)_p
184  // using chain rule with v = v(rho)
185 
186  Real rho, drho_dp, drho_dT;
187  rho_from_p_T(p, T, rho, drho_dp, drho_dT);
188  return -drho_dT / rho;
189 }
virtual Real rho(Real p, Real T) const
virtual Real rho_from_p_T(Real p, Real T) const
Density from pressure and temperature.

◆ beta_from_p_T() [2/2]

void SinglePhaseFluidProperties::beta_from_p_T ( Real  p,
Real  T,
Real &  beta,
Real &  dbeta_dp,
Real &  dbeta_dT 
) const
virtualinherited

Thermal expansion coefficient and its derivatives from pressure and temperature.

Parameters
[in]ppressure (Pa)
[in]Ttemperature (K)
[out]betabeta (1/K)
[out]dbeta_dpderivative of the thermal expansion coefficient w.r.t. pressure
[out]dbeta_dTderivative of the thermal expansion coefficient w.r.t. temperature

Reimplemented in SimpleFluidProperties.

Definition at line 192 of file SinglePhaseFluidProperties.C.

193 {
194  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
195 }
const std::string name
Definition: Setup.h:22

◆ c()

Real SinglePhaseFluidProperties::c ( Real  pressure,
Real  temperature 
) const
virtualinherited

Definition at line 465 of file SinglePhaseFluidProperties.C.

Referenced by IdealGasFluidProperties::c_from_v_e(), StiffenedGasFluidProperties::c_from_v_e(), Water97FluidProperties::densityRegion3(), Water97FluidProperties::subregionVolume(), and Water97FluidProperties::vaporPressure().

466 {
467  mooseDeprecated(name(), ": c() is deprecated. Use c_from_p_T() instead");
468 
469  return c_from_p_T(p, T);
470 }
virtual Real c_from_p_T(Real pressure, Real temperature) const
Speed of sound.
const std::string name
Definition: Setup.h:22

◆ c_from_p_T()

Real HelmholtzFluidProperties::c_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Speed of sound.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
Returns
speed of sound (m/s)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 100 of file HelmholtzFluidProperties.C.

101 {
102  // Require density first
103  const Real density = rho_from_p_T(pressure, temperature);
104  // Scale the input density and temperature
105  const Real delta = density / criticalDensity();
106  const Real tau = criticalTemperature() / temperature;
107 
108  const Real da_dd = dalpha_ddelta(delta, tau);
109 
110  Real w = 2.0 * delta * da_dd + delta * delta * d2alpha_ddelta2(delta, tau);
111  w -= Utility::pow<2>(delta * da_dd - delta * tau * d2alpha_ddeltatau(delta, tau)) /
112  (tau * tau * d2alpha_dtau2(delta, tau));
113 
114  return std::sqrt(_R * temperature * w / molarMass());
115 }
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta and tau.
virtual Real d2alpha_dtau2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt tau.
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
virtual Real d2alpha_ddelta2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta.
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real dalpha_ddelta(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt delta.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real criticalDensity() const
Critical density.
const std::string pressure
Definition: NS.h:26

◆ c_from_v_e() [1/2]

Real SinglePhaseFluidProperties::c_from_v_e ( Real  v,
Real  e 
) const
virtualinherited

Sound speed from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 50 of file SinglePhaseFluidProperties.C.

Referenced by FluidPropertiesMaterial::computeQpProperties(), and NSMachAux::computeValue().

51 {
52  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
53 }
const std::string name
Definition: Setup.h:22

◆ c_from_v_e() [2/2]

void SinglePhaseFluidProperties::c_from_v_e ( Real  v,
Real  e,
Real &  c,
Real &  dc_dv,
Real &  dc_de 
) const
virtualinherited

Sound speed and its derivatives from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy
[out]dc_dvderivative of sound speed w.r.t. specific volume
[out]dc_dederivative of sound speed w.r.t. specific internal energy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 56 of file SinglePhaseFluidProperties.C.

57 {
58  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
59 }
const std::string name
Definition: Setup.h:22

◆ cp_from_p_T() [1/4]

Real HelmholtzFluidProperties::cp_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Isobaric specific heat capacity.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
Returns
cp (J/kg/K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 118 of file HelmholtzFluidProperties.C.

119 {
120  // Require density first
121  const Real density = rho_from_p_T(pressure, temperature);
122  // Scale the input density and temperature
123  const Real delta = density / criticalDensity();
124  const Real tau = criticalTemperature() / temperature;
125 
126  const Real da_dd = dalpha_ddelta(delta, tau);
127 
128  const Real cp = _R *
129  (-tau * tau * d2alpha_dtau2(delta, tau) +
130  Utility::pow<2>(delta * da_dd - delta * tau * d2alpha_ddeltatau(delta, tau)) /
131  (2.0 * delta * da_dd + delta * delta * d2alpha_ddelta2(delta, tau))) /
132  molarMass();
133 
134  return cp;
135 }
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta and tau.
virtual Real d2alpha_dtau2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt tau.
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
virtual Real d2alpha_ddelta2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta.
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real dalpha_ddelta(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt delta.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real criticalDensity() const
Critical density.
const std::string pressure
Definition: NS.h:26

◆ cp_from_p_T() [2/4]

Real SinglePhaseFluidProperties::cp_from_p_T
inherited

Isobaric specific heat capacity.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
Returns
cp (J/kg/K)

Definition at line 472 of file SinglePhaseFluidProperties.C.

473 {
474  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
475 }
const std::string name
Definition: Setup.h:22

◆ cp_from_p_T() [3/4]

void SinglePhaseFluidProperties::cp_from_p_T
inherited

Isobaric specific heat capacity from pressure and temperature.

Parameters
[in]pressurefluid pressure (Pa)
[in]temperaturefluid temperature (K)
[out]cpisobaric specific heat (J/kg/K)
[out]dcp_dpderivative of isobaric specific heat w.r.t. pressure (J/kg/K/Pa)
[out]dcp_dTderivative of isobaric specific heat w.r.t. temperature (J/kg/K/K)

Definition at line 478 of file SinglePhaseFluidProperties.C.

479 {
480  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
481 }
const std::string name
Definition: Setup.h:22

◆ cp_from_p_T() [4/4]

void SinglePhaseFluidProperties::cp_from_p_T ( Real  pressure,
Real  temperature,
Real &  cp,
Real &  dcp_dp,
Real &  dcp_dT 
) const
virtualinherited

Isobaric specific heat capacity from pressure and temperature.

Parameters
[in]pressurefluid pressure (Pa)
[in]temperaturefluid temperature (K)
[out]cpisobaric specific heat (J/kg/K)
[out]dcp_dpderivative of isobaric specific heat w.r.t. pressure (J/kg/K/Pa)
[out]dcp_dTderivative of isobaric specific heat w.r.t. temperature (J/kg/K/K)

Reimplemented in StiffenedGasFluidProperties, IdealGasFluidProperties, and SimpleFluidProperties.

Definition at line 478 of file SinglePhaseFluidProperties.C.

479 {
480  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
481 }
const std::string name
Definition: Setup.h:22

◆ cp_from_v_e() [1/2]

Real SinglePhaseFluidProperties::cp_from_v_e ( Real  v,
Real  e 
) const
virtualinherited

Isobaric (constant-pressure) specific heat from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 61 of file SinglePhaseFluidProperties.C.

Referenced by FluidPropertiesMaterial::computeQpProperties(), and GeneralVaporMixtureFluidProperties::cp_from_p_T().

62 {
63  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
64 }
const std::string name
Definition: Setup.h:22

◆ cp_from_v_e() [2/2]

void SinglePhaseFluidProperties::cp_from_v_e ( Real  v,
Real  e,
Real &  cp,
Real &  dcp_dv,
Real &  dcp_de 
) const
virtualinherited

Isobaric (constant pressure) specific heat from specific volume and specific internal energy.

Parameters
[in]vspecific volume (m$^3$/kg)
[in]especific internal energy (J/kg)
[out]cpisobaric specific heat (J/kg/K)
[out]dcp_dvderivative of isobaric specific heat w.r.t. specific volume (J/K/m$^3$)
[out]dcp_dederivative of isobaric specific heat w.r.t. specific inernal energy (1/K)

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 67 of file SinglePhaseFluidProperties.C.

68 {
69  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
70 }
const std::string name
Definition: Setup.h:22

◆ criticalDensity()

Real HydrogenFluidProperties::criticalDensity ( ) const
overridevirtual

Critical density.

Returns
critical density (kg/m^3)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 63 of file HydrogenFluidProperties.C.

64 {
65  return _rho_critical;
66 }
const Real _rho_critical
Critical density (kg/m^3)

◆ criticalInternalEnergy()

Real SinglePhaseFluidProperties::criticalInternalEnergy ( ) const
virtualinherited

Critical specific internal energy.

Returns
specific internal energy (J/kg)

Reimplemented in StiffenedGasFluidProperties.

Definition at line 244 of file SinglePhaseFluidProperties.C.

Referenced by IdealRealGasMixtureFluidProperties::p_T_from_v_e().

245 {
246  mooseError(name(), ": criticalInternalEnergy() is not implemented");
247 }
const std::string name
Definition: Setup.h:22

◆ criticalPressure()

Real HydrogenFluidProperties::criticalPressure ( ) const
overridevirtual

Critical pressure.

Returns
critical pressure (Pa)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 51 of file HydrogenFluidProperties.C.

52 {
53  return _p_critical;
54 }
const Real _p_critical
Critical pressure (Pa)

◆ criticalTemperature()

Real HydrogenFluidProperties::criticalTemperature ( ) const
overridevirtual

Critical temperature.

Returns
critical temperature (K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 57 of file HydrogenFluidProperties.C.

58 {
59  return _T_critical;
60 }
const Real _T_critical
Critical temperature (K)

◆ cv_from_p_T()

Real HelmholtzFluidProperties::cv_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Isochoric specific heat.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
Returns
cv (J/kg/K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 138 of file HelmholtzFluidProperties.C.

139 {
140  // Require density first
141  const Real density = rho_from_p_T(pressure, temperature);
142  // Scale the input density and temperature
143  const Real delta = density / criticalDensity();
144  const Real tau = criticalTemperature() / temperature;
145 
146  return -_R * tau * tau * d2alpha_dtau2(delta, tau) / molarMass();
147 }
virtual Real d2alpha_dtau2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt tau.
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real criticalDensity() const
Critical density.
const std::string pressure
Definition: NS.h:26

◆ cv_from_T_v()

Real SinglePhaseFluidProperties::cv_from_T_v ( Real  T,
Real  v 
) const
virtualinherited

Specific isochoric heat capacity from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 695 of file SinglePhaseFluidProperties.C.

Referenced by IdealRealGasMixtureFluidProperties::cv_from_p_T(), and IdealRealGasMixtureFluidProperties::cv_from_T_v().

696 {
697  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
698 }
const std::string name
Definition: Setup.h:22

◆ cv_from_v_e()

Real SinglePhaseFluidProperties::cv_from_v_e ( Real  v,
Real  e 
) const
virtualinherited

Isochoric (constant-volume) specific heat from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 72 of file SinglePhaseFluidProperties.C.

Referenced by FluidPropertiesMaterial::computeQpProperties(), and GeneralVaporMixtureFluidProperties::cv_from_p_T().

73 {
74  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
75 }
const std::string name
Definition: Setup.h:22

◆ d2alpha_ddelta2()

Real HydrogenFluidProperties::d2alpha_ddelta2 ( Real  delta,
Real  tau 
) const
overrideprotectedvirtual

Second derivative of Helmholtz free energy wrt delta.

Parameters
deltascaled density (-)
tauscaled temperature (-)
Returns
second derivative of Helmholtz free energy wrt delta

Implements HelmholtzFluidProperties.

Definition at line 388 of file HydrogenFluidProperties.C.

389 {
390  // Ideal gas component of the Helmholtz free energy
391  Real dalpha0 = -1.0 / delta / delta;
392 
393  // Residual component of the Helmholtz free energy
394  Real dalphar = 0.0;
395 
396  for (std::size_t i = 0; i < _t1.size(); ++i)
397  dalphar +=
398  _N1[i] * _d1[i] * (_d1[i] - 1.0) * MathUtils::pow(delta, _d1[i]) * std::pow(tau, _t1[i]);
399 
400  for (std::size_t i = 0; i < _t2.size(); ++i)
401  dalphar += _N2[i] * MathUtils::pow(delta, _d2[i]) * std::pow(tau, _t2[i]) * std::exp(-delta) *
402  (delta * delta - 2.0 * _d2[i] * delta + _d2[i] * (_d2[i] - 1.0));
403 
404  for (std::size_t i = 0; i < _t3.size(); ++i)
405  dalphar += _N3[i] * MathUtils::pow(delta, _d3[i]) * std::pow(tau, _t3[i]) *
406  std::exp(_phi3[i] * Utility::pow<2>(delta - _D3[i]) +
407  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
408  (_d3[i] * _d3[i] +
409  2.0 * delta * delta * _phi3[i] *
410  (1.0 + 2.0 * _phi3[i] * (_D3[i] - delta) * (_D3[i] - delta)) +
411  _d3[i] * (4.0 * delta * _phi3[i] * (delta - _D3[i]) - 1.0));
412 
413  // The Helmholtz free energy is the sum of these two
414  return dalpha0 + dalphar / delta / delta;
415 }
const std::array< Real, 2 > _N2
const std::array< Real, 5 > _beta3
const std::array< Real, 5 > _t3
const std::array< Real, 7 > _N1
Coefficients for residual component of the Helmholtz free energy.
const std::array< Real, 5 > _N3
const std::array< unsigned int, 7 > _d1
const std::array< Real, 7 > _t1
const std::array< Real, 5 > _phi3
const std::array< unsigned int, 2 > _d2
const std::array< Real, 5 > _D3
const std::array< Real, 5 > _gamma3
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const std::array< Real, 2 > _t2
const std::array< unsigned int, 5 > _d3

◆ d2alpha_ddeltatau()

Real HydrogenFluidProperties::d2alpha_ddeltatau ( Real  delta,
Real  tau 
) const
overrideprotectedvirtual

Second derivative of Helmholtz free energy wrt delta and tau.

Parameters
deltascaled density (-)
tauscaled temperature (-)
Returns
second derivative of Helmholtz free energy wrt delta and tau

Implements HelmholtzFluidProperties.

Definition at line 454 of file HydrogenFluidProperties.C.

455 {
456  // Residual component of the Helmholtz free energy
457  Real dalphar = 0.0;
458 
459  for (std::size_t i = 0; i < _t1.size(); ++i)
460  dalphar += _N1[i] * _d1[i] * _t1[i] * std::pow(delta, _d1[i]) * std::pow(tau, _t1[i]);
461 
462  for (std::size_t i = 0; i < _t2.size(); ++i)
463  dalphar += _N2[i] * _t2[i] * std::pow(delta, _d2[i]) * std::pow(tau, _t2[i]) *
464  std::exp(-delta) * (_d2[i] - delta);
465 
466  for (std::size_t i = 0; i < _t3.size(); ++i)
467  dalphar += _N3[i] * std::pow(delta, _d3[i]) * std::pow(tau, _t3[i]) *
468  std::exp(_phi3[i] * Utility::pow<2>(delta - _D3[i]) +
469  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
470  (_d3[i] + delta * (2.0 * _phi3[i] * (delta - _D3[i]))) *
471  (_t3[i] + 2.0 * _beta3[i] * tau * (tau - _gamma3[i]));
472 
473  // The Helmholtz free energy is the sum of these two
474  return dalphar / delta / tau;
475 }
const std::array< Real, 2 > _N2
const std::array< Real, 5 > _beta3
const std::array< Real, 5 > _t3
const std::array< Real, 7 > _N1
Coefficients for residual component of the Helmholtz free energy.
const std::array< Real, 5 > _N3
const std::array< unsigned int, 7 > _d1
const std::array< Real, 7 > _t1
const std::array< Real, 5 > _phi3
const std::array< unsigned int, 2 > _d2
const std::array< Real, 5 > _D3
const std::array< Real, 5 > _gamma3
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const std::array< Real, 2 > _t2
const std::array< unsigned int, 5 > _d3

◆ d2alpha_dtau2()

Real HydrogenFluidProperties::d2alpha_dtau2 ( Real  delta,
Real  tau 
) const
overrideprotectedvirtual

Second derivative of Helmholtz free energy wrt tau.

Parameters
deltascaled density (-)
tauscaled temperature (-)
Returns
second derivative of Helmholtz free energy wrt tau

Implements HelmholtzFluidProperties.

Definition at line 418 of file HydrogenFluidProperties.C.

419 {
420  // Ideal gas component of the Helmholtz free energy
421  Real dalpha0 = -1.5 / tau / tau;
422 
423  for (std::size_t i = 0; i < _a.size(); ++i)
424  {
425  Real exptau = std::exp(_b[i] * tau);
426  dalpha0 -= _a[i] * (_b[i] * _b[i] * exptau / (1.0 - exptau) * (exptau / (1.0 - exptau) + 1.0));
427  }
428 
429  // Residual component of the Helmholtz free energy
430  Real dalphar = 0.0;
431 
432  for (std::size_t i = 0; i < _t1.size(); ++i)
433  dalphar +=
434  _N1[i] * _t1[i] * (_t1[i] - 1.0) * MathUtils::pow(delta, _d1[i]) * std::pow(tau, _t1[i]);
435 
436  for (std::size_t i = 0; i < _t2.size(); ++i)
437  dalphar += _N2[i] * _t2[i] * (_t2[i] - 1.0) * MathUtils::pow(delta, _d2[i]) *
438  std::pow(tau, _t2[i]) * std::exp(-delta);
439 
440  for (std::size_t i = 0; i < _t3.size(); ++i)
441  dalphar += _N3[i] * MathUtils::pow(delta, _d3[i]) * std::pow(tau, _t3[i]) *
442  std::exp(_phi3[i] * Utility::pow<2>(delta - _D3[i]) +
443  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
444  (_t3[i] * _t3[i] +
445  2.0 * _beta3[i] * tau * tau *
446  (1.0 + 2.0 * _beta3[i] * MathUtils::pow(tau - _gamma3[i], 2)) -
447  _t3[i] * (1.0 + 4.0 * _beta3[i] * tau * (tau - _gamma3[i])));
448 
449  // The Helmholtz free energy is the sum of these two
450  return dalpha0 + dalphar / tau / tau;
451 }
const std::array< Real, 2 > _N2
const std::array< Real, 5 > _beta3
const std::array< Real, 5 > _t3
const std::array< Real, 7 > _N1
Coefficients for residual component of the Helmholtz free energy.
const std::array< Real, 5 > _N3
const std::array< unsigned int, 7 > _d1
const std::array< Real, 7 > _t1
const std::array< Real, 5 > _phi3
const std::array< Real, 5 > _b
const std::array< unsigned int, 2 > _d2
const std::array< Real, 5 > _D3
const std::array< Real, 5 > _a
Coefficients for ideal gas component of the Helmholtz free energy.
const std::array< Real, 5 > _gamma3
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const std::array< Real, 2 > _t2
const std::array< unsigned int, 5 > _d3

◆ dalpha_ddelta()

Real HydrogenFluidProperties::dalpha_ddelta ( Real  delta,
Real  tau 
) const
overrideprotectedvirtual

Derivative of Helmholtz free energy wrt delta.

Parameters
deltascaled density (-)
tauscaled temperature (-)
Returns
derivative of Helmholtz free energy wrt delta

Implements HelmholtzFluidProperties.

Definition at line 333 of file HydrogenFluidProperties.C.

334 {
335  // Ideal gas component of the Helmholtz free energy
336  Real dalpha0 = 1.0 / delta;
337 
338  // Residual component of the Helmholtz free energy
339  Real dalphar = 0.0;
340 
341  for (std::size_t i = 0; i < _t1.size(); ++i)
342  dalphar += _N1[i] * _d1[i] * MathUtils::pow(delta, _d1[i]) * std::pow(tau, _t1[i]);
343 
344  for (std::size_t i = 0; i < _t2.size(); ++i)
345  dalphar += _N2[i] * MathUtils::pow(delta, _d2[i]) * std::pow(tau, _t2[i]) * std::exp(-delta) *
346  (_d2[i] - delta);
347 
348  for (std::size_t i = 0; i < _t3.size(); ++i)
349  dalphar += _N3[i] * MathUtils::pow(delta, _d3[i]) * std::pow(tau, _t3[i]) *
350  std::exp(_phi3[i] * Utility::pow<2>(delta - _D3[i]) +
351  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
352  (_d3[i] + delta * (2.0 * _phi3[i] * (delta - _D3[i])));
353 
354  // The Helmholtz free energy is the sum of these two
355  return dalpha0 + dalphar / delta;
356 }
const std::array< Real, 2 > _N2
const std::array< Real, 5 > _beta3
const std::array< Real, 5 > _t3
const std::array< Real, 7 > _N1
Coefficients for residual component of the Helmholtz free energy.
const std::array< Real, 5 > _N3
const std::array< unsigned int, 7 > _d1
const std::array< Real, 7 > _t1
const std::array< Real, 5 > _phi3
const std::array< unsigned int, 2 > _d2
const std::array< Real, 5 > _D3
const std::array< Real, 5 > _gamma3
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const std::array< Real, 2 > _t2
const std::array< unsigned int, 5 > _d3

◆ dalpha_dtau()

Real HydrogenFluidProperties::dalpha_dtau ( Real  delta,
Real  tau 
) const
overrideprotectedvirtual

Derivative of Helmholtz free energy wrt tau.

Parameters
deltascaled density (-)
tauscaled temperature (-)
Returns
derivative of Helmholtz free energy wrt tau

Implements HelmholtzFluidProperties.

Definition at line 359 of file HydrogenFluidProperties.C.

360 {
361  // Ideal gas component of the Helmholtz free energy
362  Real dalpha0 = 1.5 / tau + 1.888076782;
363 
364  for (std::size_t i = 0; i < _a.size(); ++i)
365  dalpha0 += _a[i] * _b[i] * (1.0 - 1.0 / (1.0 - std::exp(_b[i] * tau)));
366 
367  // Residual component of the Helmholtz free energy
368  Real dalphar = 0.0;
369 
370  for (std::size_t i = 0; i < _t1.size(); ++i)
371  dalphar += _N1[i] * _t1[i] * MathUtils::pow(delta, _d1[i]) * std::pow(tau, _t1[i]);
372 
373  for (std::size_t i = 0; i < _t2.size(); ++i)
374  dalphar +=
375  _N2[i] * _t2[i] * MathUtils::pow(delta, _d2[i]) * std::pow(tau, _t2[i]) * std::exp(-delta);
376 
377  for (std::size_t i = 0; i < _t3.size(); ++i)
378  dalphar += _N3[i] * MathUtils::pow(delta, _d3[i]) * std::pow(tau, _t3[i]) *
379  std::exp(_phi3[i] * Utility::pow<2>(delta - _D3[i]) +
380  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
381  (_t3[i] + tau * (2.0 * _beta3[i] * (tau - _gamma3[i])));
382 
383  // The Helmholtz free energy is the sum of these two
384  return dalpha0 + dalphar / tau;
385 }
const std::array< Real, 2 > _N2
const std::array< Real, 5 > _beta3
const std::array< Real, 5 > _t3
const std::array< Real, 7 > _N1
Coefficients for residual component of the Helmholtz free energy.
const std::array< Real, 5 > _N3
const std::array< unsigned int, 7 > _d1
const std::array< Real, 7 > _t1
const std::array< Real, 5 > _phi3
const std::array< Real, 5 > _b
const std::array< unsigned int, 2 > _d2
const std::array< Real, 5 > _D3
const std::array< Real, 5 > _a
Coefficients for ideal gas component of the Helmholtz free energy.
const std::array< Real, 5 > _gamma3
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const std::array< Real, 2 > _t2
const std::array< unsigned int, 5 > _d3

◆ e()

Real SinglePhaseFluidProperties::e ( Real  pressure,
Real  temperature 
) const
virtualinherited

Definition at line 415 of file SinglePhaseFluidProperties.C.

Referenced by Water97FluidProperties::b2bc(), IdealGasFluidProperties::c_from_v_e(), StiffenedGasFluidProperties::c_from_v_e(), NaClFluidProperties::cp_from_p_T(), IdealGasFluidProperties::cp_from_v_e(), StiffenedGasFluidProperties::cp_from_v_e(), Water97FluidProperties::densityRegion3(), SinglePhaseFluidProperties::e_dpT(), StiffenedGasFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), HelmholtzFluidProperties::e_from_p_T(), IdealGasFluidPropertiesPT::e_from_p_T(), Water97FluidProperties::e_from_p_T(), NaClFluidProperties::e_from_p_T(), IdealGasFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_p_T(), SimpleFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), SinglePhaseFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_T_v(), IdealGasFluidProperties::e_from_T_v(), IdealGasFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::e_from_v_h(), IdealGasFluidProperties::g_from_v_e(), StiffenedGasFluidProperties::g_from_v_e(), IdealGasFluidProperties::h_from_p_T(), NaClFluidProperties::h_from_p_T(), NitrogenFluidProperties::mu_from_rho_T(), mu_from_rho_T(), CO2FluidProperties::mu_from_rho_T(), StiffenedGasFluidProperties::p_from_T_v(), IdealGasFluidProperties::p_from_v_e(), StiffenedGasFluidProperties::p_from_v_e(), IdealGasFluidPropertiesPT::rho_e_dpT(), SinglePhaseFluidProperties::rho_e_dpT(), SinglePhaseFluidProperties::rho_e_from_p_T(), StiffenedGasFluidProperties::s_from_T_v(), IdealGasFluidProperties::s_from_v_e(), StiffenedGasFluidProperties::s_from_v_e(), Water97FluidProperties::subregion3(), Water97FluidProperties::subregionVolume(), SinglePhaseFluidProperties::T_from_p_h(), IdealGasFluidProperties::T_from_v_e(), StiffenedGasFluidProperties::T_from_v_e(), StiffenedGasFluidProperties::v_e_spndl_from_T(), and Water97FluidProperties::vaporTemperature().

416 {
417  mooseDeprecated(name(), ": e() is deprecated. Use e_from_p_T() instead");
418 
419  return e_from_p_T(p, T);
420 }
virtual Real e_from_p_T(Real p, Real T) const
Internal energy from pressure and temperature.
const std::string name
Definition: Setup.h:22

◆ e_dpT()

void SinglePhaseFluidProperties::e_dpT ( Real  pressure,
Real  temperature,
Real &  e,
Real &  de_dp,
Real &  de_dT 
) const
virtualinherited

Definition at line 423 of file SinglePhaseFluidProperties.C.

424 {
425  mooseDeprecated(name(), ": e_dpT() is deprecated. Use e_from_p_T() instead");
426 
427  e_from_p_T(p, T, e, de_dp, de_dT);
428 }
virtual Real e_from_p_T(Real p, Real T) const
Internal energy from pressure and temperature.
const std::string name
Definition: Setup.h:22
virtual Real e(Real pressure, Real temperature) const

◆ e_from_p_rho() [1/2]

Real SinglePhaseFluidProperties::e_from_p_rho ( Real  p,
Real  rho 
) const
virtualinherited

Specific internal energy from pressure and density.

Parameters
[in]ppressure
[in]rhodensity

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 629 of file SinglePhaseFluidProperties.C.

Referenced by StagnationTemperatureAux::computeValue(), InternalEnergyAux::computeValue(), and SinglePhaseFluidProperties::e_from_p_T().

630 {
631  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
632 }
const std::string name
Definition: Setup.h:22

◆ e_from_p_rho() [2/2]

void SinglePhaseFluidProperties::e_from_p_rho ( Real  p,
Real  rho,
Real &  e,
Real &  de_dp,
Real &  de_drho 
) const
virtualinherited

Specific internal energy and its derivatives from pressure and density.

Parameters
[in]ppressure
[in]rhodensity
[out]especific internal energy
[out]de_dpderivative of specific internal energy w.r.t. pressure
[out]de_drhoderivative of specific internal energy w.r.t. density

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 635 of file SinglePhaseFluidProperties.C.

636 {
637  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
638 }
const std::string name
Definition: Setup.h:22

◆ e_from_p_T() [1/2]

Real HelmholtzFluidProperties::e_from_p_T ( Real  p,
Real  T 
) const
overridevirtualinherited

Internal energy from pressure and temperature.

Parameters
[in]ppressure (Pa)
[in]Ttemperature (K)
Returns
internal energy (J/kg)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 65 of file HelmholtzFluidProperties.C.

Referenced by HelmholtzFluidProperties::e_from_p_T().

66 {
67  // Require density first
69  // Scale the input density and temperature
70  const Real delta = density / criticalDensity();
71  const Real tau = criticalTemperature() / temperature;
72 
73  return _R * temperature * tau * dalpha_dtau(delta, tau) / molarMass();
74 }
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real dalpha_dtau(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt tau.
virtual Real criticalDensity() const
Critical density.
const std::string pressure
Definition: NS.h:26

◆ e_from_p_T() [2/2]

void HelmholtzFluidProperties::e_from_p_T ( Real  p,
Real  T,
Real &  e,
Real &  de_dp,
Real &  de_dT 
) const
overridevirtualinherited

Internal energy and its derivatives from pressure and temperature.

Parameters
[in]ppressure (Pa)
[in]Ttemperature (K)
[out]einternal energy (J/kg)
[out]de_dpderivative of internal energy w.r.t. pressure
[out]de_dTderivative of internal energy w.r.t. temperature

Reimplemented from SinglePhaseFluidProperties.

Definition at line 77 of file HelmholtzFluidProperties.C.

79 {
80  e = this->e_from_p_T(pressure, temperature);
81 
82  // Require density first
84  // Scale the input density and temperature
85  const Real delta = density / criticalDensity();
86  const Real tau = criticalTemperature() / temperature;
87 
88  const Real da_dd = dalpha_ddelta(delta, tau);
89  const Real d2a_dd2 = d2alpha_ddelta2(delta, tau);
90  const Real d2a_ddt = d2alpha_ddeltatau(delta, tau);
91 
92  de_dp = tau * d2a_ddt / (density * (2.0 * da_dd + delta * d2a_dd2));
93  de_dT = -_R *
94  (delta * tau * d2a_ddt * (da_dd - tau * d2a_ddt) / (2.0 * da_dd + delta * d2a_dd2) +
95  tau * tau * d2alpha_dtau2(delta, tau)) /
96  molarMass();
97 }
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta and tau.
virtual Real d2alpha_dtau2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt tau.
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
virtual Real d2alpha_ddelta2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta.
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real dalpha_ddelta(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt delta.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real criticalDensity() const
Critical density.
const std::string pressure
Definition: NS.h:26
virtual Real e(Real pressure, Real temperature) const
virtual Real e_from_p_T(Real pressure, Real temperature) const override
Internal energy from pressure and temperature.

◆ e_from_T_v() [1/2]

Real SinglePhaseFluidProperties::e_from_T_v ( Real  T,
Real  v 
) const
virtualinherited

Specific volume and specific internal energy from temerature at the vapor spinodal.

Parameters
[in]Ttemerature

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 640 of file SinglePhaseFluidProperties.C.

Referenced by IdealRealGasMixtureFluidProperties::e_from_T_v(), IdealRealGasMixtureFluidProperties::k_from_p_T(), IdealRealGasMixtureFluidProperties::k_from_T_v(), IdealRealGasMixtureFluidProperties::mu_from_p_T(), and IdealRealGasMixtureFluidProperties::mu_from_T_v().

641 {
642  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
643 }
const std::string name
Definition: Setup.h:22

◆ e_from_T_v() [2/2]

void SinglePhaseFluidProperties::e_from_T_v ( Real  T,
Real  v,
Real &  e,
Real &  de_dT,
Real &  de_dv 
) const
virtualinherited

Specific internal energy and its derivatives from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume
[out]especific internal energy (J/kg)
[out]de_dTderivative of specific internal energy w.r.t. temperature
[out]de_dvderivative of specific internal energy w.r.t. specific volume

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 657 of file SinglePhaseFluidProperties.C.

658 {
659  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
660 }
const std::string name
Definition: Setup.h:22

◆ e_from_v_h() [1/2]

Real SinglePhaseFluidProperties::e_from_v_h ( Real  v,
Real  h 
) const
virtualinherited

Specific internal energy as a function of specific volume and specific enthalpy.

Parameters
[in]vspecific volume
[in]hspecific enthalpy

Reimplemented in StiffenedGasFluidProperties, and IdealGasFluidProperties.

Definition at line 120 of file SinglePhaseFluidProperties.C.

Referenced by SinglePhaseFluidProperties::T_from_p_h().

121 {
122  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
123 }
const std::string name
Definition: Setup.h:22

◆ e_from_v_h() [2/2]

void SinglePhaseFluidProperties::e_from_v_h ( Real  v,
Real  h,
Real &  e,
Real &  de_dv,
Real &  de_dh 
) const
virtualinherited

Specific internal energy and derivatives as a function of specific volume and specific enthalpy.

Parameters
[in]vspecific volume
[in]hspecific enthalpy
[out]de_dvderivative of specific internal energy w.r.t. specific volume
[out]de_dhderivative of specific internal energy w.r.t. specific enthalpy

Reimplemented in StiffenedGasFluidProperties, and IdealGasFluidProperties.

Definition at line 126 of file SinglePhaseFluidProperties.C.

127 {
128  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
129 }
const std::string name
Definition: Setup.h:22

◆ e_spndl_from_v()

Real SinglePhaseFluidProperties::e_spndl_from_v ( Real  v) const
virtualinherited

Specific internal energy from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume

Reimplemented in StiffenedGasFluidProperties.

Definition at line 645 of file SinglePhaseFluidProperties.C.

Referenced by IdealRealGasMixtureFluidProperties::p_T_from_v_e().

646 {
647  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
648 }
const std::string name
Definition: Setup.h:22

◆ execute()

virtual void FluidProperties::execute ( )
inlinefinalvirtualinherited

Definition at line 27 of file FluidProperties.h.

27 {}

◆ finalize()

virtual void FluidProperties::finalize ( )
inlinefinalvirtualinherited

Definition at line 29 of file FluidProperties.h.

29 {}

◆ fluidName()

std::string HydrogenFluidProperties::fluidName ( ) const
overridevirtual

Fluid name.

Returns
string representing fluid name

Reimplemented from SinglePhaseFluidProperties.

Definition at line 39 of file HydrogenFluidProperties.C.

40 {
41  return "hydrogen";
42 }

◆ g_from_v_e()

Real SinglePhaseFluidProperties::g_from_v_e ( Real  v,
Real  e 
) const
virtualinherited

Gibbs free energy from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy

Reimplemented in StiffenedGasFluidProperties, and IdealGasFluidProperties.

Definition at line 722 of file SinglePhaseFluidProperties.C.

Referenced by FluidPropertiesMaterial::computeQpProperties().

723 {
724  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
725 }
const std::string name
Definition: Setup.h:22

◆ gamma_from_p_T()

Real SinglePhaseFluidProperties::gamma_from_p_T ( Real  pressure,
Real  temperature 
) const
virtualinherited

Adiabatic index - ratio of specific heats.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
Returns
gamma (-)

Definition at line 262 of file SinglePhaseFluidProperties.C.

263 {
264  return cp_from_p_T(p, T) / cv_from_p_T(p, T);
265 }
virtual Real cv_from_p_T(Real pressure, Real temperature) const
Isochoric specific heat.
virtual Real cp_from_p_T(Real pressure, Real temperature) const
Isobaric specific heat capacity.

◆ h()

Real SinglePhaseFluidProperties::h ( Real  p,
Real  T 
) const
virtualinherited

◆ h_dpT()

void SinglePhaseFluidProperties::h_dpT ( Real  pressure,
Real  temperature,
Real &  h,
Real &  dh_dp,
Real &  dh_dT 
) const
virtualinherited

Definition at line 603 of file SinglePhaseFluidProperties.C.

604 {
605  mooseDeprecated(name(), ": h_dpT() is deprecated. Use h_from_p_T() instead");
606 
607  h_from_p_T(p, T, h, dh_dp, dh_dT);
608 }
virtual Real h(Real p, Real T) const
const std::string name
Definition: Setup.h:22
virtual Real h_from_p_T(Real p, Real T) const
Specific enthalpy from pressure and temperature.

◆ h_from_p_T() [1/2]

Real HelmholtzFluidProperties::h_from_p_T ( Real  p,
Real  T 
) const
overridevirtualinherited

Specific enthalpy from pressure and temperature.

Parameters
[in]ppressure (Pa)
[in]Ttemperature (K)
Returns
h (J/kg)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 185 of file HelmholtzFluidProperties.C.

Referenced by HelmholtzFluidProperties::h_from_p_T().

186 {
187  // Require density first
188  const Real density = rho_from_p_T(pressure, temperature);
189  // Scale the input density and temperature
190  const Real delta = density / criticalDensity();
191  const Real tau = criticalTemperature() / temperature;
192 
193  return _R * temperature * (tau * dalpha_dtau(delta, tau) + delta * dalpha_ddelta(delta, tau)) /
194  molarMass();
195 }
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real dalpha_ddelta(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt delta.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real dalpha_dtau(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt tau.
virtual Real criticalDensity() const
Critical density.
const std::string pressure
Definition: NS.h:26

◆ h_from_p_T() [2/2]

void HelmholtzFluidProperties::h_from_p_T ( Real  p,
Real  T,
Real &  h,
Real &  dh_dp,
Real &  dh_dT 
) const
overridevirtualinherited

Specific enthalpy and its derivatives from pressure and temperature.

Parameters
[in]ppressure (Pa)
[in]Ttemperature (K)
[out]hspecific enthalpy (J/kg)
[out]dh_dpderivative of specific enthalpy w.r.t. pressure
[out]dh_dTderivative of specific enthalpy w.r.t. temperature

Reimplemented from SinglePhaseFluidProperties.

Definition at line 198 of file HelmholtzFluidProperties.C.

200 {
201  h = this->h_from_p_T(pressure, temperature);
202 
203  // Require density first
204  const Real density = rho_from_p_T(pressure, temperature);
205  // Scale the input density and temperature
206  const Real delta = density / criticalDensity();
207  const Real tau = criticalTemperature() / temperature;
208 
209  const Real da_dd = dalpha_ddelta(delta, tau);
210  const Real d2a_dd2 = d2alpha_ddelta2(delta, tau);
211  const Real d2a_ddt = d2alpha_ddeltatau(delta, tau);
212 
213  dh_dp = (da_dd + delta * d2a_dd2 + tau * d2a_ddt) / (density * (2.0 * da_dd + delta * d2a_dd2));
214  dh_dT = _R *
215  (delta * da_dd * (1.0 - tau * d2a_ddt / da_dd) * (1.0 - tau * d2a_ddt / da_dd) /
216  (2.0 + delta * d2a_dd2 / da_dd) -
217  tau * tau * d2alpha_dtau2(delta, tau)) /
218  molarMass();
219 }
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta and tau.
virtual Real d2alpha_dtau2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt tau.
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
virtual Real h(Real p, Real T) const
const std::string temperature
Definition: NS.h:27
virtual Real d2alpha_ddelta2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta.
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real dalpha_ddelta(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt delta.
virtual Real h_from_p_T(Real pressure, Real temperature) const override
Specific enthalpy from pressure and temperature.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real criticalDensity() const
Critical density.
const std::string pressure
Definition: NS.h:26

◆ h_from_T_v() [1/2]

Real SinglePhaseFluidProperties::h_from_T_v ( Real  T,
Real  v 
) const
virtualinherited

Specific enthalpy from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 673 of file SinglePhaseFluidProperties.C.

Referenced by IdealRealGasMixtureFluidProperties::cp_from_p_T(), and IdealRealGasMixtureFluidProperties::cp_from_T_v().

674 {
675  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
676 }
const std::string name
Definition: Setup.h:22

◆ h_from_T_v() [2/2]

void SinglePhaseFluidProperties::h_from_T_v ( Real  T,
Real  v,
Real &  h,
Real &  dh_dT,
Real &  dh_dv 
) const
virtualinherited

Specific enthalpy and its derivatives from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume
[out]hspecific enthalpy (J/kg)
[out]dh_dTderivative of specific enthalpy w.r.t. temperature
[out]dh_dvderivative of specific enthalpy w.r.t. specific volume

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 679 of file SinglePhaseFluidProperties.C.

680 {
681  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
682 }
const std::string name
Definition: Setup.h:22

◆ henryConstant() [1/2]

Real HydrogenFluidProperties::henryConstant ( Real  temperature) const
overridevirtual

Henry's law constant for dissolution in water.

Parameters
temperaturefluid temperature (K)
Returns
Henry's constant

Reimplemented from SinglePhaseFluidProperties.

Definition at line 272 of file HydrogenFluidProperties.C.

273 {
274  return henryConstantIAPWS(temperature, -4.73284, 6.08954, 6.06066);
275 }
const std::string temperature
Definition: NS.h:27
virtual Real henryConstantIAPWS(Real temperature, Real A, Real B, Real C) const
IAPWS formulation of Henry&#39;s law constant for dissolution in water From Guidelines on the Henry&#39;s con...

◆ henryConstant() [2/2]

void HydrogenFluidProperties::henryConstant ( Real  temperature,
Real &  Kh,
Real &  dKh_dT 
) const
overridevirtual

Henry's law constant for dissolution in water and derivative wrt temperature.

Parameters
temperaturefluid temperature (K)
[out]KhHenry's constant
[out]dKh_dTderivative of Kh wrt temperature

Reimplemented from SinglePhaseFluidProperties.

Definition at line 278 of file HydrogenFluidProperties.C.

279 {
280  henryConstantIAPWS(temperature, Kh, dKh_dT, -4.73284, 6.08954, 6.06066);
281 }
const std::string temperature
Definition: NS.h:27
virtual Real henryConstantIAPWS(Real temperature, Real A, Real B, Real C) const
IAPWS formulation of Henry&#39;s law constant for dissolution in water From Guidelines on the Henry&#39;s con...

◆ henryConstant_dT()

void SinglePhaseFluidProperties::henryConstant_dT ( Real  temperature,
Real &  Kh,
Real &  dKh_dT 
) const
virtualinherited

Definition at line 379 of file SinglePhaseFluidProperties.C.

380 {
381  mooseDeprecated(name(), ": henryConstant_dT() is deprecated. Use henryConstant() instead");
382 
383  henryConstant(T, Kh, dKh_dT);
384 }
const std::string name
Definition: Setup.h:22
virtual Real henryConstant(Real temperature) const
Henry&#39;s law constant for dissolution in water.

◆ henryConstantIAPWS() [1/2]

Real SinglePhaseFluidProperties::henryConstantIAPWS ( Real  temperature,
Real  A,
Real  B,
Real  C 
) const
protectedvirtualinherited

IAPWS formulation of Henry's law constant for dissolution in water From Guidelines on the Henry's constant and vapour liquid distribution constant for gases in H20 and D20 at high temperatures, IAPWS (2004)

Definition at line 274 of file SinglePhaseFluidProperties.C.

Referenced by MethaneFluidProperties::henryConstant(), NitrogenFluidProperties::henryConstant(), henryConstant(), CO2FluidProperties::henryConstant(), and SinglePhaseFluidProperties::henryConstantIAPWS_dT().

275 {
276  const Real Tr = T / 647.096;
277  const Real tau = 1.0 - Tr;
278 
279  const Real lnkh =
280  A / Tr + B * std::pow(tau, 0.355) / Tr + C * std::pow(Tr, -0.41) * std::exp(tau);
281 
282  // The vapor pressure used in this formulation
283  const std::vector<Real> a{
284  -7.85951783, 1.84408259, -11.7866497, 22.6807411, -15.9618719, 1.80122502};
285  const std::vector<Real> b{1.0, 1.5, 3.0, 3.5, 4.0, 7.5};
286  Real sum = 0.0;
287 
288  for (std::size_t i = 0; i < a.size(); ++i)
289  sum += a[i] * std::pow(tau, b[i]);
290 
291  return 22.064e6 * std::exp(sum / Tr) * std::exp(lnkh);
292 }
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)

◆ henryConstantIAPWS() [2/2]

void SinglePhaseFluidProperties::henryConstantIAPWS ( Real  temperature,
Real &  Kh,
Real &  dKh_dT,
Real  A,
Real  B,
Real  C 
) const
protectedvirtualinherited

Definition at line 295 of file SinglePhaseFluidProperties.C.

297 {
298  const Real pc = 22.064e6;
299  const Real Tc = 647.096;
300 
301  const Real Tr = T / Tc;
302  const Real tau = 1.0 - Tr;
303 
304  const Real lnkh =
305  A / Tr + B * std::pow(tau, 0.355) / Tr + C * std::pow(Tr, -0.41) * std::exp(tau);
306  const Real dlnkh_dT =
307  (-A / Tr / Tr - B * std::pow(tau, 0.355) / Tr / Tr - 0.355 * B * std::pow(tau, -0.645) / Tr -
308  0.41 * C * std::pow(Tr, -1.41) * std::exp(tau) - C * std::pow(Tr, -0.41) * std::exp(tau)) /
309  Tc;
310 
311  // The vapor pressure used in this formulation
312  const std::vector<Real> a{
313  -7.85951783, 1.84408259, -11.7866497, 22.6807411, -15.9618719, 1.80122502};
314  const std::vector<Real> b{1.0, 1.5, 3.0, 3.5, 4.0, 7.5};
315  Real sum = 0.0;
316  Real dsum = 0.0;
317 
318  for (std::size_t i = 0; i < a.size(); ++i)
319  {
320  sum += a[i] * std::pow(tau, b[i]);
321  dsum += a[i] * b[i] * std::pow(tau, b[i] - 1.0);
322  }
323 
324  const Real p = pc * std::exp(sum / Tr);
325  const Real dp_dT = -p / Tc / Tr * (sum / Tr + dsum);
326 
327  // Henry's constant and its derivative wrt temperature
328  Kh = p * std::exp(lnkh);
329  dKh_dT = (p * dlnkh_dT + dp_dT) * std::exp(lnkh);
330 }
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)

◆ henryConstantIAPWS_dT()

void SinglePhaseFluidProperties::henryConstantIAPWS_dT ( Real  temperature,
Real &  Kh,
Real &  dKh_dT,
Real  A,
Real  B,
Real  C 
) const
protectedvirtualinherited

Definition at line 333 of file SinglePhaseFluidProperties.C.

335 {
336  mooseDeprecated(name(),
337  ":henryConstantIAPWS_dT() is deprecated. Use henryConstantIAPWS() instead");
338 
339  henryConstantIAPWS(T, Kh, dKh_dT, A, B, C);
340 }
const std::string name
Definition: Setup.h:22
virtual Real henryConstantIAPWS(Real temperature, Real A, Real B, Real C) const
IAPWS formulation of Henry&#39;s law constant for dissolution in water From Guidelines on the Henry&#39;s con...

◆ initialize()

virtual void FluidProperties::initialize ( )
inlinefinalvirtualinherited

Definition at line 28 of file FluidProperties.h.

28 {}

◆ k()

Real SinglePhaseFluidProperties::k ( Real  pressure,
Real  temperature 
) const
virtualinherited

◆ k_dpT()

void SinglePhaseFluidProperties::k_dpT ( Real  pressure,
Real  temperature,
Real &  k,
Real &  dk_dp,
Real &  dk_dT 
) const
virtualinherited

Definition at line 579 of file SinglePhaseFluidProperties.C.

580 {
581  mooseDeprecated(name(), ": k_dpT() is deprecated. Use k_from_p_T() instead");
582 
583  k_from_p_T(p, T, k, dk_dp, dk_dT);
584 }
virtual Real k(Real pressure, Real temperature) const
const std::string name
Definition: Setup.h:22
virtual Real k_from_p_T(Real pressure, Real temperature) const
Thermal conductivity.

◆ k_from_p_T() [1/2]

Real HydrogenFluidProperties::k_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Thermal conductivity.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
Returns
thermal conductivity (W/m/K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 250 of file HydrogenFluidProperties.C.

Referenced by k_from_p_T().

251 {
252  // Require density first
253  const Real density = rho_from_p_T(pressure, temperature);
255 }
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
virtual Real k_from_rho_T(Real density, Real temperature) const override
Thermal conductivity as a function of density and temperature.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
const std::string pressure
Definition: NS.h:26

◆ k_from_p_T() [2/2]

void HydrogenFluidProperties::k_from_p_T ( Real  pressure,
Real  temperature,
Real &  k,
Real &  dk_dp,
Real &  dk_dT 
) const
overridevirtual

Thermal conductivity and its derivatives wrt pressure and temperature.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
[out]thermalconductivity (W/m/K)
[out]derivativeof thermal conductivity wrt pressure
[out]derivativeof thermal conductivity wrt temperature

Reimplemented from SinglePhaseFluidProperties.

Definition at line 258 of file HydrogenFluidProperties.C.

260 {
261  k = this->k_from_p_T(pressure, temperature);
262  // Calculate derivatives using finite differences
263  const Real eps = 1.0e-6;
264  const Real peps = pressure * eps;
265  const Real Teps = temperature * eps;
266 
267  dk_dp = (this->k_from_p_T(pressure + peps, temperature) - k) / peps;
268  dk_dT = (this->k_from_p_T(pressure, temperature + Teps) - k) / Teps;
269 }
virtual Real k_from_p_T(Real pressure, Real temperature) const override
Thermal conductivity.
const std::string temperature
Definition: NS.h:27
virtual Real k(Real pressure, Real temperature) const
const std::string pressure
Definition: NS.h:26

◆ k_from_rho_T()

Real HydrogenFluidProperties::k_from_rho_T ( Real  density,
Real  temperature 
) const
overridevirtual

Thermal conductivity as a function of density and temperature.

Parameters
densityfluid density (kg/m^3)
temperaturefluid temperature (K)
Returns
thermal conductivity (W/m/K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 219 of file HydrogenFluidProperties.C.

Referenced by k_from_p_T().

220 {
221  // // Scaled variables
222  const Real Tr = temperature / 33.145;
223  const Real rhor = density / 31.262;
224 
225  // The ideal gas component
226  Real sum1 = 0.0;
227  for (std::size_t i = 0; i < _a1k.size(); ++i)
228  sum1 += _a1k[i] * MathUtils::pow(Tr, i);
229 
230  Real sum2 = 0.0;
231  for (std::size_t i = 0; i < _a2k.size(); ++i)
232  sum2 += _a2k[i] * MathUtils::pow(Tr, i);
233 
234  const Real lambda0 = sum1 / sum2;
235 
236  // The excess contribution due to density
237  Real lambdah = 0.0;
238  for (std::size_t i = 0; i < _b1k.size(); ++i)
239  lambdah += (_b1k[i] + _b2k[i] * Tr) * MathUtils::pow(rhor, i + 1);
240 
241  // The critical enhancement
242  const Real lambdac = 6.24e-4 / (-2.58e-7 + std::abs(Tr - 1.0)) *
243  std::exp(-MathUtils::pow(0.837 * (rhor - 1.0), 2));
244 
245  // The thermal conductivity
246  return lambda0 + lambdah + lambdac;
247 }
const std::array< Real, 5 > _b2k
const std::array< Real, 4 > _a2k
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
const std::array< Real, 5 > _b1k
const std::array< Real, 7 > _a1k
Coefficients for thermal conductivity.
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)

◆ k_from_v_e()

Real SinglePhaseFluidProperties::k_from_v_e ( Real  v,
Real  e 
) const
virtualinherited

Thermal conductivity from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 82 of file SinglePhaseFluidProperties.C.

Referenced by FluidPropertiesMaterial::computeQpProperties(), GeneralVaporMixtureFluidProperties::k_from_p_T(), IdealRealGasMixtureFluidProperties::k_from_p_T(), and IdealRealGasMixtureFluidProperties::k_from_T_v().

83 {
84  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
85 }
const std::string name
Definition: Setup.h:22

◆ molarMass()

Real HydrogenFluidProperties::molarMass ( ) const
overridevirtual

Molar mass [kg/mol].

Returns
molar mass

Reimplemented from SinglePhaseFluidProperties.

Definition at line 45 of file HydrogenFluidProperties.C.

46 {
47  return _Mh2;
48 }
const Real _Mh2
Hydrogen molar mass (kg/mol)

◆ mu()

Real SinglePhaseFluidProperties::mu ( Real  pressure,
Real  temperature 
) const
virtualinherited

◆ mu_dpT()

void SinglePhaseFluidProperties::mu_dpT ( Real  pressure,
Real  temperature,
Real &  mu,
Real &  dmu_dp,
Real &  dmu_dT 
) const
virtualinherited

Dynamic viscosity and its derivatives wrt pressure and temperature.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
[out]muviscosity (Pa.s)
[out]dmu_dpderivative of viscosity wrt pressure
[out]dmu_dTderivative of viscosity wrt temperature

Definition at line 502 of file SinglePhaseFluidProperties.C.

503 {
504  mooseDeprecated(name(), ": mu_dpT() is deprecated. Use mu_from_p_T() instead");
505 
506  mu_from_p_T(p, T, mu, dmu_dp, dmu_dT);
507 }
virtual Real mu_from_p_T(Real pressure, Real temperature) const
virtual Real mu(Real pressure, Real temperature) const
Dynamic viscosity.
const std::string name
Definition: Setup.h:22

◆ mu_drhoT_from_rho_T()

void SinglePhaseFluidProperties::mu_drhoT_from_rho_T ( Real  density,
Real  temperature,
Real  ddensity_dT,
Real &  mu,
Real &  dmu_drho,
Real &  dmu_dT 
) const
virtualinherited

Definition at line 354 of file SinglePhaseFluidProperties.C.

356 {
357  mooseDeprecated(name(), ":mu_drhoT_from_rho_T() is deprecated. Use mu_from_rho_T() instead");
358 
359  mu_from_rho_T(rho, T, drho_dT, mu, dmu_drho, dmu_dT);
360 }
virtual Real mu_from_rho_T(Real density, Real temperature) const
Dynamic viscosity as a function of density and temperature.
virtual Real mu(Real pressure, Real temperature) const
Dynamic viscosity.
virtual Real rho(Real p, Real T) const
const std::string name
Definition: Setup.h:22

◆ mu_from_p_T() [1/2]

Real HydrogenFluidProperties::mu_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Reimplemented from SinglePhaseFluidProperties.

Definition at line 173 of file HydrogenFluidProperties.C.

174 {
175  // Require density first
176  const Real density = rho_from_p_T(pressure, temperature);
178 }
virtual Real mu_from_rho_T(Real density, Real temperature) const override
Dynamic viscosity as a function of density and temperature.
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
const std::string pressure
Definition: NS.h:26

◆ mu_from_p_T() [2/2]

void HydrogenFluidProperties::mu_from_p_T ( Real  pressure,
Real  temperature,
Real &  mu,
Real &  dmu_dp,
Real &  dmu_dT 
) const
overridevirtual

Reimplemented from SinglePhaseFluidProperties.

Definition at line 181 of file HydrogenFluidProperties.C.

183 {
184  Real rho, drho_dp, drho_dT;
185  rho_from_p_T(pressure, temperature, rho, drho_dp, drho_dT);
186 
187  Real dmu_drho;
188  mu_from_rho_T(rho, temperature, drho_dT, mu, dmu_drho, dmu_dT);
189  dmu_dp = dmu_drho * drho_dp;
190 }
virtual Real mu_from_rho_T(Real density, Real temperature) const override
Dynamic viscosity as a function of density and temperature.
virtual Real mu(Real pressure, Real temperature) const
Dynamic viscosity.
const std::string temperature
Definition: NS.h:27
virtual Real rho(Real p, Real T) const
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
const std::string pressure
Definition: NS.h:26

◆ mu_from_rho_T() [1/2]

Real HydrogenFluidProperties::mu_from_rho_T ( Real  density,
Real  temperature 
) const
overridevirtual

Dynamic viscosity as a function of density and temperature.

Parameters
densityfluid density (kg/m^3)
temperaturefluid temperature (K)
Returns
viscosity (Pa.s)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 81 of file HydrogenFluidProperties.C.

Referenced by mu_from_p_T(), and rho_mu_from_p_T().

82 {
83  // Scaled variables
84  const Real Tstar = temperature / 30.41;
85  const Real logTstar = std::log(Tstar);
86  const Real Tr = temperature / _T_critical;
87  const Real rhor = density / 90.5;
88 
89  // Ideal gas component
90  Real sum = 0.0;
91  for (std::size_t i = 0; i < _amu.size(); ++i)
92  sum += _amu[i] * MathUtils::pow(logTstar, i);
93 
94  const Real mu0 =
95  0.021357 * std::sqrt(1000.0 * _Mh2 * temperature) / (0.297 * 0.297 * std::exp(sum));
96 
97  // The excess contribution due to density
98  Real sumr = 0.0;
99  for (std::size_t i = 0; i < _bmu.size(); ++i)
100  sumr += _bmu[i];
101 
102  const Real mu1 = MathUtils::pow(0.297, 3) * sumr * mu0 / Tstar;
103 
104  // The viscosity is then
105  const Real mu =
106  mu0 + mu1 * density +
107  _cmu[0] * rhor * rhor *
108  std::exp(_cmu[1] * Tr + _cmu[2] / Tr + _cmu[3] * rhor * rhor / (_cmu[4] + Tr) +
109  _cmu[5] * MathUtils::pow(rhor, 6));
110 
111  return mu * 1.0e-6;
112 }
const std::array< Real, 6 > _cmu
virtual Real mu(Real pressure, Real temperature) const
Dynamic viscosity.
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
const std::array< Real, 5 > _amu
Coefficients for viscosity.
const Real _Mh2
Hydrogen molar mass (kg/mol)
const Real _T_critical
Critical temperature (K)
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const std::array< Real, 7 > _bmu

◆ mu_from_rho_T() [2/2]

void HydrogenFluidProperties::mu_from_rho_T ( Real  density,
Real  temperature,
Real  ddensity_dT,
Real &  mu,
Real &  dmu_drho,
Real &  dmu_dT 
) const
overridevirtual

Dynamic viscosity and its derivatives wrt density and temperature.

Parameters
densityfluid density (kg/m^3)
temperaturefluid temperature (K)
ddensity_dTderivative of density wrt temperature
[out]muviscosity (Pa.s)
[out]dmu_drhoderivative of viscosity wrt density
[out]dmu_dTderivative of viscosity wrt temperature

Reimplemented from SinglePhaseFluidProperties.

Definition at line 115 of file HydrogenFluidProperties.C.

121 {
122  // Scaled variables
123  const Real Tstar = temperature / 30.41;
124  const Real logTstar = std::log(Tstar);
125  const Real Tr = temperature / _T_critical;
126  const Real rhor = density / 90.5;
127  const Real drhor_drho = 1.0 / 90.5;
128  const Real dTr_dT = 1.0 / _T_critical;
129 
130  // The dilute gas component
131  Real sum = 0.0, dsum_dT = 0.0;
132  for (std::size_t i = 0; i < _amu.size(); ++i)
133  {
134  sum += _amu[i] * MathUtils::pow(logTstar, i);
135  dsum_dT += i * _amu[i] * MathUtils::pow(logTstar, i) / (temperature * logTstar);
136  }
137 
138  const Real mu0 =
139  0.021357 * std::sqrt(1000.0 * _Mh2 * temperature) / (0.297 * 0.297 * std::exp(sum));
140  const Real dmu0_dT = 21.357 * _Mh2 * (1.0 - 2.0 * temperature * dsum_dT) * std::exp(-sum) /
141  (2.0 * std::sqrt(1000.0 * _Mh2 * temperature) * 0.297 * 0.297);
142 
143  // The excess contribution due to density
144  Real sumr = 0.0;
145  for (std::size_t i = 0; i < _bmu.size(); ++i)
146  sumr += _bmu[i];
147 
148  const Real mu1 = MathUtils::pow(0.297, 3) * sumr * mu0 / Tstar;
149  const Real dmu1_dT =
150  MathUtils::pow(0.297, 3) * sumr * (dmu0_dT / Tstar - mu0 / (30.41 * Tstar * Tstar));
151 
152  // The viscosity and derivatives are then
153  const Real exponent = _cmu[1] * Tr + _cmu[2] / Tr + _cmu[3] * rhor * rhor / (_cmu[4] + Tr) +
154  _cmu[5] * MathUtils::pow(rhor, 6);
155  const Real dexponent_drho =
156  (2.0 * _cmu[3] * rhor / (_cmu[4] + Tr) + 6.0 * _cmu[5] * MathUtils::pow(rhor, 5)) *
157  drhor_drho;
158  const Real dexponent_dT =
159  (_cmu[1] - _cmu[2] / Tr / Tr - _cmu[3] * rhor * rhor / (_cmu[4] + Tr) / (_cmu[4] + Tr)) *
160  dTr_dT;
161 
162  mu = (mu0 + mu1 * density + _cmu[0] * rhor * rhor * std::exp(exponent)) * 1.0e-6;
163  dmu_drho =
164  (mu1 + _cmu[0] * rhor * std::exp(exponent) * (2.0 * drhor_drho + rhor * dexponent_drho)) *
165  1.0e-6;
166  dmu_dT =
167  (dmu0_dT + density * dmu1_dT + _cmu[0] * rhor * rhor * dexponent_dT * std::exp(exponent)) *
168  1.0e-6 +
169  dmu_drho * ddensity_dT;
170 }
const std::array< Real, 6 > _cmu
virtual Real mu(Real pressure, Real temperature) const
Dynamic viscosity.
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
const std::array< Real, 5 > _amu
Coefficients for viscosity.
const Real _Mh2
Hydrogen molar mass (kg/mol)
const Real _T_critical
Critical temperature (K)
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
virtual Real e(Real pressure, Real temperature) const
const std::array< Real, 7 > _bmu

◆ mu_from_v_e()

Real SinglePhaseFluidProperties::mu_from_v_e ( Real  v,
Real  e 
) const
virtualinherited

Dynamic viscosity from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 77 of file SinglePhaseFluidProperties.C.

Referenced by FluidPropertiesMaterial::computeQpProperties(), GeneralVaporMixtureFluidProperties::mu_from_p_T(), IdealRealGasMixtureFluidProperties::mu_from_p_T(), and IdealRealGasMixtureFluidProperties::mu_from_T_v().

78 {
79  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
80 }
const std::string name
Definition: Setup.h:22

◆ p_from_h_s() [1/2]

Real SinglePhaseFluidProperties::p_from_h_s ( Real  h,
Real  s 
) const
virtualinherited

Pressure from specific enthalpy and specific entropy.

Parameters
[in]hspecific enthalpy
[in]sspecific entropy

Reimplemented in StiffenedGasFluidProperties, and IdealGasFluidProperties.

Definition at line 711 of file SinglePhaseFluidProperties.C.

Referenced by StagnationPressureAux::computeValue(), and StagnationTemperatureAux::computeValue().

712 {
713  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
714 }
const std::string name
Definition: Setup.h:22

◆ p_from_h_s() [2/2]

void SinglePhaseFluidProperties::p_from_h_s ( Real  h,
Real  s,
Real &  p,
Real &  dp_dh,
Real &  dp_ds 
) const
virtualinherited

Pressure and its derivatives from specific enthalpy and specific entropy.

Parameters
[in]hspecific enthalpy
[in]sspecific entropy

Reimplemented in StiffenedGasFluidProperties, and IdealGasFluidProperties.

Definition at line 717 of file SinglePhaseFluidProperties.C.

718 {
719  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
720 }
const std::string name
Definition: Setup.h:22

◆ p_from_rho_T()

Real HelmholtzFluidProperties::p_from_rho_T ( Real  rho,
Real  T 
) const
virtualinherited

Pressure as a function of density and temperature.

Parameters
rhodensity (kg/m^3)
Ttemperature (K)
Returns
pressure (Pa)

Reimplemented in CO2FluidProperties.

Definition at line 222 of file HelmholtzFluidProperties.C.

Referenced by CO2FluidProperties::p_from_rho_T(), and HelmholtzFluidProperties::rho_from_p_T().

223 {
224  // Scale the input density and temperature
225  const Real delta = density / criticalDensity();
226  const Real tau = criticalTemperature() / temperature;
227 
228  return _R * density * temperature * delta * dalpha_ddelta(delta, tau) / molarMass();
229 }
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real dalpha_ddelta(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt delta.
virtual Real criticalDensity() const
Critical density.

◆ p_from_T_v() [1/2]

Real SinglePhaseFluidProperties::p_from_T_v ( Real  T,
Real  v 
) const
virtualinherited

Pressure from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 662 of file SinglePhaseFluidProperties.C.

Referenced by IdealRealGasMixtureFluidProperties::p_from_T_v().

663 {
664  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
665 }
const std::string name
Definition: Setup.h:22

◆ p_from_T_v() [2/2]

void SinglePhaseFluidProperties::p_from_T_v ( Real  T,
Real  v,
Real &  p,
Real &  dp_dT,
Real &  dp_dv 
) const
virtualinherited

Pressure and its derivatives from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume
[out]ppressure (Pa)
[out]dp_dTderivative of pressure w.r.t. temperature
[out]dp_dvderivative of pressure w.r.t. specific volume

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 668 of file SinglePhaseFluidProperties.C.

669 {
670  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
671 }
const std::string name
Definition: Setup.h:22

◆ p_from_v_e() [1/2]

Real SinglePhaseFluidProperties::p_from_v_e ( Real  v,
Real  e 
) const
virtualinherited

Pressure from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy

Reimplemented in IdealGasFluidProperties, StiffenedGasFluidProperties, and NaNInterfaceTestFluidProperties.

Definition at line 28 of file SinglePhaseFluidProperties.C.

Referenced by FluidPropertiesMaterial::computeQpProperties(), PressureAux::computeValue(), StagnationPressureAux::computeValue(), and StagnationTemperatureAux::computeValue().

29 {
30  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
31 }
const std::string name
Definition: Setup.h:22

◆ p_from_v_e() [2/2]

void SinglePhaseFluidProperties::p_from_v_e ( Real  v,
Real  e,
Real &  p,
Real &  dp_dv,
Real &  dp_de 
) const
virtualinherited

Pressure and its derivatives from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy
[out]ppressure
[out]dp_dvderivative of pressure w.r.t. specific volume
[out]dp_dederivative of pressure w.r.t. specific internal energy

Reimplemented in IdealGasFluidProperties, StiffenedGasFluidProperties, and NaNInterfaceTestFluidProperties.

Definition at line 34 of file SinglePhaseFluidProperties.C.

35 {
36  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
37 }
const std::string name
Definition: Setup.h:22

◆ pp_sat_from_p_T()

Real SinglePhaseFluidProperties::pp_sat_from_p_T ( Real  p,
Real  T 
) const
virtualinherited

Partial pressure at saturation in a gas mixture.

Parameters
[in]ppressure (Pa)
[in]Ttemperature (K)
Returns
pp_sat (Pa)

Reimplemented in StiffenedGasFluidProperties.

Definition at line 208 of file SinglePhaseFluidProperties.C.

Referenced by IdealRealGasMixtureFluidProperties::xs_prim_from_p_T().

209 {
210  mooseError(name(), ": pp_sat_from_p_T is not implemented");
211 }
const std::string name
Definition: Setup.h:22

◆ rho()

Real SinglePhaseFluidProperties::rho ( Real  p,
Real  T 
) const
virtualinherited

Definition at line 616 of file SinglePhaseFluidProperties.C.

Referenced by SinglePhaseFluidProperties::beta_from_p_T(), StiffenedGasFluidProperties::c2_from_p_rho(), StiffenedGasFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), NaClFluidProperties::e_from_p_T(), SinglePhaseFluidProperties::e_from_p_T(), IdealGasFluidProperties::h_from_p_T(), Water97FluidProperties::k_from_p_T(), SinglePhaseFluidProperties::mu_drhoT_from_rho_T(), CO2FluidProperties::mu_from_p_T(), NitrogenFluidProperties::mu_from_p_T(), mu_from_p_T(), Water97FluidProperties::mu_from_p_T(), SinglePhaseFluidProperties::rho_dpT(), IdealGasFluidPropertiesPT::rho_e_dpT(), SinglePhaseFluidProperties::rho_e_dpT(), SinglePhaseFluidProperties::rho_e_from_p_T(), IdealGasFluidProperties::rho_from_p_s(), StiffenedGasFluidProperties::rho_from_p_s(), HelmholtzFluidProperties::rho_from_p_T(), CO2FluidProperties::rho_from_p_T(), StiffenedGasFluidProperties::rho_from_p_T(), IdealGasFluidPropertiesPT::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), Water97FluidProperties::rho_from_p_T(), NaClFluidProperties::rho_from_p_T(), SimpleFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), SinglePhaseFluidProperties::rho_mu(), SinglePhaseFluidProperties::rho_mu_dpT(), NitrogenFluidProperties::rho_mu_from_p_T(), rho_mu_from_p_T(), CO2FluidProperties::rho_mu_from_p_T(), IdealGasFluidPropertiesPT::rho_mu_from_p_T(), Water97FluidProperties::rho_mu_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), SinglePhaseFluidProperties::T_from_p_h(), and SinglePhaseFluidProperties::v_from_p_T().

617 {
618  mooseDeprecated(name(), ": rho() is deprecated. Use rho_from_p_T() instead");
619 
620  return rho_from_p_T(p, T);
621 }
virtual Real rho_from_p_T(Real p, Real T) const
Density from pressure and temperature.
const std::string name
Definition: Setup.h:22

◆ rho_dpT()

void SinglePhaseFluidProperties::rho_dpT ( Real  pressure,
Real  temperature,
Real &  rho,
Real &  drho_dp,
Real &  drho_dT 
) const
virtualinherited

Definition at line 406 of file SinglePhaseFluidProperties.C.

408 {
409  mooseDeprecated(name(), ": rho_dpT() is deprecated. Use rho_from_p_T() instead");
410 
411  rho_from_p_T(p, T, rho, drho_dp, drho_dT);
412 }
virtual Real rho(Real p, Real T) const
virtual Real rho_from_p_T(Real p, Real T) const
Density from pressure and temperature.
const std::string name
Definition: Setup.h:22

◆ rho_e_dpT()

void SinglePhaseFluidProperties::rho_e_dpT ( Real  pressure,
Real  temperature,
Real &  rho,
Real &  drho_dp,
Real &  drho_dT,
Real &  e,
Real &  de_dp,
Real &  de_dT 
) const
virtualinherited

Reimplemented in IdealGasFluidPropertiesPT.

Definition at line 445 of file SinglePhaseFluidProperties.C.

453 {
454  mooseDeprecated(name(), ": rho_e_dpT() is deprecated. Use rho_e_from_p_T() instead");
455 
456  rho_e_from_p_T(p, T, rho, drho_dp, drho_dT, e, de_dp, de_dT);
457 }
virtual Real rho(Real p, Real T) const
virtual void rho_e_from_p_T(Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT, Real &e, Real &de_dp, Real &de_dT) const
Density and internal energy and their derivatives wrt pressure and temperature.
const std::string name
Definition: Setup.h:22
virtual Real e(Real pressure, Real temperature) const

◆ rho_e_from_p_T()

void SinglePhaseFluidProperties::rho_e_from_p_T ( Real  pressure,
Real  temperature,
Real &  rho,
Real &  drho_dp,
Real &  drho_dT,
Real &  e,
Real &  de_dp,
Real &  de_dT 
) const
virtualinherited

Density and internal energy and their derivatives wrt pressure and temperature.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
[out]rhodensity (kg/m^3)
[out]drho_dpderivative of density wrt pressure
[out]drho_dTderivative of density wrt temperature
[out]einternal energy (J/kg)
[out]de_dpderivative of internal energy wrt pressure
[out]de_dTderivative of internal energy wrt temperature

Definition at line 431 of file SinglePhaseFluidProperties.C.

Referenced by SinglePhaseFluidProperties::rho_e_dpT().

439 {
440  rho_from_p_T(p, T, rho, drho_dp, drho_dT);
441  e_from_p_T(p, T, e, de_dp, de_dT);
442 }
virtual Real e_from_p_T(Real p, Real T) const
Internal energy from pressure and temperature.
virtual Real rho(Real p, Real T) const
virtual Real rho_from_p_T(Real p, Real T) const
Density from pressure and temperature.
virtual Real e(Real pressure, Real temperature) const

◆ rho_from_p_s() [1/2]

Real SinglePhaseFluidProperties::rho_from_p_s ( Real  p,
Real  s 
) const
virtualinherited

Density from pressure and specific entropy.

Parameters
[in]ppressure
[in]sspecific entropy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 109 of file SinglePhaseFluidProperties.C.

Referenced by StagnationTemperatureAux::computeValue(), and SinglePhaseFluidProperties::T_from_p_h().

110 {
111  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
112 }
const std::string name
Definition: Setup.h:22

◆ rho_from_p_s() [2/2]

void SinglePhaseFluidProperties::rho_from_p_s ( Real  p,
Real  s,
Real &  rho,
Real &  drho_dp,
Real &  drho_ds 
) const
virtualinherited

Density and its derivatives from pressure and specific entropy.

Parameters
[in]ppressure
[in]sspecific entropy
[out]rhodensity
[out]drho_dpderivative of density w.r.t. pressure
[out]drho_dsderivative of density w.r.t. specific entropy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 115 of file SinglePhaseFluidProperties.C.

116 {
117  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
118 }
const std::string name
Definition: Setup.h:22

◆ rho_from_p_T() [1/2]

Real HelmholtzFluidProperties::rho_from_p_T ( Real  p,
Real  T 
) const
overridevirtualinherited

Density from pressure and temperature.

Parameters
[in]ppressure (Pa)
[in]Ttemperature (K)
Returns
density (kg/m^3)

Reimplemented from SinglePhaseFluidProperties.

Reimplemented in CO2FluidProperties.

Definition at line 29 of file HelmholtzFluidProperties.C.

Referenced by HelmholtzFluidProperties::c_from_p_T(), HelmholtzFluidProperties::cp_from_p_T(), HelmholtzFluidProperties::cv_from_p_T(), HelmholtzFluidProperties::e_from_p_T(), HelmholtzFluidProperties::h_from_p_T(), NitrogenFluidProperties::k_from_p_T(), k_from_p_T(), NitrogenFluidProperties::mu_from_p_T(), CO2FluidProperties::mu_from_p_T(), mu_from_p_T(), HelmholtzFluidProperties::rho_from_p_T(), CO2FluidProperties::rho_from_p_T(), NitrogenFluidProperties::rho_mu_from_p_T(), rho_mu_from_p_T(), and HelmholtzFluidProperties::s_from_p_T().

30 {
31  Real density;
32  // Initial estimate of a bracketing interval for the density
33  Real lower_density = 1.0e-2;
34  Real upper_density = 100.0;
35 
36  // The density is found by finding the zero of the pressure
37  auto pressure_diff = [&pressure, &temperature, this](Real x) {
38  return this->p_from_rho_T(x, temperature) - pressure;
39  };
40 
41  BrentsMethod::bracket(pressure_diff, lower_density, upper_density);
42  density = BrentsMethod::root(pressure_diff, lower_density, upper_density);
43 
44  return density;
45 }
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
Real root(std::function< Real(Real)> const &f, Real x1, Real x2, Real tol=1.0e-12)
Finds the root of a function using Brent&#39;s method.
Definition: BrentsMethod.C:61
virtual Real p_from_rho_T(Real rho, Real T) const
Pressure as a function of density and temperature.
const std::string pressure
Definition: NS.h:26
void bracket(std::function< Real(Real)> const &f, Real &x1, Real &x2)
Function to bracket a root of a given function.
Definition: BrentsMethod.C:17

◆ rho_from_p_T() [2/2]

void HelmholtzFluidProperties::rho_from_p_T ( Real  p,
Real  T,
Real &  rho,
Real &  drho_dp,
Real &  drho_dT 
) const
overridevirtualinherited

Density and its derivatives from pressure and temperature.

Parameters
[in]ppressure (Pa)
[in]Ttemperature (K)
[out]rhodensity (kg/m^3)
[out]drho_dpderivative of density w.r.t. pressure
[out]drho_dTderivative of density w.r.t. temperature

Reimplemented from SinglePhaseFluidProperties.

Reimplemented in CO2FluidProperties.

Definition at line 48 of file HelmholtzFluidProperties.C.

50 {
52 
53  // Scale the density and temperature
54  const Real delta = rho / criticalDensity();
55  const Real tau = criticalTemperature() / temperature;
56  const Real da_dd = dalpha_ddelta(delta, tau);
57  const Real d2a_dd2 = d2alpha_ddelta2(delta, tau);
58 
59  drho_dp = molarMass() / (_R * temperature * delta * (2.0 * da_dd + delta * d2a_dd2));
60  drho_dT = rho * (tau * d2alpha_ddeltatau(delta, tau) - da_dd) / temperature /
61  (2.0 * da_dd + delta * d2a_dd2);
62 }
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta and tau.
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string temperature
Definition: NS.h:27
virtual Real d2alpha_ddelta2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta.
virtual Real rho(Real p, Real T) const
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real dalpha_ddelta(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt delta.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real criticalDensity() const
Critical density.
const std::string pressure
Definition: NS.h:26

◆ rho_mu()

void SinglePhaseFluidProperties::rho_mu ( Real  pressure,
Real  temperature,
Real &  rho,
Real &  mu 
) const
virtualinherited

Density and viscosity.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
[out]rhodensity (kg/m^3)
[out]muviscosity (Pa.s)

Definition at line 516 of file SinglePhaseFluidProperties.C.

517 {
518  mooseDeprecated(name(), ": rho_mu() is deprecated. Use rho_mu_from_p_T() instead");
519 
520  rho_mu_from_p_T(p, T, rho, mu);
521 }
virtual Real mu(Real pressure, Real temperature) const
Dynamic viscosity.
virtual Real rho(Real p, Real T) const
const std::string name
Definition: Setup.h:22
virtual void rho_mu_from_p_T(Real pressure, Real temperature, Real &rho, Real &mu) const

◆ rho_mu_dpT()

void SinglePhaseFluidProperties::rho_mu_dpT ( Real  pressure,
Real  temperature,
Real &  rho,
Real &  drho_dp,
Real &  drho_dT,
Real &  mu,
Real &  dmu_dp,
Real &  dmu_dT 
) const
virtualinherited

Definition at line 531 of file SinglePhaseFluidProperties.C.

539 {
540  mooseDeprecated(name(), ": rho_mu_dpT() is deprecated. Use rho_mu_from_p_T() instead");
541 
542  rho_mu_from_p_T(p, T, rho, drho_dp, drho_dT, mu, dmu_dp, dmu_dT);
543 }
virtual Real mu(Real pressure, Real temperature) const
Dynamic viscosity.
virtual Real rho(Real p, Real T) const
const std::string name
Definition: Setup.h:22
virtual void rho_mu_from_p_T(Real pressure, Real temperature, Real &rho, Real &mu) const

◆ rho_mu_from_p_T() [1/2]

void HydrogenFluidProperties::rho_mu_from_p_T ( Real  pressure,
Real  temperature,
Real &  rho,
Real &  mu 
) const
overridevirtual

Reimplemented from SinglePhaseFluidProperties.

Definition at line 193 of file HydrogenFluidProperties.C.

197 {
200 }
virtual Real mu_from_rho_T(Real density, Real temperature) const override
Dynamic viscosity as a function of density and temperature.
virtual Real mu(Real pressure, Real temperature) const
Dynamic viscosity.
const std::string temperature
Definition: NS.h:27
virtual Real rho(Real p, Real T) const
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
const std::string pressure
Definition: NS.h:26

◆ rho_mu_from_p_T() [2/2]

void HydrogenFluidProperties::rho_mu_from_p_T ( Real  pressure,
Real  temperature,
Real &  rho,
Real &  drho_dp,
Real &  drho_dT,
Real &  mu,
Real &  dmu_dp,
Real &  dmu_dT 
) const
overridevirtual

Density and viscosity and their derivatives wrt pressure and temperature.

Parameters
pressurefluid pressure (Pa)
temperaturefluid temperature (K)
[out]rhodensity (kg/m^3)
[out]drho_dpderivative of density wrt pressure
[out]drho_dTderivative of density wrt temperature
[out]muviscosity (Pa.s)
[out]dmu_dpderivative of viscosity wrt pressure
[out]dmu_dTderivative of viscosity wrt temperature

Reimplemented from SinglePhaseFluidProperties.

Definition at line 203 of file HydrogenFluidProperties.C.

211 {
212  rho_from_p_T(pressure, temperature, rho, drho_dp, drho_dT);
213  Real dmu_drho;
214  mu_from_rho_T(rho, temperature, drho_dT, mu, dmu_drho, dmu_dT);
215  dmu_dp = dmu_drho * drho_dp;
216 }
virtual Real mu_from_rho_T(Real density, Real temperature) const override
Dynamic viscosity as a function of density and temperature.
virtual Real mu(Real pressure, Real temperature) const
Dynamic viscosity.
const std::string temperature
Definition: NS.h:27
virtual Real rho(Real p, Real T) const
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
const std::string pressure
Definition: NS.h:26

◆ s()

Real SinglePhaseFluidProperties::s ( Real  pressure,
Real  temperature 
) const
virtualinherited

◆ s_from_h_p() [1/2]

Real SinglePhaseFluidProperties::s_from_h_p ( Real  h,
Real  p 
) const
virtualinherited

Specific entropy from specific enthalpy and pressure.

Parameters
[in]hspecific enthalpy
[in]ppressure

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 98 of file SinglePhaseFluidProperties.C.

Referenced by SinglePhaseFluidProperties::T_from_p_h().

99 {
100  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
101 }
const std::string name
Definition: Setup.h:22

◆ s_from_h_p() [2/2]

void SinglePhaseFluidProperties::s_from_h_p ( Real  h,
Real  p,
Real &  s,
Real &  ds_dh,
Real &  ds_dp 
) const
virtualinherited

Specific entropy and its derivatives from specific enthalpy and pressure.

Parameters
[in]hspecific enthalpy
[in]ppressure
[out]sspecific entropy
[out]ds_dhderivative of specific entropy w.r.t. specific enthalpy
[out]ds_dpderivative of specific entropy w.r.t. pressure

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 104 of file SinglePhaseFluidProperties.C.

105 {
106  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
107 }
const std::string name
Definition: Setup.h:22

◆ s_from_p_T() [1/2]

Real HelmholtzFluidProperties::s_from_p_T ( Real  p,
Real  T 
) const
overridevirtualinherited

Specific entropy from pressure and temperature.

Parameters
[in]ppressure
[in]Ttemperature

Reimplemented from SinglePhaseFluidProperties.

Definition at line 150 of file HelmholtzFluidProperties.C.

Referenced by HelmholtzFluidProperties::s_from_p_T().

151 {
152  // Require density first
153  const Real density = rho_from_p_T(pressure, temperature);
154  // Scale the input density and temperature
155  const Real delta = density / criticalDensity();
156  const Real tau = criticalTemperature() / temperature;
157 
158  return _R * (tau * dalpha_dtau(delta, tau) - alpha(delta, tau)) / molarMass();
159 }
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real dalpha_dtau(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt tau.
virtual Real alpha(Real delta, Real tau) const =0
Helmholtz free energy.
virtual Real criticalDensity() const
Critical density.
const std::string pressure
Definition: NS.h:26

◆ s_from_p_T() [2/2]

void HelmholtzFluidProperties::s_from_p_T ( Real  p,
Real  T,
Real &  s,
Real &  ds_dp,
Real &  ds_dT 
) const
overridevirtualinherited

Specific entropy and its derivatives from pressure and temperature.

Parameters
[in]ppressure
[in]Ttemperature
[out]sspecific entropy
[out]ds_dpderivative of specific entropy w.r.t. pressure
[out]ds_dTderivative of specific entropy w.r.t. temperature

Reimplemented from SinglePhaseFluidProperties.

Definition at line 162 of file HelmholtzFluidProperties.C.

164 {
165  s = this->s_from_p_T(pressure, temperature);
166 
167  // Require density first
168  const Real density = rho_from_p_T(pressure, temperature);
169  // Scale the input density and temperature
170  const Real delta = density / criticalDensity();
171  const Real tau = criticalTemperature() / temperature;
172 
173  const Real da_dd = dalpha_ddelta(delta, tau);
174  const Real da_dt = dalpha_dtau(delta, tau);
175  const Real d2a_dd2 = d2alpha_ddelta2(delta, tau);
176  const Real d2a_dt2 = d2alpha_dtau2(delta, tau);
177  const Real d2a_ddt = d2alpha_ddeltatau(delta, tau);
178 
179  ds_dp = tau * (d2a_ddt - da_dd) / (density * temperature * (2.0 * da_dd + delta * d2a_dd2));
180  ds_dT = -_R * tau * (da_dt - alpha(delta, tau) + tau * (d2a_dt2 - da_dt)) /
181  (molarMass() * temperature);
182 }
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta and tau.
virtual Real d2alpha_dtau2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt tau.
virtual Real s(Real pressure, Real temperature) const
virtual Real molarMass() const
Molar mass [kg/mol].
const std::string density
Definition: NS.h:17
const std::string temperature
Definition: NS.h:27
virtual Real d2alpha_ddelta2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta.
const Real _R
Universal gas constant (J/mol/K)
virtual Real criticalTemperature() const
Critical temperature.
virtual Real dalpha_ddelta(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt delta.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Density from pressure and temperature.
virtual Real dalpha_dtau(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt tau.
virtual Real alpha(Real delta, Real tau) const =0
Helmholtz free energy.
virtual Real criticalDensity() const
Critical density.
virtual Real s_from_p_T(Real pressure, Real temperature) const override
Specific entropy from pressure and temperature.
const std::string pressure
Definition: NS.h:26

◆ s_from_T_v() [1/2]

Real SinglePhaseFluidProperties::s_from_T_v ( Real  T,
Real  v 
) const
virtualinherited

Specific entropy from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 684 of file SinglePhaseFluidProperties.C.

Referenced by IdealRealGasMixtureFluidProperties::s_from_T_v().

685 {
686  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
687 }
const std::string name
Definition: Setup.h:22

◆ s_from_T_v() [2/2]

void SinglePhaseFluidProperties::s_from_T_v ( Real  T,
Real  v,
Real &  s,
Real &  ds_dT,
Real &  ds_dv 
) const
virtualinherited

Specific entropy and its derivatives from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume
[out]sspecific entropy (J/kg)
[out]ds_dTderivative of specific entropy w.r.t. temperature
[out]ds_dvderivative of specific entropy w.r.t. specific volume

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 690 of file SinglePhaseFluidProperties.C.

691 {
692  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
693 }
const std::string name
Definition: Setup.h:22

◆ s_from_v_e() [1/2]

Real SinglePhaseFluidProperties::s_from_v_e ( Real  v,
Real  e 
) const
virtualinherited

Specific entropy from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 87 of file SinglePhaseFluidProperties.C.

Referenced by StagnationPressureAux::computeValue(), and StagnationTemperatureAux::computeValue().

88 {
89  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
90 }
const std::string name
Definition: Setup.h:22

◆ s_from_v_e() [2/2]

void SinglePhaseFluidProperties::s_from_v_e ( Real  v,
Real  e,
Real &  s,
Real &  ds_dv,
Real &  ds_de 
) const
virtualinherited

Specific entropy and its derivatives from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy
[out]sspecific entropy
[out]ds_dvderivative of specific entropy w.r.t. specific volume
[out]ds_dederivative of specific entropy w.r.t. specific internal energy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 93 of file SinglePhaseFluidProperties.C.

94 {
95  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
96 }
const std::string name
Definition: Setup.h:22

◆ subdomainSetup()

virtual void FluidProperties::subdomainSetup ( )
inlinefinalvirtualinherited

Definition at line 32 of file FluidProperties.h.

32 {}

◆ T_from_p_h()

Real SinglePhaseFluidProperties::T_from_p_h ( Real  pressure,
Real  enthalpy 
) const
virtualinherited

Temperature from pressure and specific enthalpy.

Parameters
[in]pressurepressure (Pa)
[in]enthalpyenthalpy (J/kg)
Returns
Temperature (K)

Reimplemented in IdealGasFluidProperties.

Definition at line 728 of file SinglePhaseFluidProperties.C.

729 {
730  const Real s = s_from_h_p(h, p);
731  const Real rho = rho_from_p_s(p, s);
732  const Real v = 1. / rho;
733  const Real e = e_from_v_h(v, h);
734  return T_from_v_e(v, e);
735 }
virtual Real T_from_v_e(Real v, Real e) const
Temperature from specific volume and specific internal energy.
virtual Real s(Real pressure, Real temperature) const
virtual Real h(Real p, Real T) const
virtual Real s_from_h_p(Real h, Real p) const
Specific entropy from specific enthalpy and pressure.
virtual Real rho(Real p, Real T) const
virtual Real e_from_v_h(Real v, Real h) const
Specific internal energy as a function of specific volume and specific enthalpy.
virtual Real rho_from_p_s(Real p, Real s) const
Density from pressure and specific entropy.
virtual Real e(Real pressure, Real temperature) const

◆ T_from_v_e() [1/2]

Real SinglePhaseFluidProperties::T_from_v_e ( Real  v,
Real  e 
) const
virtualinherited

Temperature from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy
Returns
sound speed

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 39 of file SinglePhaseFluidProperties.C.

Referenced by FluidPropertiesMaterial::computeQpProperties(), StagnationTemperatureAux::computeValue(), TemperatureAux::computeValue(), IdealRealGasMixtureFluidProperties::p_T_from_v_e(), and SinglePhaseFluidProperties::T_from_p_h().

40 {
41  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
42 }
const std::string name
Definition: Setup.h:22

◆ T_from_v_e() [2/2]

void SinglePhaseFluidProperties::T_from_v_e ( Real  v,
Real  e,
Real &  T,
Real &  dT_dv,
Real &  dT_de 
) const
virtualinherited

Temperature and its derivatives from specific volume and specific internal energy.

Parameters
[in]vspecific volume
[in]especific internal energy
[out]Ttemperature
[out]dT_dvderivative of temperature w.r.t. specific volume
[out]dT_dederivative of temperature w.r.t. specific internal energy

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 45 of file SinglePhaseFluidProperties.C.

46 {
47  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
48 }
const std::string name
Definition: Setup.h:22

◆ threadJoin()

virtual void FluidProperties::threadJoin ( const UserObject &  )
inlinefinalvirtualinherited

Definition at line 31 of file FluidProperties.h.

31 {}

◆ triplePointPressure()

Real HydrogenFluidProperties::triplePointPressure ( ) const
overridevirtual

Triple point pressure.

Returns
triple point pressure (Pa)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 69 of file HydrogenFluidProperties.C.

70 {
71  return _p_triple;
72 }
const Real _p_triple
Triple point pressure (Pa)

◆ triplePointTemperature()

Real HydrogenFluidProperties::triplePointTemperature ( ) const
overridevirtual

Triple point temperature.

Returns
triple point temperature (K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 75 of file HydrogenFluidProperties.C.

76 {
77  return _T_triple;
78 }
const Real _T_triple
Triple point temperature (K)

◆ v_e_spndl_from_T()

void SinglePhaseFluidProperties::v_e_spndl_from_T ( Real  T,
Real &  v,
Real &  e 
) const
virtualinherited

Specific internal energy from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume

Reimplemented in StiffenedGasFluidProperties.

Definition at line 651 of file SinglePhaseFluidProperties.C.

Referenced by IdealRealGasMixtureFluidProperties::v_from_p_T().

652 {
653  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
654 }
const std::string name
Definition: Setup.h:22

◆ v_from_p_T() [1/2]

Real SinglePhaseFluidProperties::v_from_p_T ( Real  p,
Real  T 
) const
virtualinherited

Specific volume from pressure and temperature.

Parameters
[in]ppressure
[in]Ttemperature

Definition at line 157 of file SinglePhaseFluidProperties.C.

Referenced by GeneralVaporMixtureFluidProperties::c_from_p_T(), GeneralVaporMixtureFluidProperties::cp_from_p_T(), GeneralVaporMixtureFluidProperties::cv_from_p_T(), GeneralVaporMixtureFluidProperties::k_from_p_T(), GeneralVaporMixtureFluidProperties::mu_from_p_T(), GeneralVaporMixtureFluidProperties::v_from_p_T(), and IdealRealGasMixtureFluidProperties::xs_prim_from_p_T().

158 {
159  const Real rho = rho_from_p_T(p, T);
160  return 1.0 / rho;
161 }
virtual Real rho(Real p, Real T) const
virtual Real rho_from_p_T(Real p, Real T) const
Density from pressure and temperature.

◆ v_from_p_T() [2/2]

void SinglePhaseFluidProperties::v_from_p_T ( Real  p,
Real  T,
Real &  v,
Real &  dv_dp,
Real &  dv_dT 
) const
virtualinherited

Specific volume and its derivatives from pressure and temperature.

Parameters
[in]ppressure
[in]Ttemperature
[out]vspecific volume
[out]dv_dpderivative of specific volume w.r.t. pressure
[out]dv_dTderivative of specific volume w.r.t. temperature

Definition at line 164 of file SinglePhaseFluidProperties.C.

165 {
166  Real rho, drho_dp, drho_dT;
167  rho_from_p_T(p, T, rho, drho_dp, drho_dT);
168 
169  v = 1.0 / rho;
170  const Real dv_drho = -1.0 / (rho * rho);
171 
172  dv_dp = dv_drho * drho_dp;
173  dv_dT = dv_drho * drho_dT;
174 }
virtual Real rho(Real p, Real T) const
virtual Real rho_from_p_T(Real p, Real T) const
Density from pressure and temperature.

◆ vaporPressure() [1/2]

Real HydrogenFluidProperties::vaporPressure ( Real  temperature) const
overridevirtual

Vapor pressure.

Used to delineate liquid and gas phases. Valid for temperatures between the triple point temperature and the critical temperature

Parameters
temperaturewater temperature (K)
Returns
saturation pressure (Pa)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 284 of file HydrogenFluidProperties.C.

285 {
286  if (temperature < _T_triple || temperature > _T_critical)
287  throw MooseException("Temperature is out of range in " + name() + ": vaporPressure()");
288 
289  const Real Tr = temperature / _T_critical;
290  const Real theta = 1.0 - Tr;
291 
292  const Real logpressure = (-4.89789 * theta + 0.988588 * std::pow(theta, 1.5) +
293  0.349689 * Utility::pow<2>(theta) + 0.499356 * std::pow(theta, 2.85)) /
294  Tr;
295 
296  return _p_critical * std::exp(logpressure);
297 }
const std::string temperature
Definition: NS.h:27
const std::string name
Definition: Setup.h:22
const Real _T_critical
Critical temperature (K)
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const Real _p_critical
Critical pressure (Pa)

◆ vaporPressure() [2/2]

void HydrogenFluidProperties::vaporPressure ( Real  temperature,
Real &  psat,
Real &  dpsat_dT 
) const
overridevirtual

Vapor pressure.

Used to delineate liquid and gas phases. Valid for temperatures between the triple point temperature and the critical temperature

Parameters
temperaturewater temperature (K)
[out]saturationpressure (Pa)
[out]derivativeof saturation pressure wrt temperature (Pa/K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 300 of file HydrogenFluidProperties.C.

301 {
302  mooseError(name(), ": vaporPressure() is not implemented");
303 }
const std::string name
Definition: Setup.h:22

◆ vaporPressure_dT()

void SinglePhaseFluidProperties::vaporPressure_dT ( Real  temperature,
Real &  psat,
Real &  dpsat_dT 
) const
virtualinherited

Definition at line 398 of file SinglePhaseFluidProperties.C.

399 {
400  mooseDeprecated(name(), ": vaporPressure_dT() is deprecated. Use vaporPressure() instead");
401 
402  vaporPressure(T, psat, dpsat_dT);
403 }
virtual Real vaporPressure(Real temperature) const
Vapor pressure.
const std::string name
Definition: Setup.h:22

Member Data Documentation

◆ _a

const std::array<Real, 5> HydrogenFluidProperties::_a {{1.616, -0.4117, -0.792, 0.758, 1.217}}
protected

Coefficients for ideal gas component of the Helmholtz free energy.

Definition at line 172 of file HydrogenFluidProperties.h.

Referenced by alpha(), d2alpha_dtau2(), and dalpha_dtau().

◆ _a1k

const std::array<Real, 7> HydrogenFluidProperties::_a1k
protected
Initial value:
{
{-3.40976e-1, 4.5882, -1.4508, 3.26394e-1, 3.16939e-3, 1.90592e-4, -1.139e-6}}

Coefficients for thermal conductivity.

Definition at line 199 of file HydrogenFluidProperties.h.

Referenced by k_from_rho_T().

◆ _a2k

const std::array<Real, 4> HydrogenFluidProperties::_a2k {{1.38497e2, -2.21878e1, 4.57151, 1.0}}
protected

Definition at line 201 of file HydrogenFluidProperties.h.

Referenced by k_from_rho_T().

◆ _amu

const std::array<Real, 5> HydrogenFluidProperties::_amu {{2.09630e-1, -4.55274e-1, 1.423602e-1, -3.35325e-2, 2.76981e-3}}
protected

Coefficients for viscosity.

Definition at line 193 of file HydrogenFluidProperties.h.

Referenced by mu_from_rho_T().

◆ _b

const std::array<Real, 5> HydrogenFluidProperties::_b
protected
Initial value:
{
{-16.0205159149, -22.6580178006, -60.0090511389, -74.9434303817, -206.9392065168}}

Definition at line 173 of file HydrogenFluidProperties.h.

Referenced by alpha(), d2alpha_dtau2(), and dalpha_dtau().

◆ _b1k

const std::array<Real, 5> HydrogenFluidProperties::_b1k {{3.63081e-2, -2.07629e-2, 3.1481e-2, -1.43097e-2, 1.7498e-3}}
protected

Definition at line 202 of file HydrogenFluidProperties.h.

Referenced by k_from_rho_T().

◆ _b2k

const std::array<Real, 5> HydrogenFluidProperties::_b2k {{1.8337e-3, -8.86716e-3, 1.5826e-2, -1.06283e-2, 2.80673e-3}}
protected

Definition at line 203 of file HydrogenFluidProperties.h.

Referenced by k_from_rho_T().

◆ _beta3

const std::array<Real, 5> HydrogenFluidProperties::_beta3 {{-0.171, -0.2245, -0.1304, -0.2785, -0.3967}}
protected

◆ _bmu

const std::array<Real, 7> HydrogenFluidProperties::_bmu {{-0.187, 2.4871, 3.7151, -11.0972, 9.0965, -3.8292, 0.5166}}
protected

Definition at line 194 of file HydrogenFluidProperties.h.

Referenced by mu_from_rho_T().

◆ _cmu

const std::array<Real, 6> HydrogenFluidProperties::_cmu
protected
Initial value:
{
{6.43449673, 4.56334068e-2, 2.32797868e-1, 9.5832612e-1, 1.27941189e-1, 3.63576595e-1}}

Definition at line 195 of file HydrogenFluidProperties.h.

Referenced by mu_from_rho_T().

◆ _d1

const std::array<unsigned int, 7> HydrogenFluidProperties::_d1 {{1, 4, 1, 1, 2, 2, 3}}
protected

◆ _d2

const std::array<unsigned int, 2> HydrogenFluidProperties::_d2 {{1, 3}}
protected

◆ _d3

const std::array<unsigned int, 5> HydrogenFluidProperties::_d3 {{2, 1, 3, 1, 1}}
protected

◆ _D3

const std::array<Real, 5> HydrogenFluidProperties::_D3 {{1.506, 0.156, 1.736, 0.67, 1.662}}
protected

◆ _gamma3

const std::array<Real, 5> HydrogenFluidProperties::_gamma3 {{0.7164, 1.3444, 1.4517, 0.7204, 1.5445}}
protected

◆ _Mh2

const Real HydrogenFluidProperties::_Mh2
protected

Hydrogen molar mass (kg/mol)

Definition at line 157 of file HydrogenFluidProperties.h.

Referenced by molarMass(), and mu_from_rho_T().

◆ _N1

const std::array<Real, 7> HydrogenFluidProperties::_N1 {{-6.93643, 0.01, 2.1101, 4.52059, 0.732564, -1.34086, 0.130985}}
protected

Coefficients for residual component of the Helmholtz free energy.

Definition at line 176 of file HydrogenFluidProperties.h.

Referenced by alpha(), d2alpha_ddelta2(), d2alpha_ddeltatau(), d2alpha_dtau2(), dalpha_ddelta(), and dalpha_dtau().

◆ _N2

const std::array<Real, 2> HydrogenFluidProperties::_N2 {{-0.777414, 0.351944}}
protected

◆ _N3

const std::array<Real, 5> HydrogenFluidProperties::_N3 {{-0.0211716, 0.0226312, 0.032187, -0.0231752, 0.0557346}}
protected

◆ _p_critical

const Real HydrogenFluidProperties::_p_critical
protected

Critical pressure (Pa)

Definition at line 159 of file HydrogenFluidProperties.h.

Referenced by criticalPressure(), and vaporPressure().

◆ _p_triple

const Real HydrogenFluidProperties::_p_triple
protected

Triple point pressure (Pa)

Definition at line 167 of file HydrogenFluidProperties.h.

Referenced by triplePointPressure().

◆ _phi3

const std::array<Real, 5> HydrogenFluidProperties::_phi3 {{-1.685, -0.489, -0.103, -2.506, -1.607}}
protected

◆ _R

const Real SinglePhaseFluidProperties::_R
protectedinherited

◆ _rho_critical

const Real HydrogenFluidProperties::_rho_critical
protected

Critical density (kg/m^3)

Definition at line 165 of file HydrogenFluidProperties.h.

Referenced by criticalDensity().

◆ _rho_molar_critical

const Real HydrogenFluidProperties::_rho_molar_critical
protected

Critical molar density (mol/l)

Definition at line 163 of file HydrogenFluidProperties.h.

◆ _t1

const std::array<Real, 7> HydrogenFluidProperties::_t1 {{0.6844, 1.0, 0.989, 0.489, 0.803, 1.1444, 1.409}}
protected

◆ _t2

const std::array<Real, 2> HydrogenFluidProperties::_t2 {{1.754, 1.311}}
protected

◆ _t3

const std::array<Real, 5> HydrogenFluidProperties::_t3 {{4.187, 5.646, 0.791, 7.249, 2.986}}
protected

◆ _T_c2k

const Real SinglePhaseFluidProperties::_T_c2k
protectedinherited

◆ _T_critical

const Real HydrogenFluidProperties::_T_critical
protected

Critical temperature (K)

Definition at line 161 of file HydrogenFluidProperties.h.

Referenced by criticalTemperature(), mu_from_rho_T(), and vaporPressure().

◆ _T_triple

const Real HydrogenFluidProperties::_T_triple
protected

Triple point temperature (K)

Definition at line 169 of file HydrogenFluidProperties.h.

Referenced by triplePointTemperature().


The documentation for this class was generated from the following files: