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

CO2 fluid properties Most thermophysical properties taken from: Span and Wagner, "A New Equation of State for Carbon Dioxide Covering the Fluid Region from the Triple-Point Temperature to 1100K at Pressures up to 800 MPa", J. More...

#include <CO2FluidProperties.h>

Inheritance diagram for CO2FluidProperties:
[legend]

Public Member Functions

 CO2FluidProperties (const InputParameters &parameters)
 
virtual ~CO2FluidProperties ()
 
virtual Real rho_from_p_T (Real pressure, Real temperature) const override
 
virtual void rho_from_p_T (Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT) const override
 
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 Real mu_from_rho_T (Real density, Real temperature) const override
 
void mu_from_rho_T (Real density, Real temperature, Real ddensity_dT, Real &mu, Real &dmu_drho, Real &dmu_dT) const
 
virtual void rho_mu_from_p_T (Real pressure, Real temperature, Real &rho, Real &mu) const override
 Combined methods. More...
 
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
 
virtual std::string fluidName () const override
 
virtual Real molarMass () const override
 Fluid name. 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...
 
Real meltingPressure (Real temperature) const
 Melting pressure. More...
 
Real sublimationPressure (Real temperature) const
 Sublimation pressure. More...
 
virtual Real vaporPressure (Real temperature) const override
 Vapor pressure. More...
 
virtual void vaporPressure (Real temperature, Real &psat, Real &dpsat_dT) const override
 
Real saturatedLiquidDensity (Real temperature) const
 Saturated liquid density of CO2 Valid for temperatures between the triple point temperature and critical temperature. More...
 
Real saturatedVaporDensity (Real temperature) const
 Saturated vapor density of CO2 Valid for temperatures between the triple point temperature and critical temperature. More...
 
virtual Real p_from_rho_T (Real density, Real temperature) const override
 Pressure as a function of density and temperature. More...
 
virtual std::vector< Real > henryCoefficients () const override
 Henry's law coefficients for dissolution in water. More...
 
Real partialDensity (Real temperature) const
 Partial density of dissolved CO2 From Garcia, Density of aqueous solutions of CO2, LBNL-49023 (2001) More...
 
virtual Real k_from_p_T (Real pressure, Real temperature) const override
 
virtual void k_from_p_T (Real pressure, Real temperature, Real &k, Real &dk_dp, Real &dk_dT) const override
 
virtual Real k_from_rho_T (Real density, Real temperature) const override
 
virtual Real e_from_p_T (Real pressure, Real temperature) const override
 
virtual void e_from_p_T (Real p, Real T, Real &e, Real &de_dp, Real &de_dT) const override
 
virtual Real c_from_p_T (Real pressure, Real temperature) const override
 
virtual Real cp_from_p_T (Real pressure, Real temperature) const override
 
virtual Real cv_from_p_T (Real pressure, Real temperature) const override
 
virtual Real s_from_p_T (Real pressure, Real temperature) const override
 
virtual void s_from_p_T (Real p, Real T, Real &s, Real &ds_dp, Real &ds_dT) const override
 
virtual Real h_from_p_T (Real pressure, Real temperature) const override
 
virtual void h_from_p_T (Real p, Real T, Real &h, Real &dh_dp, Real &dh_dT) const override
 
virtual Real criticalInternalEnergy () const
 Critical specific internal energy. 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...
 
DualReal vaporPressure (const DualReal &T) const
 
virtual Real vaporTemperature (Real p) const
 Vapor temperature. More...
 
virtual void vaporTemperature (Real p, Real &Tsat, Real &dTsat_dp) const
 
DualReal vaporTemperature (const DualReal &p) const
 
virtual void rho_mu_from_p_T (const DualReal &p, const DualReal &T, DualReal &rho, DualReal &mu) const
 
virtual void rho_e_from_p_T (Real p, Real T, Real &rho, Real &drho_dp, Real &drho_dT, Real &e, Real &de_dp, Real &de_dT) const
 
virtual void execute () final
 
virtual void initialize () final
 
virtual void finalize () final
 
virtual void threadJoin (const UserObject &) final
 
virtual void subdomainSetup () final
 

Static Public Attributes

static const Real _R = 8.3144598
 Universal gas constant (J/mol/K) More...
 

Protected Member Functions

virtual Real alpha (Real delta, Real tau) const override
 Helmholtz free energy. 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...
 

Protected Attributes

const Real _Mco2 = 44.0098e-3
 Molar mass of CO2 (kg/mol) More...
 
const Real _critical_pressure = 7.3773e6
 Critical pressure (Pa) More...
 
const Real _critical_temperature = 304.1282
 Critical temperature (K) More...
 
const Real _critical_density = 467.6
 Critical density (kg/m^3) More...
 
const Real _triple_point_pressure = 0.51795e6
 Triple point pressure (Pa) More...
 
const Real _triple_point_temperature = 216.592
 Triple point temperature (K) More...
 
const Real _Rco2 = 188.9241
 Specific gas constant (J/mol/K) More...
 
const std::array< Real, 5 > _a0 {{1.99427042, 0.62105248, 0.41195293, 1.04028922, 0.08327678}}
 Coefficients for the ideal gas component of the Helmholtz free energy. More...
 
const std::array< Real, 5 > _theta0 {{3.15163, 6.11190, 6.77708, 11.32384, 27.08792}}
 
const std::array< Real, 7 > _n1
 Coefficients for the residual component of the Helmholtz free energy. More...
 
const std::array< unsigned int, 7 > _d1 {{1, 1, 1, 1, 2, 2, 3}}
 
const std::array< Real, 7 > _t1 {{0.0, 0.75, 1.0, 2.0, 0.75, 2.0, 0.75}}
 
const std::array< Real, 27 > _n2
 
const std::array< unsigned int, 27 > _d2
 
const std::array< Real, 27 > _t2
 
const std::array< unsigned int, 27 > _c2
 
const std::array< Real, 5 > _n3
 
const std::array< unsigned int, 5 > _d3 {{2, 2, 2, 3, 3}}
 
const std::array< unsigned int, 5 > _t3 {{1, 0, 1, 3, 3}}
 
const std::array< Real, 5 > _alpha3 {{25.0, 25.0, 25.0, 15.0, 20.0}}
 
const std::array< Real, 5 > _beta3 {{325.0, 300.0, 300.0, 275.0, 275.0}}
 
const std::array< Real, 5 > _gamma3 {{1.16, 1.19, 1.19, 1.25, 1.25}}
 
const std::array< Real, 5 > _eps3 {{1.0, 1.0, 1.0, 1.0, 1.0}}
 
const std::array< Real, 3 > _n4 {{-0.66642276540751, 0.72608632349897, 0.055068668612842}}
 
const std::array< Real, 3 > _a4 {{3.5, 3.5, 3.5}}
 
const std::array< Real, 3 > _b4 {{0.875, 0.925, 0.875}}
 
const std::array< Real, 3 > _beta4 {{0.3, 0.3, 0.3}}
 
const std::array< Real, 3 > _A4 {{0.7, 0.7, 0.7}}
 
const std::array< Real, 3 > _B4 {{0.3, 0.3, 1.0}}
 
const std::array< Real, 3 > _C4 {{10.0, 10.0, 12.5}}
 
const std::array< Real, 3 > _D4 {{275.0, 275.0, 275.0}}
 
const std::array< Real, 5 > _mu_a {{0.235156, -0.491266, 5.211155e-2, 5.347906e-2, -1.537102e-2}}
 Coefficients for viscosity. More...
 
const std::array< Real, 5 > _mu_d
 
const std::array< Real, 3 > _k_g1 {{0.0, 0.0, 1.5}}
 Coefficients for the thermal conductivity. More...
 
const std::array< Real, 7 > _k_g2 {{0.0, 1.0, 1.5, 1.5, 1.5, 3.5, 5.5}}
 
const std::array< unsigned int, 3 > _k_h1 {{1, 5, 1}}
 
const std::array< unsigned int, 7 > _k_h2 {{1, 2, 0, 5, 9, 0, 0}}
 
const std::array< Real, 3 > _k_n1 {{7.69857587, 0.159885811, 1.56918621}}
 
const std::array< Real, 7 > _k_n2
 
const std::array< Real, 12 > _k_a
 
const Real _T_c2k
 Conversion of temperature from Celsius to Kelvin. More...
 
const bool _allow_imperfect_jacobians
 Flag to set unimplemented Jacobian entries to zero. More...
 

Private Member Functions

template<typename... Args>
void fluidPropError (Args... args) const
 
