https://mooseframework.inl.gov
Loading...
Searching...
No Matches
HydrogenFluidProperties.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
13#include <array>
14
15#pragma GCC diagnostic push
16#pragma GCC diagnostic ignored "-Woverloaded-virtual"
17
38{
39public:
41
43
44 virtual std::string fluidName() const override;
45
46 virtual Real molarMass() const override;
47
48 virtual Real mu_from_rho_T(Real density, Real temperature) const override;
49
50 void mu_from_rho_T(Real density,
51 Real temperature,
52 Real ddensity_dT,
53 Real & mu,
54 Real & dmu_drho,
55 Real & dmu_dT) const;
56
57 virtual Real mu_from_p_T(Real pressure, Real temperature) const override;
58
59 virtual void mu_from_p_T(
60 Real pressure, Real temperature, Real & mu, Real & dmu_dp, Real & dmu_dT) const override;
61
62 virtual void
63 rho_mu_from_p_T(Real pressure, Real temperature, Real & rho, Real & mu) const override;
64
65 virtual void rho_mu_from_p_T(Real pressure,
66 Real temperature,
67 Real & rho,
68 Real & drho_dp,
69 Real & drho_dT,
70 Real & mu,
71 Real & dmu_dp,
72 Real & dmu_dT) const override;
73
74 virtual Real k_from_rho_T(Real density, Real temperature) const override;
75
76 virtual Real k_from_p_T(Real pressure, Real temperature) const override;
77
78 virtual void
79 k_from_p_T(Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const override;
80
81 virtual std::vector<Real> henryCoefficients() const override;
82
83 virtual Real criticalPressure() const override;
84
85 virtual Real criticalTemperature() const override;
86
87 virtual Real criticalDensity() const override;
88
89 virtual Real triplePointPressure() const override;
90
91 virtual Real triplePointTemperature() const override;
92
93 virtual Real vaporPressure(Real temperature) const override;
94
95 virtual void vaporPressure(Real temperature, Real & psat, Real & dpsat_dT) const override;
96
97protected:
106 virtual Real alpha(Real delta, Real tau) const override;
107
115 virtual Real dalpha_ddelta(Real delta, Real tau) const override;
116
124 virtual Real dalpha_dtau(Real delta, Real tau) const override;
125
133 virtual Real d2alpha_ddelta2(Real delta, Real tau) const override;
134
142 virtual Real d2alpha_dtau2(Real delta, Real tau) const override;
143
151 virtual Real d2alpha_ddeltatau(Real delta, Real tau) const override;
152
154 const Real _Mh2;
156 const Real _p_critical;
158 const Real _T_critical;
162 const Real _rho_critical;
164 const Real _p_triple;
166 const Real _T_triple;
167
169 const std::array<Real, 5> _a{{1.616, -0.4117, -0.792, 0.758, 1.217}};
170 const std::array<Real, 5> _b{
171 {-16.0205159149, -22.6580178006, -60.0090511389, -74.9434303817, -206.9392065168}};
173 const std::array<Real, 7> _N1{{-6.93643, 0.01, 2.1101, 4.52059, 0.732564, -1.34086, 0.130985}};
174 const std::array<Real, 7> _t1{{0.6844, 1.0, 0.989, 0.489, 0.803, 1.1444, 1.409}};
175 const std::array<unsigned int, 7> _d1{{1, 4, 1, 1, 2, 2, 3}};
176
177 const std::array<Real, 2> _N2{{-0.777414, 0.351944}};
178 const std::array<Real, 2> _t2{{1.754, 1.311}};
179 const std::array<unsigned int, 2> _d2{{1, 3}};
180
181 const std::array<Real, 5> _N3{{-0.0211716, 0.0226312, 0.032187, -0.0231752, 0.0557346}};
182 const std::array<Real, 5> _t3{{4.187, 5.646, 0.791, 7.249, 2.986}};
183 const std::array<unsigned int, 5> _d3{{2, 1, 3, 1, 1}};
184 const std::array<Real, 5> _phi3{{-1.685, -0.489, -0.103, -2.506, -1.607}};
185 const std::array<Real, 5> _beta3{{-0.171, -0.2245, -0.1304, -0.2785, -0.3967}};
186 const std::array<Real, 5> _gamma3{{0.7164, 1.3444, 1.4517, 0.7204, 1.5445}};
187 const std::array<Real, 5> _D3{{1.506, 0.156, 1.736, 0.67, 1.662}};
188
190 const std::array<Real, 5> _amu{{2.09630e-1, -4.55274e-1, 1.423602e-1, -3.35325e-2, 2.76981e-3}};
191 const std::array<Real, 7> _bmu{{-0.187, 2.4871, 3.7151, -11.0972, 9.0965, -3.8292, 0.5166}};
192 const std::array<Real, 6> _cmu{
193 {6.43449673, 4.56334068e-2, 2.32797868e-1, 9.5832612e-1, 1.27941189e-1, 3.63576595e-1}};
194
196 const std::array<Real, 7> _a1k{
197 {-3.40976e-1, 4.5882, -1.4508, 3.26394e-1, 3.16939e-3, 1.90592e-4, -1.139e-6}};
198 const std::array<Real, 4> _a2k{{1.38497e2, -2.21878e1, 4.57151, 1.0}};
199 const std::array<Real, 5> _b1k{{3.63081e-2, -2.07629e-2, 3.1481e-2, -1.43097e-2, 1.7498e-3}};
200 const std::array<Real, 5> _b2k{{1.8337e-3, -8.86716e-3, 1.5826e-2, -1.06283e-2, 2.80673e-3}};
201};
202
203#pragma GCC diagnostic pop
const double mu
Base class equation of state for fluids that use a Helmholtz free energy alpha(delta,...
Hydrogen (H2) fluid properties as a function of pressure (Pa) and temperature (K).
const std::array< Real, 5 > _a
Coefficients for ideal gas component of the Helmholtz free energy.
const std::array< Real, 2 > _N2
const std::array< Real, 4 > _a2k
const Real _Mh2
Hydrogen molar mass (kg/mol)
virtual Real molarMass() const override
Molar mass [kg/mol].
const Real _rho_molar_critical
Critical molar density (mol/l)
const std::array< Real, 5 > _D3
const std::array< Real, 5 > _b2k
virtual Real criticalPressure() const override
Critical pressure.
virtual Real criticalTemperature() const override
Critical temperature.
virtual Real criticalDensity() const override
Critical density.
const std::array< Real, 6 > _cmu
const std::array< Real, 2 > _t2
virtual Real dalpha_dtau(Real delta, Real tau) const override
Derivative of Helmholtz free energy wrt tau.
virtual Real mu_from_rho_T(Real density, Real temperature) const override
const std::array< unsigned int, 5 > _d3
const std::array< Real, 5 > _N3
virtual Real dalpha_ddelta(Real delta, Real tau) const override
Derivative of Helmholtz free energy wrt delta.
virtual Real vaporPressure(Real temperature) const override
Vapor pressure.
const std::array< Real, 7 > _bmu
virtual void rho_mu_from_p_T(Real pressure, Real temperature, Real &rho, Real &mu) const override
Combined methods.
virtual std::string fluidName() const override
Fluid name.
const std::array< Real, 5 > _b1k
virtual Real triplePointPressure() const override
Triple point pressure.
virtual Real alpha(Real delta, Real tau) const override
Helmholtz free energy for H2 From Leachman et al (reference above)
const Real _p_critical
Critical pressure (Pa)
const Real _rho_critical
Critical density (kg/m^3)
const std::array< Real, 5 > _gamma3
const std::array< Real, 5 > _phi3
const std::array< Real, 7 > _a1k
Coefficients for thermal conductivity.
virtual Real mu_from_p_T(Real pressure, Real temperature) const override
virtual Real d2alpha_ddelta2(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt delta.
const Real _p_triple
Triple point pressure (Pa)
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt delta and tau.
const std::array< Real, 5 > _t3
const std::array< unsigned int, 7 > _d1
const Real _T_triple
Triple point temperature (K)
virtual Real d2alpha_dtau2(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt tau.
const std::array< Real, 7 > _t1
const std::array< Real, 7 > _N1
Coefficients for residual component of the Helmholtz free energy.
virtual Real k_from_rho_T(Real density, Real temperature) const override
const std::array< Real, 5 > _amu
Coefficients for viscosity.
virtual std::vector< Real > henryCoefficients() const override
Henry's law coefficients for dissolution in water.
const std::array< unsigned int, 2 > _d2
const Real _T_critical
Critical temperature (K)
static InputParameters validParams()
const std::array< Real, 5 > _beta3
virtual Real k_from_p_T(Real pressure, Real temperature) const override
virtual Real triplePointTemperature() const override
Triple point temperature.
const std::array< Real, 5 > _b
const InputParameters & parameters() const