e e e e p h T T T T T v v v s h propfuncWithDefault (beta, p, T) propfuncWithDefault(v
 
e e e e p h T T T T T v v v s h T propfuncWithDefault (e, p, T) propfuncWithDefault(gamma
 
 propfunc (p, v, e) propfunc(T
 Compute a fluid property given for the state defined by two given properties. More...
 
propfunc (c, v, e) propfunc(cp
 
e e propfunc (cv, v, e) propfunc(mu
 
e e e propfunc (k, v, e) propfunc(s
 
e e e e propfunc (s, h, p) propfunc(T
 
e e e e p propfunc (rho, p, s) propfunc(e
 
e e e e p h propfunc (s, p, T) propfunc(pp_sat
 
e e e e p h T propfunc (mu, rho, T) propfunc(k
 
e e e e p h T T propfunc (c, p, T) propfunc(cp
 
e e e e p h T T T propfunc (cv, p, T) propfunc(mu
 
e e e e p h T T T T propfunc (k, p, T) propfunc(rho
 
e e e e p h T T T T T propfunc (e, p, rho) propfunc(e
 
e e e e p h T T T T T v propfunc (p, T, v) propfunc(h
 
e e e e p h T T T T T v v propfunc (s, T, v) propfunc(cv
 
e e e e p h T T T T T v v v propfunc (h, p, T) propfunc(p
 
e e e e p h T T T T T v v vpropfunc (g, v, e) propfuncWithDefault(T
 
 v
 
v
 
e e v
 
e e e v
 
e e e e p v
 
e e e e p h T T T T T v v v s h T v
 
e e e e h
 
e e e e p h T T T T T v v v h
 
e e e e p h p
 
e e e e p h T T p
 
e e e e p h T T T p
 
e e e e p h T T T T p
 
e e e e p h T T T T T v v vp
 
e e e e p h T T T T T v v v s h p
 
e e e e p h T rho
 
e e e e p h T T T T T T
 
e e e e p h T T T T T v T
 
e e e e p h T T T T T v v T
 
e e e e p h T T T T T v v v s h TpropfuncWithDefault (gamma, p, T)
 

Detailed Description

CO2 fluid properties Most thermophysical properties taken from: Span and Wagner, "A New Equation of State for Carbon Dioxide Covering the Fluid Region from the Triple-Point Temperature to 1100K at Pressures up to 800 MPa", J.

Phys. Chem. Ref. Data, 25 (1996)

Note: the Span and Wagner EOS uses density and temperature as the primary variables. As a result, density must first be found using iteration, after which the other properties can be calculated directly.

Viscosity from: Fenghour et al., The viscosity of carbon dioxide, J. Phys. Chem. Ref.Data, 27, 31-44 (1998) Note: critical enhancement not included Valid for 217 K < T < 1000K and rho < 1400 kg/m^3

Thermal conductivity from: Scalabrin et al., A Reference Multiparameter Thermal Conductivity Equation for Carbon Dioxide with an Optimized Functional Form, J. Phys. Chem. Ref. Data 35 (2006)

Definition at line 45 of file CO2FluidProperties.h.

Constructor & Destructor Documentation

◆ CO2FluidProperties()

CO2FluidProperties::CO2FluidProperties ( const InputParameters &  parameters)

Definition at line 28 of file CO2FluidProperties.C.

29  : HelmholtzFluidProperties(parameters)
30 {
31 }

◆ ~CO2FluidProperties()

CO2FluidProperties::~CO2FluidProperties ( )
virtual

Definition at line 33 of file CO2FluidProperties.C.

33 {}

Member Function Documentation

◆ alpha()

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

Helmholtz free energy.

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

Implements HelmholtzFluidProperties.

Definition at line 162 of file CO2FluidProperties.C.

163 {
164  // Ideal gas component of the Helmholtz free energy
165  Real sum0 = 0.0;
166  for (std::size_t i = 0; i < _a0.size(); ++i)
167  sum0 += _a0[i] * std::log(1.0 - std::exp(-_theta0[i] * tau));
168 
169  Real phi0 = std::log(delta) + 8.37304456 - 3.70454304 * tau + 2.5 * std::log(tau) + sum0;
170 
171  // Residual component of the Helmholtz free energy
172  Real theta, Delta, Psi;
173  Real phir = 0.0;
174  for (std::size_t i = 0; i < _n1.size(); ++i)
175  phir += _n1[i] * MathUtils::pow(delta, _d1[i]) * std::pow(tau, _t1[i]);
176 
177  for (std::size_t i = 0; i < _n2.size(); ++i)
178  phir += _n2[i] * MathUtils::pow(delta, _d2[i]) * std::pow(tau, _t2[i]) *
179  std::exp(-MathUtils::pow(delta, _c2[i]));
180 
181  for (std::size_t i = 0; i < _n3.size(); ++i)
182  phir += _n3[i] * MathUtils::pow(delta, _d3[i]) * MathUtils::pow(tau, _t3[i]) *
183  std::exp(-_alpha3[i] * Utility::pow<2>(delta - _eps3[i]) -
184  _beta3[i] * Utility::pow<2>(tau - _gamma3[i]));
185 
186  for (std::size_t i = 0; i < _n4.size(); ++i)
187  {
188  theta = 1.0 - tau + _A4[i] * std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]));
189  Delta = Utility::pow<2>(theta) + _B4[i] * std::pow(Utility::pow<2>(delta - 1.0), _a4[i]);
190  Psi = std::exp(-_C4[i] * Utility::pow<2>(delta - 1.0) - _D4[i] * Utility::pow<2>(tau - 1.0));
191  phir += _n4[i] * std::pow(Delta, _b4[i]) * delta * Psi;
192  }
193 
194  // The Helmholtz free energy is the sum of these components
195  return phi0 + phir;
196 }

Referenced by k_from_rho_T().

◆ c_from_p_T()

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

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 }

◆ cp_from_p_T()

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

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 }

◆ criticalDensity()

Real CO2FluidProperties::criticalDensity ( ) const
overridevirtual

Critical density.

Returns
critical density (kg/m^3)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 60 of file CO2FluidProperties.C.

61 {
62  return _critical_density;
63 }

◆ criticalInternalEnergy()

Real SinglePhaseFluidProperties::criticalInternalEnergy ( ) const
virtualinherited

Critical specific internal energy.

Returns
specific internal energy (J/kg)

Reimplemented in IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 126 of file SinglePhaseFluidProperties.C.

127 {
128  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
129 }

Referenced by IdealRealGasMixtureFluidProperties::p_T_from_v_e(), and IdealRealGasMixtureFluidProperties::T_from_p_v().

◆ criticalPressure()

Real CO2FluidProperties::criticalPressure ( ) const
overridevirtual

Critical pressure.

Returns
critical pressure (Pa)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 48 of file CO2FluidProperties.C.

49 {
50  return _critical_pressure;
51 }

◆ criticalTemperature()

Real CO2FluidProperties::criticalTemperature ( ) const
overridevirtual

Critical temperature.

Returns
critical temperature (K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 54 of file CO2FluidProperties.C.

55 {
56  return _critical_temperature;
57 }

◆ cv_from_p_T()

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

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 }

◆ d2alpha_ddelta2()

Real CO2FluidProperties::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 283 of file CO2FluidProperties.C.

284 {
285  // Second derivative of the ideal gas component wrt gamma
286  Real d2phi0dd2 = -1.0 / delta / delta;
287 
288  // Second derivative of the residual component wrt gamma
289  Real d2phirdd2 = 0.0;
290  Real theta, Delta, Psi, dDelta_dd, dPsi_dd, d2Delta_dd2, d2Psi_dd2;
291 
292  for (std::size_t i = 0; i < _n1.size(); ++i)
293  d2phirdd2 += _n1[i] * _d1[i] * (_d1[i] - 1.0) * MathUtils::pow(delta, _d1[i] - 2) *
294  std::pow(tau, _t1[i]);
295 
296  for (std::size_t i = 0; i < _n2.size(); ++i)
297  d2phirdd2 += _n2[i] * std::exp(-MathUtils::pow(delta, _c2[i])) *
298  MathUtils::pow(delta, _d2[i] - 2) * std::pow(tau, _t2[i]) *
299  ((_d2[i] - _c2[i] * MathUtils::pow(delta, _c2[i])) *
300  (_d2[i] - 1.0 - _c2[i] * MathUtils::pow(delta, _c2[i])) -
301  _c2[i] * _c2[i] * MathUtils::pow(delta, _c2[i]));
302 
303  for (std::size_t i = 0; i < _n3.size(); ++i)
304  d2phirdd2 +=
305  _n3[i] * MathUtils::pow(tau, _t3[i]) *
306  std::exp(-_alpha3[i] * Utility::pow<2>(delta - _eps3[i]) -
307  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
308  (-2.0 * _alpha3[i] * MathUtils::pow(delta, _d3[i]) +
309  4.0 * _alpha3[i] * _alpha3[i] * MathUtils::pow(delta, _d3[i]) *
310  Utility::pow<2>(delta - _eps3[i]) -
311  4.0 * _d3[i] * _alpha3[i] * MathUtils::pow(delta, _d3[i] - 1.0) * (delta - _eps3[i]) +
312  _d3[i] * (_d3[i] - 1.0) * MathUtils::pow(delta, _d3[i] - 2.0));
313 
314  for (std::size_t i = 0; i < _n4.size(); ++i)
315  {
316  theta = 1.0 - tau + _A4[i] * std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]));
317  Delta = Utility::pow<2>(theta) + _B4[i] * std::pow(Utility::pow<2>(delta - 1.0), _a4[i]);
318  Psi = std::exp(-_C4[i] * Utility::pow<2>(delta - 1.0) - _D4[i] * Utility::pow<2>(tau - 1.0));
319  dPsi_dd = -2.0 * _C4[i] * (delta - 1.0) * Psi;
320  dDelta_dd = (delta - 1.0) *
321  (_A4[i] * theta * 2.0 / _beta4[i] *
322  std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]) - 1.0) +
323  2.0 * _B4[i] * _a4[i] * std::pow(Utility::pow<2>(delta - 1.0), _a4[i] - 1.0));
324  d2Psi_dd2 = 3.0 * _D4[i] * Psi * (2.0 * _C4[i] * Utility::pow<2>(delta - 1.0) - 1.0);
325  d2Delta_dd2 = 1.0 / (delta - 1.0) * dDelta_dd +
326  (delta - 1.0) * (delta - 1.0) *
327  (4.0 * _B4[i] * _a4[i] * (_a4[i] - 1.0) *
328  std::pow(Utility::pow<2>(delta - 1.0), _a4[i] - 2.0) +
329  2.0 * _A4[i] * _A4[i] *
330  Utility::pow<2>(std::pow(Utility::pow<2>(delta - 1.0),
331  1.0 / (2.0 * _beta4[i]) - 1.0)) /
332  _beta4[i] / _beta4[i] +
333  (4.0 / _beta4[i]) * _A4[i] * theta * (1.0 / (2.0 * _beta4[i]) - 1.0) *
334  std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]) - 2.0));
335  d2phirdd2 +=
336  _n4[i] *
337  (std::pow(Delta, _b4[i]) * (2.0 * dPsi_dd + delta * d2Psi_dd2) +
338  2.0 * _b4[i] * std::pow(Delta, _b4[i] - 1.0) * dDelta_dd * (Psi + delta * dPsi_dd) +
339  _b4[i] *
340  (std::pow(Delta, _b4[i] - 1.0) * d2Delta_dd2 +
341  (_b4[i] - 1.0) * std::pow(Delta, _b4[i] - 2.0) * Utility::pow<2>(dDelta_dd)) *
342  delta * Psi);
343  }
344  // The second derivative of the free energy wrt delta is the sum of these components
345  return d2phi0dd2 + d2phirdd2;
346 }

◆ d2alpha_ddeltatau()

Real CO2FluidProperties::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 398 of file CO2FluidProperties.C.

399 {
400  // Note: second derivative of the ideal gas component wrt delta and tau is 0
401  // Derivative of the residual component wrt gamma
402  Real theta, Delta, Psi, dDelta_dd, dPsi_dd, dDelta_dt, dPsi_dt, d2Delta_ddt, d2Psi_ddt;
403  Real d2phirddt = 0.0;
404  for (std::size_t i = 0; i < _n1.size(); ++i)
405  d2phirddt += _n1[i] * _d1[i] * _t1[i] * MathUtils::pow(delta, _d1[i] - 1.0) *
406  std::pow(tau, _t1[i] - 1.0);
407 
408  for (std::size_t i = 0; i < _n2.size(); ++i)
409  d2phirddt += _n2[i] * std::exp(-MathUtils::pow(delta, _c2[i])) *
410  (MathUtils::pow(delta, _d2[i] - 1.0) * _t2[i] * std::pow(tau, _t2[i] - 1.0) *
411  (_d2[i] - _c2[i] * MathUtils::pow(delta, _c2[i])));
412 
413  for (std::size_t i = 0; i < _n3.size(); ++i)
414  d2phirddt += _n3[i] * MathUtils::pow(delta, _d3[i]) * MathUtils::pow(tau, _t3[i]) *
415  std::exp(-_alpha3[i] * Utility::pow<2>(delta - _eps3[i]) -
416  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
417  (_d3[i] / delta - 2.0 * _alpha3[i] * (delta - _eps3[i])) *
418  (_t3[i] / tau - 2.0 * _beta3[i] * (tau - _gamma3[i]));
419 
420  for (std::size_t i = 0; i < _n4.size(); ++i)
421  {
422  theta = 1.0 - tau + _A4[i] * std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]));
423  Delta = Utility::pow<2>(theta) + _B4[i] * std::pow(Utility::pow<2>(delta - 1.0), _a4[i]);
424  Psi = std::exp(-_C4[i] * Utility::pow<2>(delta - 1.0) - _D4[i] * Utility::pow<2>(tau - 1.0));
425  dPsi_dd = -2.0 * _C4[i] * (delta - 1.0) * Psi;
426  dPsi_dt = -2.0 * _D4[i] * (tau - 1.0) * Psi;
427  d2Psi_ddt = 4.0 * _C4[i] * _D4[i] * (delta - 1.0) * (tau - 1.0) * Psi;
428  dDelta_dd = (delta - 1.0) *
429  (_A4[i] * theta * 2.0 / _beta4[i] *
430  std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]) - 1.0) +
431  2.0 * _B4[i] * _a4[i] * std::pow(Utility::pow<2>(delta - 1.0), _a4[i] - 1.0));
432  dDelta_dt = -2.0 * theta * _b4[i] * std::pow(Delta, _b4[i] - 1.0);
433  d2Delta_ddt = -2.0 * _A4[i] * _b4[i] / _beta4[i] * std::pow(Delta, _b4[i] - 1.0) *
434  (delta - 1.0) *
435  std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]) - 1.0) -
436  2.0 * theta * _b4[i] * (_b4[i] - 1.0) * std::pow(Delta, _b4[i] - 2.0) * dDelta_dd;
437 
438  d2phirddt += _n4[i] * (std::pow(Delta, _b4[i]) * (dPsi_dt + delta * d2Psi_ddt) +
439  delta * _b4[i] * std::pow(Delta, _b4[i] - 1.0) * dDelta_dd * dPsi_dt +
440  dDelta_dt * (Psi + delta * dPsi_dd) + d2Delta_ddt * delta * Psi);
441  }
442 
443  return d2phirddt;
444 }

◆ d2alpha_dtau2()

Real CO2FluidProperties::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 349 of file CO2FluidProperties.C.

350 {
351  // Second derivative of the ideal gas component wrt tau
352  Real sum0 = 0.0;
353  for (std::size_t i = 0; i < _a0.size(); ++i)
354  sum0 += _a0[i] * _theta0[i] * _theta0[i] * std::exp(-_theta0[i] * tau) /
355  Utility::pow<2>(1.0 - std::exp(-_theta0[i] * tau));
356 
357  Real d2phi0dt2 = -2.5 / tau / tau - sum0;
358 
359  // Second derivative of the residual component wrt tau
360  Real d2phirdt2 = 0.0;
361  Real theta, Delta, Psi, dPsi_dt, dDelta_dt, d2Delta_dt2, d2Psi_dt2;
362 
363  for (std::size_t i = 0; i < _n1.size(); ++i)
364  d2phirdt2 += _n1[i] * _t1[i] * (_t1[i] - 1.0) * MathUtils::pow(delta, _d1[i]) *
365  std::pow(tau, _t1[i] - 2.0);
366 
367  for (std::size_t i = 0; i < _n2.size(); ++i)
368  d2phirdt2 += _n2[i] * _t2[i] * (_t2[i] - 1.0) * MathUtils::pow(delta, _d2[i]) *
369  std::exp(-MathUtils::pow(delta, _c2[i])) * std::pow(tau, _t2[i] - 2.0);
370 
371  for (std::size_t i = 0; i < _n3.size(); ++i)
372  d2phirdt2 += _n3[i] * MathUtils::pow(delta, _d3[i]) * MathUtils::pow(tau, _t3[i]) *
373  std::exp(-_alpha3[i] * Utility::pow<2>(delta - _eps3[i]) -
374  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
375  (Utility::pow<2>(_t3[i] / tau - 2.0 * _beta3[i] * (tau - _gamma3[i])) -
376  _t3[i] / tau / tau - 2.0 * _beta3[i]);
377 
378  for (std::size_t i = 0; i < _n4.size(); ++i)
379  {
380  theta = 1.0 - tau + _A4[i] * std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]));
381  Delta = Utility::pow<2>(theta) + _B4[i] * std::pow(Utility::pow<2>(delta - 1.0), _a4[i]);
382  Psi = std::exp(-_C4[i] * Utility::pow<2>(delta - 1.0) - _D4[i] * Utility::pow<2>(tau - 1.0));
383  dDelta_dt = -2.0 * theta * _b4[i] * std::pow(Delta, _b4[i] - 1.0);
384  d2Delta_dt2 = 2.0 * _b4[i] * std::pow(Delta, _b4[i] - 1.0) +
385  4.0 * theta * theta * _b4[i] * (_b4[i] - 1.0) * std::pow(Delta, _b4[i] - 2.0);
386  dPsi_dt = -2.0 * _D4[i] * (tau - 1.0) * Psi;
387  d2Psi_dt2 = 2.0 * _D4[i] * (2.0 * _D4[i] * (tau - 1.0) * (tau - 1.0) - 1.0) * Psi;
388  d2phirdt2 +=
389  _n4[i] * delta *
390  (Psi * d2Delta_dt2 + 2.0 * dDelta_dt * dPsi_dt + std::pow(Delta, _b4[i]) * d2Psi_dt2);
391  }
392 
393  // The second derivative of the free energy wrt tau is the sum of these components
394  return d2phi0dt2 + d2phirdt2;
395 }

◆ dalpha_ddelta()

Real CO2FluidProperties::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 199 of file CO2FluidProperties.C.

200 {
201  // Derivative of the ideal gas component wrt gamma
202  Real dphi0dd = 1.0 / delta;
203 
204  // Derivative of the residual component wrt gamma
205  Real theta, Delta, Psi, dDelta_dd, dPsi_dd;
206  Real dphirdd = 0.0;
207 
208  for (std::size_t i = 0; i < _n1.size(); ++i)
209  dphirdd += _n1[i] * _d1[i] * MathUtils::pow(delta, _d1[i] - 1.0) * std::pow(tau, _t1[i]);
210 
211  for (std::size_t i = 0; i < _n2.size(); ++i)
212  dphirdd += _n2[i] * std::exp(-MathUtils::pow(delta, _c2[i])) *
213  (MathUtils::pow(delta, _d2[i] - 1.0) * std::pow(tau, _t2[i]) *
214  (_d2[i] - _c2[i] * MathUtils::pow(delta, _c2[i])));
215 
216  for (std::size_t i = 0; i < _n3.size(); ++i)
217  dphirdd += _n3[i] * MathUtils::pow(delta, _d3[i]) * MathUtils::pow(tau, _t3[i]) *
218  std::exp(-_alpha3[i] * Utility::pow<2>(delta - _eps3[i]) -
219  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
220  (_d3[i] / delta - 2.0 * _alpha3[i] * (delta - _eps3[i]));
221 
222  for (std::size_t i = 0; i < _n4.size(); ++i)
223  {
224  theta = 1.0 - tau + _A4[i] * std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]));
225  Delta = Utility::pow<2>(theta) + _B4[i] * std::pow(Utility::pow<2>(delta - 1.0), _a4[i]);
226  Psi = std::exp(-_C4[i] * Utility::pow<2>(delta - 1.0) - _D4[i] * Utility::pow<2>(tau - 1.0));
227  dPsi_dd = -2.0 * _C4[i] * (delta - 1.0) * Psi;
228  dDelta_dd = (delta - 1.0) *
229  (_A4[i] * theta * 2.0 / _beta4[i] *
230  std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]) - 1.0) +
231  2.0 * _B4[i] * _a4[i] * std::pow(Utility::pow<2>(delta - 1.0), _a4[i] - 1.0));
232 
233  dphirdd += _n4[i] * (std::pow(Delta, _b4[i]) * (Psi + delta * dPsi_dd) +
234  _b4[i] * std::pow(Delta, _b4[i] - 1.0) * dDelta_dd * delta * Psi);
235  }
236 
237  // The derivative of the free energy wrt delta is the sum of these components
238  return dphi0dd + dphirdd;
239 }

◆ dalpha_dtau()

Real CO2FluidProperties::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 242 of file CO2FluidProperties.C.

243 {
244  // Derivative of the ideal gas component wrt tau
245  Real sum0 = 0.0;
246  for (std::size_t i = 0; i < _a0.size(); ++i)
247  sum0 += _a0[i] * _theta0[i] * (1.0 / (1.0 - std::exp(-_theta0[i] * tau)) - 1.0);
248 
249  Real dphi0dt = -3.70454304 + 2.5 / tau + sum0;
250 
251  // Derivative of the residual component wrt tau
252  Real theta, Delta, Psi, dDelta_dt, dPsi_dt;
253  Real dphirdt = 0.0;
254  for (std::size_t i = 0; i < _n1.size(); ++i)
255  dphirdt += _n1[i] * _t1[i] * MathUtils::pow(delta, _d1[i]) * std::pow(tau, _t1[i] - 1.0);
256 
257  for (std::size_t i = 0; i < _n2.size(); ++i)
258  dphirdt += _n2[i] * _t2[i] * MathUtils::pow(delta, _d2[i]) * std::pow(tau, _t2[i] - 1.0) *
259  std::exp(-MathUtils::pow(delta, _c2[i]));
260 
261  for (std::size_t i = 0; i < _n3.size(); ++i)
262  dphirdt += _n3[i] * MathUtils::pow(delta, _d3[i]) * MathUtils::pow(tau, _t3[i]) *
263  std::exp(-_alpha3[i] * Utility::pow<2>(delta - _eps3[i]) -
264  _beta3[i] * Utility::pow<2>(tau - _gamma3[i])) *
265  (_t3[i] / tau - 2.0 * _beta3[i] * (tau - _gamma3[i]));
266 
267  for (std::size_t i = 0; i < _n4.size(); ++i)
268  {
269  theta = 1.0 - tau + _A4[i] * std::pow(Utility::pow<2>(delta - 1.0), 1.0 / (2.0 * _beta4[i]));
270  Delta = Utility::pow<2>(theta) + _B4[i] * std::pow(Utility::pow<2>(delta - 1.0), _a4[i]);
271  Psi = std::exp(-_C4[i] * Utility::pow<2>(delta - 1.0) - _D4[i] * Utility::pow<2>(tau - 1.0));
272  dDelta_dt = -2.0 * theta * _b4[i] * std::pow(Delta, _b4[i] - 1.0);
273  dPsi_dt = -2.0 * _D4[i] * (tau - 1.0) * Psi;
274 
275  dphirdt += _n4[i] * delta * (Psi * dDelta_dt + std::pow(Delta, _b4[i]) * dPsi_dt);
276  }
277 
278  // The derivative of the free energy wrt tau is the sum of these components
279  return dphi0dt + dphirdt;
280 }

◆ e_from_p_T() [1/2]

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

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 }

◆ e_from_p_T() [2/2]

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

Definition at line 65 of file HelmholtzFluidProperties.C.

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 }

Referenced by HelmholtzFluidProperties::e_from_p_T().

◆ 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 IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 286 of file SinglePhaseFluidProperties.C.

287 {
288  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
289 }

Referenced by IdealRealGasMixtureFluidProperties::p_T_from_v_e(), and IdealRealGasMixtureFluidProperties::T_from_p_v().

◆ execute()

virtual void FluidProperties::execute ( )
inlinefinalvirtualinherited

Definition at line 34 of file FluidProperties.h.

34 {}

◆ finalize()

virtual void FluidProperties::finalize ( )
inlinefinalvirtualinherited

Definition at line 36 of file FluidProperties.h.

36 {}

◆ fluidName()

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

Definition at line 36 of file CO2FluidProperties.C.

37 {
38  return "co2";
39 }

◆ fluidPropError()

template<typename... Args>
void SinglePhaseFluidProperties::fluidPropError ( Args...  args) const
inlineprivateinherited

Definition at line 326 of file SinglePhaseFluidProperties.h.

327  {
329  mooseDoOnce(mooseWarning(std::forward<Args>(args)...));
330  else
331  mooseError(std::forward<Args>(args)...);
332  }

Referenced by SinglePhaseFluidProperties::vaporPressure(), and SinglePhaseFluidProperties::vaporTemperature().

◆ h_from_p_T() [1/2]

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

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 }

◆ h_from_p_T() [2/2]

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

Definition at line 185 of file HelmholtzFluidProperties.C.

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 }

Referenced by HelmholtzFluidProperties::h_from_p_T().

◆ henryCoefficients()

std::vector< Real > CO2FluidProperties::henryCoefficients ( ) const
overridevirtual

Henry's law coefficients for dissolution in water.

Returns
Henry's constant coefficients

Reimplemented from SinglePhaseFluidProperties.

Definition at line 637 of file CO2FluidProperties.C.

638 {
639  return {-8.55445, 4.01195, 9.52345};
640 }

◆ initialize()

virtual void FluidProperties::initialize ( )
inlinefinalvirtualinherited

Definition at line 35 of file FluidProperties.h.

35 {}

◆ k_from_p_T() [1/2]

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

Definition at line 643 of file CO2FluidProperties.C.

644 {
645  // Require density first
648 }

Referenced by k_from_p_T().

◆ k_from_p_T() [2/2]

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

Definition at line 651 of file CO2FluidProperties.C.

653 {
654  k = this->k_from_p_T(pressure, temperature);
655  // Calculate derivatives using finite differences. Note: this will be slow as
656  // multiple calculations of density are required
657  const Real eps = 1.0e-6;
658  const Real peps = pressure * eps;
659  const Real Teps = temperature * eps;
660 
661  dk_dp = (this->k_from_p_T(pressure + peps, temperature) - k) / peps;
662  dk_dT = (this->k_from_p_T(pressure, temperature + Teps) - k) / Teps;
663 }

◆ k_from_rho_T()

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

Definition at line 666 of file CO2FluidProperties.C.

667 {
668  // Check the temperature is in the range of validity (216.592 K <= T <= 1000 K)
669  if (temperature <= _triple_point_temperature || temperature >= 1000.0)
670  throw MooseException("Temperature " + Moose::stringify(temperature) +
671  "K out of range (200K, 1000K) in " + name() + ": k()");
672 
673  // Scaled variables
675  Real rhor = density / _critical_density;
676 
677  Real sum1 = 0.0;
678  for (std::size_t i = 0; i < _k_n1.size(); ++i)
679  sum1 += _k_n1[i] * std::pow(Tr, _k_g1[i]) * MathUtils::pow(rhor, _k_h1[i]);
680 
681  Real sum2 = 0.0;
682  for (std::size_t i = 0; i < _k_n2.size(); ++i)
683  sum2 += _k_n2[i] * std::pow(Tr, _k_g2[i]) * MathUtils::pow(rhor, _k_h2[i]);
684 
685  // Near-critical enhancement
686  Real alpha =
687  1.0 - _k_a[9] * std::acosh(1.0 + _k_a[10] * std::pow(Utility::pow<2>(1.0 - Tr), _k_a[11]));
688  Real lambdac =
689  rhor *
690  std::exp(-std::pow(rhor, _k_a[0]) / _k_a[0] - Utility::pow<2>(_k_a[1] * (Tr - 1.0)) -
691  Utility::pow<2>(_k_a[2] * (rhor - 1.0))) /
692  std::pow(std::pow(Utility::pow<2>(
693  1.0 - 1.0 / Tr +
694  _k_a[3] * std::pow(Utility::pow<2>(rhor - 1.0), 1.0 / (2.0 * _k_a[4]))),
695  _k_a[5]) +
696  std::pow(Utility::pow<2>(_k_a[6] * (rhor - alpha)), _k_a[7]),
697  _k_a[8]);
698 
699  return 4.81384 * (sum1 + std::exp(-5.0 * rhor * rhor) * sum2 + 0.775547504 * lambdac) / 1000.0;
700 }

Referenced by k_from_p_T().

◆ meltingPressure()

Real CO2FluidProperties::meltingPressure ( Real  temperature) const

Melting pressure.

Used to delineate solid and liquid phases Valid for temperatures greater than the triple point temperature

Eq. 3.10, from Span and Wagner (reference above)

Parameters
temperatureCO2 temperature (K)
Returns
melting pressure (Pa)

Definition at line 78 of file CO2FluidProperties.C.

79 {
81  throw MooseException("Temperature is below the triple point temperature in " + name() +
82  ": meltingPressure()");
83 
85 
86  return _triple_point_pressure *
87  (1.0 + 1955.539 * (Tstar - 1.0) + 2055.4593 * Utility::pow<2>(Tstar - 1.0));
88 }

Referenced by rho_from_p_T().

◆ molarMass()

Real CO2FluidProperties::molarMass ( ) const
overridevirtual

Fluid name.

Returns
string representing fluid name Molar mass [kg/mol]
molar mass

Reimplemented from SinglePhaseFluidProperties.

Definition at line 42 of file CO2FluidProperties.C.

43 {
44  return _Mco2;
45 }

◆ mu_from_p_T() [1/2]

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

Definition at line 509 of file CO2FluidProperties.C.

510 {
512  return mu_from_rho_T(rho, temperature);
513 }

◆ mu_from_p_T() [2/2]

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

Definition at line 516 of file CO2FluidProperties.C.

518 {
519  Real rho, drho_dp, drho_dT;
521 
522  Real dmu_drho;
523  mu_from_rho_T(rho, temperature, drho_dT, mu, dmu_drho, dmu_dT);
524  dmu_dp = dmu_drho * drho_dp;
525 }

◆ mu_from_rho_T() [1/2]

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

Definition at line 528 of file CO2FluidProperties.C.

529 {
530  // Check that the input parameters are within the region of validity
531  if (temperature < 216.0 || temperature > 1000.0 || density > 1400.0)
532  throw MooseException("Parameters out of range in " + name() + ": mu_from_rho_T()");
533 
534  Real Tstar = temperature / 251.196;
535 
536  // Viscosity in the zero-density limit
537  Real sum = 0.0;
538 
539  for (std::size_t i = 0; i < _mu_a.size(); ++i)
540  sum += _mu_a[i] * MathUtils::pow(std::log(Tstar), i);
541 
542  Real mu0 = 1.00697 * std::sqrt(temperature) / std::exp(sum);
543 
544  // Excess viscosity due to finite density
545  Real mue = _mu_d[0] * density + _mu_d[1] * Utility::pow<2>(density) +
546  _mu_d[2] * Utility::pow<6>(density) / Utility::pow<3>(Tstar) +
547  _mu_d[3] * Utility::pow<8>(density) + _mu_d[4] * Utility::pow<8>(density) / Tstar;
548 
549  return (mu0 + mue) * 1.0e-6; // convert to Pa.s
550 }

Referenced by mu_from_p_T(), and rho_mu_from_p_T().

◆ mu_from_rho_T() [2/2]

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

Definition at line 553 of file CO2FluidProperties.C.

559 {
560  // Check that the input parameters are within the region of validity
561  if (temperature < 216.0 || temperature > 1000.0 || density > 1400.0)
562  throw MooseException("Parameters out of range in " + name() + ": mu_drhoT()");
563 
564  Real Tstar = temperature / 251.196;
565  Real dTstar_dT = 1.0 / 251.196;
566 
567  // Viscosity in the zero-density limit. Note this is only a function of T.
568  // Start the sum at i = 1 so the derivative is defined
569  Real sum0 = _mu_a[0], dsum0_dTstar = 0.0;
570 
571  for (std::size_t i = 1; i < _mu_a.size(); ++i)
572  {
573  sum0 += _mu_a[i] * MathUtils::pow(std::log(Tstar), i);
574  dsum0_dTstar += i * _mu_a[i] * MathUtils::pow(std::log(Tstar), i - 1) / Tstar;
575  }
576 
577  Real mu0 = 1.00697 * std::sqrt(temperature) / std::exp(sum0);
578  Real dmu0_dT = (0.5 * 1.00697 / std::sqrt(temperature) -
579  1.00697 * std::sqrt(temperature) * dsum0_dTstar * dTstar_dT) /
580  std::exp(sum0);
581 
582  // Excess viscosity due to finite density
583  Real mue = _mu_d[0] * density + _mu_d[1] * Utility::pow<2>(density) +
584  _mu_d[2] * Utility::pow<6>(density) / Utility::pow<3>(Tstar) +
585  _mu_d[3] * Utility::pow<8>(density) + _mu_d[4] * Utility::pow<8>(density) / Tstar;
586 
587  Real dmue_drho = _mu_d[0] + 2.0 * _mu_d[1] * density +
588  6.0 * _mu_d[2] * Utility::pow<5>(density) / Utility::pow<3>(Tstar) +
589  8.0 * _mu_d[3] * Utility::pow<7>(density) +
590  8.0 * _mu_d[4] * Utility::pow<7>(density) / Tstar;
591 
592  Real dmue_dT = (-3.0 * _mu_d[2] * Utility::pow<6>(density) / Utility::pow<4>(Tstar) -
593  _mu_d[4] * Utility::pow<8>(density) / Tstar / Tstar) *
594  dTstar_dT;
595 
596  // Viscosity in Pa.s is
597  mu = (mu0 + mue) * 1.0e-6;
598  dmu_drho = dmue_drho * 1.0e-6;
599  dmu_dT = (dmu0_dT + dmue_dT) * 1.0e-6 + dmu_drho * ddensity_dT;
600 }

◆ p_from_rho_T()

Real CO2FluidProperties::p_from_rho_T ( Real  rho,
Real  T 
) const
overridevirtual

Pressure as a function of density and temperature.

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

Reimplemented from HelmholtzFluidProperties.

Definition at line 447 of file CO2FluidProperties.C.

448 {
449  // Check that the input parameters are within the region of validity
450  if (temperature < 216.0 || temperature > 1100.0 || density <= 0.0)
451  throw MooseException("Parameters out of range in " + name() + ": pressure()");
452 
453  Real pressure = 0.0;
454 
456  {
457  Real gas_density = saturatedVaporDensity(temperature);
458  Real liquid_density = saturatedLiquidDensity(temperature);
459 
460  if (density < gas_density || density > liquid_density)
462  else
464  }
465  else
467 
468  return pressure;
469 }

Referenced by rho_from_p_T().

◆ partialDensity()

Real CO2FluidProperties::partialDensity ( Real  temperature) const

Partial density of dissolved CO2 From Garcia, Density of aqueous solutions of CO2, LBNL-49023 (2001)

Parameters
temperaturefluid temperature (K)
Returns
partial molar density (kg/m^3)

Definition at line 626 of file CO2FluidProperties.C.

627 {
628  // This correlation uses temperature in C
629  Real Tc = temperature - _T_c2k;
630  // The parial volume
631  Real V = 37.51 - 9.585e-2 * Tc + 8.74e-4 * Tc * Tc - 5.044e-7 * Tc * Tc * Tc;
632 
633  return 1.0e6 * _Mco2 / V;
634 }

◆ propfunc() [1/16]

e e e e p h T T SinglePhaseFluidProperties::propfunc ( ,
p  ,
T   
)
inherited

◆ propfunc() [2/16]

e SinglePhaseFluidProperties::propfunc ( ,
v  ,
 
)
inherited

◆ propfunc() [3/16]

e e e e p h T T T SinglePhaseFluidProperties::propfunc ( cv  ,
p  ,
T   
)
inherited

◆ propfunc() [4/16]

e e SinglePhaseFluidProperties::propfunc ( cv  ,
v  ,
 
)
inherited

◆ propfunc() [5/16]

e e e e p h T T T T T SinglePhaseFluidProperties::propfunc ( ,
p  ,
rho   
)
inherited

◆ propfunc() [6/16]

e e e e p h T T T T T v v v s SinglePhaseFluidProperties::propfunc ( ,
v  ,
 
)
inherited

◆ propfunc() [7/16]

e e e e p h T T T T T v v v SinglePhaseFluidProperties::propfunc ( h  ,
p  ,
T   
)
inherited

◆ propfunc() [8/16]

e e e e p h T T T T SinglePhaseFluidProperties::propfunc ( ,
p  ,
T   
)
inherited

◆ propfunc() [9/16]

e e e SinglePhaseFluidProperties::propfunc ( ,
v  ,
 
)
inherited

◆ propfunc() [10/16]

e e e e p h T SinglePhaseFluidProperties::propfunc ( mu  ,
rho  ,
T   
)
inherited

◆ propfunc() [11/16]

e e e e p h T T T T T v SinglePhaseFluidProperties::propfunc ( p  ,
T  ,
v   
)
inherited

◆ propfunc() [12/16]

SinglePhaseFluidProperties::propfunc ( p  ,
v  ,
 
)
inherited

Compute a fluid property given for the state defined by two given properties.

For all functions, the first two arguments are the given properties that define the fluid state. For the two-argument variants, the desired property is the return value. The five-argument variants also provide partial derivatives dx/da and dx/db where x is the desired property being computed, a is the first given property, and b is the second given property. The desired property, dx/da, and dx/db are stored into the 3rd, 4th, and 5th arguments respectively.

Properties/parameters used in these function are listed below with their units:

@begincode p pressure [Pa] T temperature [K] e specific internal energy [J/kg] v specific volume [m^3/kg] rho density [kg/m^3] h specific enthalpy [J/kg] s specific entropy [J/(kg*K)] mu viscosity [Pa*s] k thermal conductivity [W/(m*K)] c speed of sound [m/s] cp constant-pressure specific heat [J/K] cv constant-volume specific heat [J/K] beta volumetric thermal expansion coefficient [1/K] g Gibbs free energy [J] pp_sat partial pressure at saturation [Pa] gamma Adiabatic ratio (cp/cv) [-]

As an example:

@begincode // calculate pressure given specific vol and energy: auto pressure = your_fluid_properties_object.p_from_v_e(specific_vol, specific_energy);

// or use the derivative variant: Real dp_dv = 0; // derivative will be stored into here Real dp_de = 0; // derivative will be stored into here your_fluid_properties_object.p_from_v_e(specific_vol, specific_energy, pressure, dp_dv, dp_de);

Automatic differentiation (AD) support is provided through x_from_a_b(DualReal a, DualReal b) and x_from_a_b(DualReal a, DualReal b, DualReal x, DualReal dx_da, DualReal dx_db) versions of the functions where a and b must be ADReal/DualNumber's calculated using all AD-supporting values:

@begincode auto v = 1/rho; // rho must be an AD non-linear variable. auto e = rhoE/rho - vel_energy; // rhoE and vel_energy must be AD variables/numbers also. auto pressure = your_fluid_properties_object.p_from_v_e(v, e); // pressure now contains partial derivatives w.r.t. all degrees of freedom

◆ propfunc() [13/16]

e e e e p SinglePhaseFluidProperties::propfunc ( rho  ,
p  ,
 
)
inherited

◆ propfunc() [14/16]

e e e e SinglePhaseFluidProperties::propfunc ( ,
h  ,
p   
)
inherited

◆ propfunc() [15/16]

e e e e p h SinglePhaseFluidProperties::propfunc ( ,
p  ,
T   
)
inherited

◆ propfunc() [16/16]

e e e e p h T T T T T v v SinglePhaseFluidProperties::propfunc ( ,
T  ,
v   
)
inherited

◆ propfuncWithDefault() [1/2]

e e e e p h T T T T T v v v s h SinglePhaseFluidProperties::propfuncWithDefault ( beta  ,
p  ,
T   
)
inherited

◆ propfuncWithDefault() [2/2]

e e e e p h T T T T T v v v s h T SinglePhaseFluidProperties::propfuncWithDefault ( ,
p  ,
T   
)
inherited

◆ rho_e_from_p_T()

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

Definition at line 242 of file SinglePhaseFluidProperties.C.

250 {
251  rho_from_p_T(p, T, rho, drho_dp, drho_dT);
252  e_from_p_T(p, T, e, de_dp, de_dT);
253 }

◆ rho_from_p_T() [1/2]

Real CO2FluidProperties::rho_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Reimplemented from HelmholtzFluidProperties.

Definition at line 472 of file CO2FluidProperties.C.

473 {
474  // Check that the input parameters are within the region of validity
475  if (temperature < 216.0 || temperature > 1100.0 || pressure <= 0.0)
476  throw MooseException("Parameters out of range in " + name() + ": rho_from_p_T()");
477 
478  // Also check that the pressure and temperature are not in the solid phase region
481  throw MooseException("Input pressure and temperature in " + name() +
482  ": rho_from_p_T() correspond to solid CO2 phase");
483 
484  Real density;
485  // Initial estimate of a bracketing interval for the density
486  Real lower_density = 100.0;
487  Real upper_density = 1000.0;
488 
489  // The density is found by finding the zero of the pressure calculated using the
490  // Span and Wagner EOS minus the input pressure
491  auto pressure_diff = [&pressure, &temperature, this](Real x) {
492  return p_from_rho_T(x, temperature) - pressure;
493  };
494 
495  BrentsMethod::bracket(pressure_diff, lower_density, upper_density);
496  density = BrentsMethod::root(pressure_diff, lower_density, upper_density);
497 
498  return density;
499 }

Referenced by k_from_p_T(), mu_from_p_T(), and rho_mu_from_p_T().

◆ rho_from_p_T() [2/2]

void CO2FluidProperties::rho_from_p_T ( Real  pressure,
Real  temperature,
Real &  rho,
Real &  drho_dp,
Real &  drho_dT 
) const
overridevirtual

Reimplemented from HelmholtzFluidProperties.

Definition at line 502 of file CO2FluidProperties.C.

504 {
506 }

◆ rho_mu_from_p_T() [1/3]

void SinglePhaseFluidProperties::rho_mu_from_p_T ( const DualReal &  p,
const DualReal &  T,
DualReal &  rho,
DualReal &  mu 
) const
virtualinherited

Definition at line 277 of file SinglePhaseFluidProperties.C.

281 {
282  rho = rho_from_p_T(p, T);
283  mu = mu_from_p_T(p, T);
284 }

◆ rho_mu_from_p_T() [2/3]

void CO2FluidProperties::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

Reimplemented from SinglePhaseFluidProperties.

Definition at line 610 of file CO2FluidProperties.C.

618 {
619  rho_from_p_T(pressure, temperature, rho, drho_dp, drho_dT);
620  Real dmu_drho;
621  mu_from_rho_T(rho, temperature, drho_dT, mu, dmu_drho, dmu_dT);
622  dmu_dp = dmu_drho * drho_dp;
623 }

◆ rho_mu_from_p_T() [3/3]

void CO2FluidProperties::rho_mu_from_p_T ( Real  p,
Real  T,
Real &  rho,
Real &  mu 
) const
overridevirtual

Combined methods.

These methods are particularly useful for the PorousFlow module, where density and viscosity are typically both computed everywhere. The combined methods allow the most efficient means of calculating both properties, especially where rho(p, T) and mu(rho, T). In this case, an extra density calculation would be required to calculate mu(p, T). All propery names are described above.

Reimplemented from SinglePhaseFluidProperties.

Definition at line 603 of file CO2FluidProperties.C.

604 {
607 }

◆ s_from_p_T() [1/2]

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

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 }

◆ s_from_p_T() [2/2]

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

Definition at line 150 of file HelmholtzFluidProperties.C.

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 }

Referenced by HelmholtzFluidProperties::s_from_p_T().

◆ saturatedLiquidDensity()

Real CO2FluidProperties::saturatedLiquidDensity ( Real  temperature) const

Saturated liquid density of CO2 Valid for temperatures between the triple point temperature and critical temperature.

Eq. 3.14, from Span and Wagner (reference above)

Parameters
temperatureCO2 temperature (K)
Returns
saturated liquid density (kg/m^3)

Definition at line 130 of file CO2FluidProperties.C.

131 {
132  if (temperature < _triple_point_temperature || temperature > _critical_temperature)
133  throw MooseException("Temperature is out of range in " + name() + ": saturatedLiquiDensity()");
134 
135  Real Tstar = temperature / _critical_temperature;
136 
137  Real logdensity = 1.9245108 * std::pow(1.0 - Tstar, 0.34) -
138  0.62385555 * std::pow(1.0 - Tstar, 0.5) -
139  0.32731127 * std::pow(1.0 - Tstar, 10.0 / 6.0) +
140  0.39245142 * std::pow(1.0 - Tstar, 11.0 / 6.0);
141 
142  return _critical_density * std::exp(logdensity);
143 }

Referenced by p_from_rho_T().

◆ saturatedVaporDensity()

Real CO2FluidProperties::saturatedVaporDensity ( Real  temperature) const

Saturated vapor density of CO2 Valid for temperatures between the triple point temperature and critical temperature.

Eq. 3.15, from Span and Wagner (reference above)

Parameters
temperatureCO2 temperature (K)
Returns
saturated vapor density (kg/m^3)

Definition at line 146 of file CO2FluidProperties.C.

147 {
148  if (temperature < _triple_point_temperature || temperature > _critical_temperature)
149  throw MooseException("Temperature is out of range in " + name() + ": saturatedVaporDensity()");
150 
151  Real Tstar = temperature / _critical_temperature;
152 
153  Real logdensity =
154  (-1.7074879 * std::pow(1.0 - Tstar, 0.34) - 0.82274670 * std::pow(1.0 - Tstar, 0.5) -
155  4.6008549 * (1.0 - Tstar) - 10.111178 * std::pow(1.0 - Tstar, 7.0 / 3.0) -
156  29.742252 * std::pow(1.0 - Tstar, 14.0 / 3.0));
157 
158  return _critical_density * std::exp(logdensity);
159 }

Referenced by p_from_rho_T().

◆ subdomainSetup()

virtual void FluidProperties::subdomainSetup ( )
inlinefinalvirtualinherited

Definition at line 39 of file FluidProperties.h.

39 {}

◆ sublimationPressure()

Real CO2FluidProperties::sublimationPressure ( Real  temperature) const

Sublimation pressure.

Used to delineate solid and gas phases Valid for temperatures less than the triple point temperature

Eq. 3.12, from Span and Wagner (reference above)

Parameters
temperatureCO2 temperature (K)
Returns
sublimation pressure (Pa)

Definition at line 91 of file CO2FluidProperties.C.

92 {
94  throw MooseException("Temperature is above the triple point temperature in " + name() +
95  ": sublimationPressure()");
96 
98 
100  std::exp((-14.740846 * (1.0 - Tstar) + 2.4327015 * std::pow(1.0 - Tstar, 1.9) -
101  5.3061778 * std::pow(1.0 - Tstar, 2.9)) /
102  Tstar);
103 
104  return pressure;
105 }

Referenced by rho_from_p_T().

◆ threadJoin()

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

Definition at line 38 of file FluidProperties.h.

38 {}

◆ triplePointPressure()

Real CO2FluidProperties::triplePointPressure ( ) const
overridevirtual

Triple point pressure.

Returns
triple point pressure (Pa)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 66 of file CO2FluidProperties.C.

67 {
69 }

◆ triplePointTemperature()

Real CO2FluidProperties::triplePointTemperature ( ) const
overridevirtual

Triple point temperature.

Returns
triple point temperature (K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 72 of file CO2FluidProperties.C.

73 {
75 }

◆ 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 IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 292 of file SinglePhaseFluidProperties.C.

293 {
294  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
295 }

Referenced by IdealRealGasMixtureFluidProperties::v_from_p_T().

◆ vaporPressure() [1/3]

DualReal SinglePhaseFluidProperties::vaporPressure ( const DualReal &  T) const
inherited

Definition at line 198 of file SinglePhaseFluidProperties.C.

199 {
200  Real p = 0.0;
201  Real temperature = T.value();
202  Real dpdT = 0.0;
203 
204  vaporPressure(temperature, p, dpdT);
205 
206  DualReal result = p;
207  result.derivatives() = T.derivatives() * dpdT;
208 
209  return result;
210 }

◆ vaporPressure() [2/3]

Real CO2FluidProperties::vaporPressure ( Real  T) const
overridevirtual

Vapor pressure.

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

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

Reimplemented from SinglePhaseFluidProperties.

Definition at line 108 of file CO2FluidProperties.C.

109 {
110  if (temperature < _triple_point_temperature || temperature > _critical_temperature)
111  throw MooseException("Temperature is out of range in " + name() + ": vaporPressure()");
112 
113  Real Tstar = temperature / _critical_temperature;
114 
115  Real logpressure =
116  (-7.0602087 * (1.0 - Tstar) + 1.9391218 * std::pow(1.0 - Tstar, 1.5) -
117  1.6463597 * Utility::pow<2>(1.0 - Tstar) - 3.2995634 * Utility::pow<4>(1.0 - Tstar)) /
118  Tstar;
119 
120  return _critical_pressure * std::exp(logpressure);
121 }

Referenced by p_from_rho_T().

◆ vaporPressure() [3/3]

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

Reimplemented from SinglePhaseFluidProperties.

Definition at line 124 of file CO2FluidProperties.C.

125 {
126  mooseError(name(), ": vaporPressure() is not implemented");
127 }

◆ vaporTemperature() [1/3]

DualReal SinglePhaseFluidProperties::vaporTemperature ( const DualReal &  p) const
inherited

Definition at line 227 of file SinglePhaseFluidProperties.C.

228 {
229  Real T = 0.0;
230  Real pressure = p.value();
231  Real dTdp = 0.0;
232 
233  vaporTemperature(pressure, T, dTdp);
234 
235  DualReal result = T;
236  result.derivatives() = p.derivatives() * dTdp;
237 
238  return result;
239 }

◆ vaporTemperature() [2/3]

Real SinglePhaseFluidProperties::vaporTemperature ( Real  p) const
virtualinherited

Vapor temperature.

Used to delineate liquid and gas phases. Valid for pressures between the triple point pressure and the critical pressure

Parameters
pfluid pressure (Pa)
[out]saturationtemperature (K)
[out]derivativeof saturation temperature wrt pressure

Reimplemented in Water97FluidProperties.

Definition at line 212 of file SinglePhaseFluidProperties.C.

213 {
214  mooseError(name(), ": ", __PRETTY_FUNCTION__, " not implemented.");
215 }

Referenced by PorousFlowWaterVapor::thermophysicalProperties(), and SinglePhaseFluidProperties::vaporTemperature().

◆ vaporTemperature() [3/3]

void SinglePhaseFluidProperties::vaporTemperature ( Real  p,
Real &  Tsat,
Real &  dTsat_dp 
) const
virtualinherited

Reimplemented in Water97FluidProperties.

Definition at line 218 of file SinglePhaseFluidProperties.C.

219 {
220  fluidPropError(name(), ": ", __PRETTY_FUNCTION__, " derivatives not implemented.");
221 
222  dT_dp = 0.0;
223  T = vaporTemperature(p);
224 }

Member Data Documentation

◆ _a0

const std::array<Real, 5> CO2FluidProperties::_a0 {{1.99427042, 0.62105248, 0.41195293, 1.04028922, 0.08327678}}
protected

Coefficients for the ideal gas component of the Helmholtz free energy.

Definition at line 195 of file CO2FluidProperties.h.

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

◆ _a4

const std::array<Real, 3> CO2FluidProperties::_a4 {{3.5, 3.5, 3.5}}
protected

◆ _A4

const std::array<Real, 3> CO2FluidProperties::_A4 {{0.7, 0.7, 0.7}}
protected

◆ _allow_imperfect_jacobians

const bool FluidProperties::_allow_imperfect_jacobians
protectedinherited

Flag to set unimplemented Jacobian entries to zero.

Definition at line 48 of file FluidProperties.h.

Referenced by SinglePhaseFluidProperties::fluidPropError().

◆ _alpha3

const std::array<Real, 5> CO2FluidProperties::_alpha3 {{25.0, 25.0, 25.0, 15.0, 20.0}}
protected

◆ _b4

const std::array<Real, 3> CO2FluidProperties::_b4 {{0.875, 0.925, 0.875}}
protected

◆ _B4

const std::array<Real, 3> CO2FluidProperties::_B4 {{0.3, 0.3, 1.0}}
protected

◆ _beta3

const std::array<Real, 5> CO2FluidProperties::_beta3 {{325.0, 300.0, 300.0, 275.0, 275.0}}
protected

◆ _beta4

const std::array<Real, 3> CO2FluidProperties::_beta4 {{0.3, 0.3, 0.3}}
protected

◆ _c2

const std::array<unsigned int, 27> CO2FluidProperties::_c2
protected
Initial value:
{
{1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 6}}

Definition at line 221 of file CO2FluidProperties.h.

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

◆ _C4

const std::array<Real, 3> CO2FluidProperties::_C4 {{10.0, 10.0, 12.5}}
protected

◆ _critical_density

const Real CO2FluidProperties::_critical_density = 467.6
protected

Critical density (kg/m^3)

Definition at line 186 of file CO2FluidProperties.h.

Referenced by criticalDensity(), k_from_rho_T(), saturatedLiquidDensity(), and saturatedVaporDensity().

◆ _critical_pressure

const Real CO2FluidProperties::_critical_pressure = 7.3773e6
protected

Critical pressure (Pa)

Definition at line 182 of file CO2FluidProperties.h.

Referenced by criticalPressure(), and vaporPressure().

◆ _critical_temperature

const Real CO2FluidProperties::_critical_temperature = 304.1282
protected

◆ _d1

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

◆ _d2

const std::array<unsigned int, 27> CO2FluidProperties::_d2
protected
Initial value:
{
{1, 2, 4, 5, 5, 5, 6, 6, 6, 1, 1, 4, 4, 4, 7, 8, 2, 3, 3, 5, 5, 6, 7, 8, 10, 4, 8}}

Definition at line 216 of file CO2FluidProperties.h.

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

◆ _d3

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

◆ _D4

const std::array<Real, 3> CO2FluidProperties::_D4 {{275.0, 275.0, 275.0}}
protected

◆ _eps3

const std::array<Real, 5> CO2FluidProperties::_eps3 {{1.0, 1.0, 1.0, 1.0, 1.0}}
protected

◆ _gamma3

const std::array<Real, 5> CO2FluidProperties::_gamma3 {{1.16, 1.19, 1.19, 1.25, 1.25}}
protected

◆ _k_a

const std::array<Real, 12> CO2FluidProperties::_k_a
protected
Initial value:
{
{3.0, 6.70697, 0.94604, 0.3, 0.3, 0.39751, 0.33791, 0.77963, 0.79857, 0.9, 0.02, 0.2}}

Definition at line 253 of file CO2FluidProperties.h.

Referenced by k_from_rho_T().

◆ _k_g1

const std::array<Real, 3> CO2FluidProperties::_k_g1 {{0.0, 0.0, 1.5}}
protected

Coefficients for the thermal conductivity.

Definition at line 246 of file CO2FluidProperties.h.

Referenced by k_from_rho_T().

◆ _k_g2

const std::array<Real, 7> CO2FluidProperties::_k_g2 {{0.0, 1.0, 1.5, 1.5, 1.5, 3.5, 5.5}}
protected

Definition at line 247 of file CO2FluidProperties.h.

Referenced by k_from_rho_T().

◆ _k_h1

const std::array<unsigned int, 3> CO2FluidProperties::_k_h1 {{1, 5, 1}}
protected

Definition at line 248 of file CO2FluidProperties.h.

Referenced by k_from_rho_T().

◆ _k_h2

const std::array<unsigned int, 7> CO2FluidProperties::_k_h2 {{1, 2, 0, 5, 9, 0, 0}}
protected

Definition at line 249 of file CO2FluidProperties.h.

Referenced by k_from_rho_T().

◆ _k_n1

const std::array<Real, 3> CO2FluidProperties::_k_n1 {{7.69857587, 0.159885811, 1.56918621}}
protected

Definition at line 250 of file CO2FluidProperties.h.

Referenced by k_from_rho_T().

◆ _k_n2

const std::array<Real, 7> CO2FluidProperties::_k_n2
protected
Initial value:
{
{-6.73400790, 16.3890156, 3.69415242, 22.3205514, 66.1420950, -0.171779133, 0.00433043347}}

Definition at line 251 of file CO2FluidProperties.h.

Referenced by k_from_rho_T().

◆ _Mco2

const Real CO2FluidProperties::_Mco2 = 44.0098e-3
protected

Molar mass of CO2 (kg/mol)

Definition at line 180 of file CO2FluidProperties.h.

Referenced by molarMass(), and partialDensity().

◆ _mu_a

const std::array<Real, 5> CO2FluidProperties::_mu_a {{0.235156, -0.491266, 5.211155e-2, 5.347906e-2, -1.537102e-2}}
protected

Coefficients for viscosity.

Definition at line 241 of file CO2FluidProperties.h.

Referenced by mu_from_rho_T().

◆ _mu_d

const std::array<Real, 5> CO2FluidProperties::_mu_d
protected
Initial value:
{
{0.4071119e-2, 0.7198037e-4, 0.2411697e-16, 0.2971072e-22, -0.1627888e-22}}

Definition at line 242 of file CO2FluidProperties.h.

Referenced by mu_from_rho_T().

◆ _n1

const std::array<Real, 7> CO2FluidProperties::_n1
protected
Initial value:
{{0.38856823203161,
2.9385475942740,
-5.5867188534934,
-0.76753199592477,
0.31729005580416,
0.54803315897767,
0.12279411220335}}

Coefficients for the residual component of the Helmholtz free energy.

Definition at line 199 of file CO2FluidProperties.h.

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

◆ _n2

const std::array<Real, 27> CO2FluidProperties::_n2
protected
Initial value:
{
{2.1658961543220, 1.5841735109724, -0.23132705405503, 0.058116916431436,
-0.55369137205382, 0.48946615909422, -0.024275739843501, 0.062494790501678,
-0.12175860225246, -0.37055685270086, -0.016775879700426, -0.11960736637987,
-0.045619362508778, 0.035612789270346, -0.0074427727132052, -0.0017395704902432,
-0.021810121289527, 0.024332166559236, -0.037440133423463, 0.14338715756878,
-0.13491969083286, -0.023151225053480, 0.012363125492901, 0.0021058321972940,
-0.00033958519026368, 0.0055993651771592, -0.00030335118055646}}

Definition at line 208 of file CO2FluidProperties.h.

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

◆ _n3

const std::array<Real, 5> CO2FluidProperties::_n3
protected
Initial value:
{
{-213.65488688320, 26641.569149272, -24027.212204557, -283.41603423999, 212.47284400179}}

Definition at line 223 of file CO2FluidProperties.h.

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

◆ _n4

const std::array<Real, 3> CO2FluidProperties::_n4 {{-0.66642276540751, 0.72608632349897, 0.055068668612842}}
protected

◆ _R

const Real FluidProperties::_R = 8.3144598
staticinherited

◆ _Rco2

const Real CO2FluidProperties::_Rco2 = 188.9241
protected

Specific gas constant (J/mol/K)

Definition at line 192 of file CO2FluidProperties.h.

◆ _t1

const std::array<Real, 7> CO2FluidProperties::_t1 {{0.0, 0.75, 1.0, 2.0, 0.75, 2.0, 0.75}}
protected

◆ _t2

const std::array<Real, 27> CO2FluidProperties::_t2
protected
Initial value:
{{1.5, 1.5, 2.5, 0.0, 1.5, 2.0, 0.0, 1.0, 2.0,
3.0, 6.0, 3.0, 6.0, 8.0, 6.0, 0.0, 7.0, 12.0,
16.0, 22.0, 24.0, 16.0, 24.0, 8.0, 2.0, 28.0, 14.0}}

Definition at line 218 of file CO2FluidProperties.h.

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

◆ _t3

const std::array<unsigned int, 5> CO2FluidProperties::_t3 {{1, 0, 1, 3, 3}}
protected

◆ _T_c2k

const Real FluidProperties::_T_c2k
protectedinherited

◆ _theta0

const std::array<Real, 5> CO2FluidProperties::_theta0 {{3.15163, 6.11190, 6.77708, 11.32384, 27.08792}}
protected

Definition at line 196 of file CO2FluidProperties.h.

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

◆ _triple_point_pressure

const Real CO2FluidProperties::_triple_point_pressure = 0.51795e6
protected

Triple point pressure (Pa)

Definition at line 188 of file CO2FluidProperties.h.

Referenced by meltingPressure(), sublimationPressure(), and triplePointPressure().

◆ _triple_point_temperature

const Real CO2FluidProperties::_triple_point_temperature = 216.592
protected

Triple point temperature (K)

Definition at line 190 of file CO2FluidProperties.h.

Referenced by meltingPressure(), p_from_rho_T(), rho_from_p_T(), sublimationPressure(), and triplePointTemperature().

◆ h [1/2]

e e e e SinglePhaseFluidProperties::h
inherited

◆ h [2/2]

e e e e p h T T T T T v v v SinglePhaseFluidProperties::h
inherited

Definition at line 183 of file SinglePhaseFluidProperties.h.

◆ p [1/6]

e e e e p h SinglePhaseFluidProperties::p
inherited

Definition at line 167 of file SinglePhaseFluidProperties.h.

Referenced by StiffenedGasFluidProperties::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), IdealGasFluidProperties::cp_from_p_T(), IdealGasFluidProperties::cv_from_p_T(), StiffenedGasFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), StiffenedGasFluidProperties::e_from_p_T(), IdealGasFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::g_from_v_e(), IdealGasFluidProperties::g_from_v_e(), TabulatedFluidProperties::generateTabulatedData(), StiffenedGasFluidProperties::h_from_p_T(), IdealGasFluidProperties::h_from_p_T(), Water97FluidProperties::henryConstant(), IdealGasFluidProperties::k_from_p_T(), StiffenedGasFluidProperties::p_from_h_s(), IdealGasFluidProperties::p_from_h_s(), StiffenedGasFluidProperties::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), IdealGasFluidProperties::p_from_v_e(), StiffenedGasFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), SinglePhaseFluidProperties::rho_e_from_p_T(), StiffenedGasFluidProperties::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), StiffenedGasFluidProperties::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), StiffenedGasFluidProperties::s_from_h_p(), IdealGasFluidProperties::s_from_h_p(), StiffenedGasFluidProperties::s_from_p_T(), IdealGasFluidProperties::s_from_p_T(), SimpleFluidProperties::s_from_p_T(), Water97FluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_p_T(), IdealGasFluidProperties::s_from_T_v(), StiffenedGasFluidProperties::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), Water97FluidProperties::T_from_p_h(), FlinakFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), Water97FluidProperties::vaporPressure(), SinglePhaseFluidProperties::vaporPressure(), Water97FluidProperties::vaporTemperature(), SinglePhaseFluidProperties::vaporTemperature(), and TabulatedFluidProperties::writeTabulatedData().

◆ p [2/6]

e e e e p h T T SinglePhaseFluidProperties::p
inherited

Definition at line 171 of file SinglePhaseFluidProperties.h.

◆ p [3/6]

e e e e p h T T T SinglePhaseFluidProperties::p
inherited

Definition at line 173 of file SinglePhaseFluidProperties.h.

◆ p [4/6]

e e e e p h T T T T SinglePhaseFluidProperties::p
inherited

Definition at line 175 of file SinglePhaseFluidProperties.h.

◆ p [5/6]

e e e e p h T T T T T v v v s SinglePhaseFluidProperties::p
inherited

Definition at line 185 of file SinglePhaseFluidProperties.h.

◆ p [6/6]

e e e e p h T T T T T v v v s h SinglePhaseFluidProperties::p
inherited

Definition at line 187 of file SinglePhaseFluidProperties.h.

◆ propfuncWithDefault

e e e e p h T T T T T v v v s h T e SinglePhaseFluidProperties::propfuncWithDefault(gamma, p, T)
inherited

Definition at line 190 of file SinglePhaseFluidProperties.h.

◆ rho

e e e e p h T SinglePhaseFluidProperties::rho
inherited

◆ T [1/3]

e e e e p h T T T T T SinglePhaseFluidProperties::T
inherited

Definition at line 177 of file SinglePhaseFluidProperties.h.

Referenced by IdealGasFluidProperties::c_from_p_T(), IdealGasFluidProperties::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), IdealGasFluidProperties::cp_from_p_T(), IdealGasFluidProperties::cv_from_p_T(), StiffenedGasFluidProperties::e_from_p_T(), IdealGasFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_T_v(), IdealGasFluidProperties::e_from_T_v(), StiffenedGasFluidProperties::g_from_v_e(), IdealGasFluidProperties::g_from_v_e(), StiffenedGasFluidProperties::h_from_p_T(), IdealGasFluidProperties::h_from_p_T(), StiffenedGasFluidProperties::h_from_T_v(), IdealGasFluidProperties::h_from_T_v(), Water97FluidProperties::henryConstant(), IdealGasFluidProperties::k_from_p_T(), HeliumFluidProperties::k_from_v_e(), IdealGasFluidProperties::mu_from_p_T(), StiffenedGasFluidProperties::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), HeliumFluidProperties::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), SinglePhaseFluidProperties::rho_e_from_p_T(), StiffenedGasFluidProperties::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), StiffenedGasFluidProperties::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), StiffenedGasFluidProperties::s_from_p_T(), IdealGasFluidProperties::s_from_p_T(), SimpleFluidProperties::s_from_p_T(), Water97FluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_p_T(), StiffenedGasFluidProperties::s_from_T_v(), IdealGasFluidProperties::s_from_T_v(), StiffenedGasFluidProperties::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), IdealGasFluidProperties::T_from_p_h(), Water97FluidProperties::T_from_p_h(), StiffenedGasFluidProperties::T_from_v_e(), IdealGasFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), HeliumFluidProperties::T_from_v_e(), SinglePhaseFluidProperties::vaporPressure(), Water97FluidProperties::vaporTemperature(), and SinglePhaseFluidProperties::vaporTemperature().

◆ T [2/3]

e e e e p h T T T T T v SinglePhaseFluidProperties::T
inherited

Definition at line 179 of file SinglePhaseFluidProperties.h.

◆ T [3/3]

e e e e p h T T T T T v v SinglePhaseFluidProperties::T
inherited

Definition at line 181 of file SinglePhaseFluidProperties.h.

◆ v [1/6]

SinglePhaseFluidProperties::v
inherited

Definition at line 155 of file SinglePhaseFluidProperties.h.

Referenced by StiffenedGasFluidProperties::c_from_v_e(), IdealGasFluidProperties::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), StiffenedGasFluidProperties::cp_from_v_e(), IdealGasFluidProperties::cp_from_v_e(), FlibeFluidProperties::cp_from_v_e(), FlinakFluidProperties::cp_from_v_e(), HeliumFluidProperties::cp_from_v_e(), FlibeFluidProperties::cv_from_p_T(), FlinakFluidProperties::cv_from_p_T(), IdealGasFluidProperties::cv_from_v_e(), FlibeFluidProperties::cv_from_v_e(), FlinakFluidProperties::cv_from_v_e(), HeliumFluidProperties::cv_from_v_e(), FlinakFluidProperties::e_from_p_T(), FlibeFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_T_v(), IdealGasFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::g_from_v_e(), IdealGasFluidProperties::g_from_v_e(), FlibeFluidProperties::k_from_v_e(), FlinakFluidProperties::k_from_v_e(), HeliumFluidProperties::k_from_v_e(), FlibeFluidProperties::mu_from_v_e(), FlinakFluidProperties::mu_from_v_e(), HeliumFluidProperties::mu_from_v_e(), StiffenedGasFluidProperties::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), StiffenedGasFluidProperties::p_from_v_e(), IdealGasFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), StiffenedGasFluidProperties::s_from_T_v(), IdealGasFluidProperties::s_from_T_v(), StiffenedGasFluidProperties::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), StiffenedGasFluidProperties::T_from_v_e(), IdealGasFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), HeliumFluidProperties::T_from_v_e(), StiffenedGasFluidProperties::v_e_spndl_from_T(), IdealGasFluidProperties::v_e_spndl_from_T(), FlinakFluidProperties::v_from_p_T(), and FlibeFluidProperties::v_from_p_T().

◆ v [2/6]

e SinglePhaseFluidProperties::v
inherited

Definition at line 157 of file SinglePhaseFluidProperties.h.

◆ v [3/6]

e e SinglePhaseFluidProperties::v
inherited

Definition at line 159 of file SinglePhaseFluidProperties.h.

◆ v [4/6]

e e e SinglePhaseFluidProperties::v
inherited

Definition at line 161 of file SinglePhaseFluidProperties.h.

◆ v [5/6]

e e e e p SinglePhaseFluidProperties::v
inherited

Definition at line 165 of file SinglePhaseFluidProperties.h.

◆ v [6/6]

e e e e p h T T T T T v v v s h T SinglePhaseFluidProperties::v
inherited

Definition at line 189 of file SinglePhaseFluidProperties.h.


The documentation for this class was generated from the following files:
HelmholtzFluidProperties::h_from_p_T
virtual Real h_from_p_T(Real pressure, Real temperature) const override
Definition: HelmholtzFluidProperties.C:185
CO2FluidProperties::_D4
const std::array< Real, 3 > _D4
Definition: CO2FluidProperties.h:238
CO2FluidProperties::_B4
const std::array< Real, 3 > _B4
Definition: CO2FluidProperties.h:236
CO2FluidProperties::_k_n1
const std::array< Real, 3 > _k_n1
Definition: CO2FluidProperties.h:250
HelmholtzFluidProperties::rho_from_p_T
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Definition: HelmholtzFluidProperties.C:29
CO2FluidProperties::_n3
const std::array< Real, 5 > _n3
Definition: CO2FluidProperties.h:223
CO2FluidProperties::rho_from_p_T
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Definition: CO2FluidProperties.C:472
CO2FluidProperties::_n1
const std::array< Real, 7 > _n1
Coefficients for the residual component of the Helmholtz free energy.
Definition: CO2FluidProperties.h:199
CO2FluidProperties::_C4
const std::array< Real, 3 > _C4
Definition: CO2FluidProperties.h:237
CO2FluidProperties::_k_g2
const std::array< Real, 7 > _k_g2
Definition: CO2FluidProperties.h:247
CO2FluidProperties::_n4
const std::array< Real, 3 > _n4
Definition: CO2FluidProperties.h:231
HelmholtzFluidProperties::p_from_rho_T
virtual Real p_from_rho_T(Real rho, Real T) const
Pressure as a function of density and temperature.
Definition: HelmholtzFluidProperties.C:222
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
CO2FluidProperties::_gamma3
const std::array< Real, 5 > _gamma3
Definition: CO2FluidProperties.h:229
CO2FluidProperties::_k_a
const std::array< Real, 12 > _k_a
Definition: CO2FluidProperties.h:253
CO2FluidProperties::_mu_d
const std::array< Real, 5 > _mu_d
Definition: CO2FluidProperties.h:242
CO2FluidProperties::_beta4
const std::array< Real, 3 > _beta4
Definition: CO2FluidProperties.h:234
HelmholtzFluidProperties::alpha
virtual Real alpha(Real delta, Real tau) const =0
Helmholtz free energy.
CO2FluidProperties::_critical_temperature
const Real _critical_temperature
Critical temperature (K)
Definition: CO2FluidProperties.h:184
CO2FluidProperties::_theta0
const std::array< Real, 5 > _theta0
Definition: CO2FluidProperties.h:196
BrentsMethod::root
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's method.
Definition: BrentsMethod.C:61
CO2FluidProperties::_k_n2
const std::array< Real, 7 > _k_n2
Definition: CO2FluidProperties.h:251
CO2FluidProperties::_alpha3
const std::array< Real, 5 > _alpha3
Definition: CO2FluidProperties.h:227
HelmholtzFluidProperties::d2alpha_dtau2
virtual Real d2alpha_dtau2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt tau.
HelmholtzFluidProperties::HelmholtzFluidProperties
HelmholtzFluidProperties(const InputParameters &parameters)
Definition: HelmholtzFluidProperties.C:23
CO2FluidProperties::_k_g1
const std::array< Real, 3 > _k_g1
Coefficients for the thermal conductivity.
Definition: CO2FluidProperties.h:246
CO2FluidProperties::saturatedVaporDensity
Real saturatedVaporDensity(Real temperature) const
Saturated vapor density of CO2 Valid for temperatures between the triple point temperature and critic...
Definition: CO2FluidProperties.C:146
CO2FluidProperties::_a0
const std::array< Real, 5 > _a0
Coefficients for the ideal gas component of the Helmholtz free energy.
Definition: CO2FluidProperties.h:195
CO2FluidProperties::_b4
const std::array< Real, 3 > _b4
Definition: CO2FluidProperties.h:233
CO2FluidProperties::_Mco2
const Real _Mco2
Molar mass of CO2 (kg/mol)
Definition: CO2FluidProperties.h:180
CO2FluidProperties::_d1
const std::array< unsigned int, 7 > _d1
Definition: CO2FluidProperties.h:206
FluidProperties::_T_c2k
const Real _T_c2k
Conversion of temperature from Celsius to Kelvin.
Definition: FluidProperties.h:46
HelmholtzFluidProperties::d2alpha_ddelta2
virtual Real d2alpha_ddelta2(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta.
HelmholtzFluidProperties::e_from_p_T
virtual Real e_from_p_T(Real pressure, Real temperature) const override
Definition: HelmholtzFluidProperties.C:65
CO2FluidProperties::_A4
const std::array< Real, 3 > _A4
Definition: CO2FluidProperties.h:235
CO2FluidProperties::_a4
const std::array< Real, 3 > _a4
Definition: CO2FluidProperties.h:232
HelmholtzFluidProperties::dalpha_dtau
virtual Real dalpha_dtau(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt tau.
CO2FluidProperties::_c2
const std::array< unsigned int, 27 > _c2
Definition: CO2FluidProperties.h:221
NS::density
const std::string density
Definition: NS.h:16
CO2FluidProperties::_d3
const std::array< unsigned int, 5 > _d3
Definition: CO2FluidProperties.h:225
SinglePhaseFluidProperties::T
e e e e p h T T T T T T
Definition: SinglePhaseFluidProperties.h:177
SinglePhaseFluidProperties::criticalTemperature
virtual Real criticalTemperature() const
Critical temperature.
Definition: SinglePhaseFluidProperties.C:114
CO2FluidProperties::_triple_point_temperature
const Real _triple_point_temperature
Triple point temperature (K)
Definition: CO2FluidProperties.h:190
CO2FluidProperties::vaporPressure
virtual Real vaporPressure(Real temperature) const override
Vapor pressure.
Definition: CO2FluidProperties.C:108
CO2FluidProperties::sublimationPressure
Real sublimationPressure(Real temperature) const
Sublimation pressure.
Definition: CO2FluidProperties.C:91
SinglePhaseFluidProperties::rho
e e e e p h T rho
Definition: SinglePhaseFluidProperties.h:169
SinglePhaseFluidProperties::vaporPressure
virtual Real vaporPressure(Real T) const
Vapor pressure.
Definition: SinglePhaseFluidProperties.C:177
SinglePhaseFluidProperties::vaporTemperature
virtual Real vaporTemperature(Real p) const
Vapor temperature.
Definition: SinglePhaseFluidProperties.C:212
name
const std::string name
Definition: Setup.h:21
CO2FluidProperties::_beta3
const std::array< Real, 5 > _beta3
Definition: CO2FluidProperties.h:228
CO2FluidProperties::meltingPressure
Real meltingPressure(Real temperature) const
Melting pressure.
Definition: CO2FluidProperties.C:78
CO2FluidProperties::k_from_rho_T
virtual Real k_from_rho_T(Real density, Real temperature) const override
Definition: CO2FluidProperties.C:666
CO2FluidProperties::_critical_pressure
const Real _critical_pressure
Critical pressure (Pa)
Definition: CO2FluidProperties.h:182
SinglePhaseFluidProperties::criticalDensity
virtual Real criticalDensity() const
Critical density.
Definition: SinglePhaseFluidProperties.C:120
CO2FluidProperties::mu_from_rho_T
virtual Real mu_from_rho_T(Real density, Real temperature) const override
Definition: CO2FluidProperties.C:528
CO2FluidProperties::_critical_density
const Real _critical_density
Critical density (kg/m^3)
Definition: CO2FluidProperties.h:186
CO2FluidProperties::_triple_point_pressure
const Real _triple_point_pressure
Triple point pressure (Pa)
Definition: CO2FluidProperties.h:188
SinglePhaseFluidProperties::molarMass
virtual virtual std Real molarMass() const
Fluid name.
Definition: SinglePhaseFluidProperties.C:96
CO2FluidProperties::_d2
const std::array< unsigned int, 27 > _d2
Definition: CO2FluidProperties.h:216
SinglePhaseFluidProperties::fluidPropError
void fluidPropError(Args... args) const
Definition: SinglePhaseFluidProperties.h:326
CO2FluidProperties::_n2
const std::array< Real, 27 > _n2
Definition: CO2FluidProperties.h:208
FluidProperties::_R
static const Real _R
Universal gas constant (J/mol/K)
Definition: FluidProperties.h:42
NS::temperature
const std::string temperature
Definition: NS.h:26
CO2FluidProperties::alpha
virtual Real alpha(Real delta, Real tau) const override
Helmholtz free energy.
Definition: CO2FluidProperties.C:162
CO2FluidProperties::_eps3
const std::array< Real, 5 > _eps3
Definition: CO2FluidProperties.h:230
CO2FluidProperties::_mu_a
const std::array< Real, 5 > _mu_a
Coefficients for viscosity.
Definition: CO2FluidProperties.h:241
FluidProperties::_allow_imperfect_jacobians
const bool _allow_imperfect_jacobians
Flag to set unimplemented Jacobian entries to zero.
Definition: FluidProperties.h:48
HelmholtzFluidProperties::d2alpha_ddeltatau
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const =0
Second derivative of Helmholtz free energy wrt delta and tau.
CO2FluidProperties::_t1
const std::array< Real, 7 > _t1
Definition: CO2FluidProperties.h:207
CO2FluidProperties::k_from_p_T
virtual Real k_from_p_T(Real pressure, Real temperature) const override
Definition: CO2FluidProperties.C:643
CO2FluidProperties::_k_h2
const std::array< unsigned int, 7 > _k_h2
Definition: CO2FluidProperties.h:249
SinglePhaseFluidProperties::p
e e e e p h p
Definition: SinglePhaseFluidProperties.h:167
HelmholtzFluidProperties::dalpha_ddelta
virtual Real dalpha_ddelta(Real delta, Real tau) const =0
Derivative of Helmholtz free energy wrt delta.
CO2FluidProperties::saturatedLiquidDensity
Real saturatedLiquidDensity(Real temperature) const
Saturated liquid density of CO2 Valid for temperatures between the triple point temperature and criti...
Definition: CO2FluidProperties.C:130
CO2FluidProperties::_t3
const std::array< unsigned int, 5 > _t3
Definition: CO2FluidProperties.h:226
HelmholtzFluidProperties::s_from_p_T
virtual Real s_from_p_T(Real pressure, Real temperature) const override
Definition: HelmholtzFluidProperties.C:150
CO2FluidProperties::_k_h1
const std::array< unsigned int, 3 > _k_h1
Definition: CO2FluidProperties.h:248
CO2FluidProperties::_t2
const std::array< Real, 27 > _t2
Definition: CO2FluidProperties.h:218
BrentsMethod::bracket
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
CO2FluidProperties::p_from_rho_T
virtual Real p_from_rho_T(Real density, Real temperature) const override
Pressure as a function of density and temperature.
Definition: CO2FluidProperties.C:447
NS::pressure
const std::string pressure
Definition: NS.h:25
SinglePhaseFluidProperties::h
e e e e h
Definition: SinglePhaseFluidProperties.h:163