https://mooseframework.inl.gov
NitrogenFluidProperties.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 
34 {
35 public:
37 
39 
40  virtual std::string fluidName() const override;
41 
42  virtual Real molarMass() const override;
43 
44  virtual Real mu_from_rho_T(Real density, Real temperature) const override;
45 
48  Real ddensity_dT,
49  Real & mu,
50  Real & dmu_drho,
51  Real & dmu_dT) const;
52 
53  virtual Real mu_from_p_T(Real pressure, Real temperature) const override;
54 
55  virtual void mu_from_p_T(
56  Real pressure, Real temperature, Real & mu, Real & dmu_dp, Real & dmu_dT) const override;
57 
58  virtual void
59  rho_mu_from_p_T(Real pressure, Real temperature, Real & rho, Real & mu) const override;
60 
61  virtual void rho_mu_from_p_T(Real pressure,
63  Real & rho,
64  Real & drho_dp,
65  Real & drho_dT,
66  Real & mu,
67  Real & dmu_dp,
68  Real & dmu_dT) const override;
69 
70  virtual Real k_from_rho_T(Real density, Real temperature) const override;
71 
72  virtual Real k_from_p_T(Real pressure, Real temperature) const override;
73 
74  virtual void
75  k_from_p_T(Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const override;
76 
77  virtual std::vector<Real> henryCoefficients() const override;
78 
79  virtual Real criticalPressure() const override;
80 
81  virtual Real criticalTemperature() const override;
82 
83  virtual Real criticalDensity() const override;
84 
85  virtual Real triplePointPressure() const override;
86 
87  virtual Real triplePointTemperature() const override;
88 
89  virtual Real vaporPressure(Real temperature) const override;
90 
91  virtual void vaporPressure(Real temperature, Real & psat, Real & dpsat_dT) const override;
92 
104 
116 
117 protected:
118  virtual Real alpha(Real delta, Real tau) const override;
119 
120  virtual Real dalpha_ddelta(Real delta, Real tau) const override;
121 
122  virtual Real dalpha_dtau(Real delta, Real tau) const override;
123 
124  virtual Real d2alpha_ddelta2(Real delta, Real tau) const override;
125 
126  virtual Real d2alpha_dtau2(Real delta, Real tau) const override;
127 
128  virtual Real d2alpha_ddeltatau(Real delta, Real tau) const override;
129 
131  const Real _Mn2;
144 
146  const std::array<Real, 8> _a{{2.5,
147  -12.76952708,
148  -0.00784163,
149  -1.934819e-4,
150  -1.247742e-5,
151  6.678326e-8,
152  1.012941,
153  26.65788}};
155  const std::array<Real, 6> _N1{{0.924803575275,
156  -0.492448489428,
157  0.661883336938,
158  -0.192902649201e1,
159  -0.622469309629e-1,
160  0.349943957581}};
161  const std::array<unsigned int, 6> _i1{{1, 1, 2, 2, 3, 3}};
162  const std::array<Real, 6> _j1{{0.25, 0.875, 0.5, 0.875, 0.375, 0.75}};
163 
164  const std::array<Real, 26> _N2{
165  {0.564857472498, -0.161720005987e1, -0.481395031883, 0.421150636384,
166  -0.161962230825e-1, 0.172100994165, 0.735448924933e-2, 0.168077305479e-1,
167  -0.107626664179e-2, -0.137318088513e-1, 0.635466899859e-3, 0.304432279419e-2,
168  -0.435762336045e-1, -0.723174889316e-1, 0.389644315272e-1, -0.21220136391e-1,
169  0.4808822981509e-2, -0.551990017984e-4, -0.462016716479e-1, -0.300311716011e-2,
170  0.368825891208e-1, -0.25585684622e-2, 0.896915264558e-2, -0.44151337035e-2,
171  0.133722924858e-2, 0.264832491957e-3}};
172  const std::array<unsigned int, 26> _i2{
173  {1, 1, 1, 3, 3, 4, 6, 6, 7, 7, 8, 8, 1, 2, 3, 4, 5, 8, 4, 5, 5, 8, 3, 5, 6, 9}};
174  const std::array<Real, 26> _j2{{0.5, 0.75, 2.0, 1.25, 3.5, 1.0, 0.5, 3.0, 0.0,
175  2.75, 0.75, 2.5, 4.0, 6.0, 6.0, 3.0, 3.0, 6.0,
176  16.0, 11.0, 15.0, 12.0, 12.0, 7.0, 4.0, 16.0}};
177  const std::array<unsigned int, 26> _l2{
178  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4}};
179 
180  const std::array<Real, 4> _N3{
181  {0.196688194015e2, -0.20911560073e2, 0.167788306989e-1, 0.262767566274e4}};
182  const std::array<unsigned int, 4> _i3{{1, 1, 3, 2}};
183  const std::array<unsigned int, 4> _j3{{0, 1, 2, 3}};
184  const std::array<unsigned int, 4> _l3{{2, 2, 2, 2}};
185  const std::array<Real, 4> _phi3{{20.0, 20.0, 15.0, 25.0}};
186  const std::array<Real, 4> _beta3{{325.0, 325.0, 300.0, 275.0}};
187  const std::array<Real, 4> _gamma3{{1.16, 1.16, 1.13, 1.25}};
188 
190  const std::array<Real, 5> _bmu{{0.431, -0.4623, 0.08406, 0.005341, -0.00331}};
191  const std::array<Real, 5> _Nmu{{10.72, 0.03989, 0.001208, -7.402, 4.62}};
192  const std::array<Real, 5> _tmu{{0.1, 0.25, 3.2, 0.9, 0.3}};
193  const std::array<Real, 5> _dmu{{2, 10, 12, 2, 1}};
194  const std::array<Real, 5> _lmu{{0, 1, 1, 2, 3}};
195  const std::array<Real, 5> _gammamu{{0.0, 1.0, 1.0, 1.0, 1.0}};
196 
198  const std::array<Real, 6> _Nk{{8.862, 31.11, -73.13, 20.03, -0.7096, 0.2672}};
199  const std::array<Real, 6> _tk{{0.0, 0.03, 0.2, 0.8, 0.6, 1.9}};
200  const std::array<unsigned int, 6> _dk{{1, 2, 3, 4, 8, 10}};
201  const std::array<unsigned int, 6> _lk{{0, 0, 1, 2, 2, 2}};
202  const std::array<Real, 6> _gammak{{0.0, 0.0, 1.0, 1.0, 1.0}};
203 };
204 
205 #pragma GCC diagnostic pop
const std::array< Real, 6 > _tk
const std::array< Real, 5 > _gammamu
const std::array< Real, 5 > _Nmu
const std::array< Real, 4 > _gamma3
const Real _T_triple
Triple point temperature (K)
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt delta and tau.
virtual Real alpha(Real delta, Real tau) const override
Helmholtz free energy.
const std::array< unsigned int, 4 > _j3
virtual Real criticalTemperature() const override
Critical temperature.
const std::array< Real, 6 > _gammak
const std::array< unsigned int, 4 > _l3
virtual Real d2alpha_dtau2(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt tau.
const std::array< Real, 6 > _Nk
Coefficients for thermal conductivity.
const std::array< unsigned int, 26 > _i2
virtual Real criticalPressure() const override
Critical pressure.
const std::array< Real, 4 > _phi3
const std::array< Real, 26 > _j2
Real saturatedVaporDensity(Real temperature) const
Saturated vapor density of N2 Valid for temperatures between the triple point temperature and critica...
const std::array< Real, 5 > _bmu
Coefficients for viscosity.
static const std::string density
Definition: NS.h:33
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
virtual Real d2alpha_ddelta2(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt delta.
virtual Real vaporPressure(Real temperature) const override
Vapor pressure.
virtual std::string fluidName() const override
Fluid name.
static const std::string temperature
Definition: NS.h:59
virtual Real criticalDensity() const override
Critical density.
const Real _rho_molar_critical
Critical molar density (mol/l)
const std::array< Real, 8 > _a
Coefficients for ideal gas component of the Helmholtz free energy.
const std::array< unsigned int, 6 > _i1
virtual Real mu_from_rho_T(Real density, Real temperature) const override
const std::array< Real, 26 > _N2
Real saturatedLiquidDensity(Real temperature) const
Saturated liquid density of N2 Valid for temperatures between the triple point temperature and critic...
const std::array< unsigned int, 6 > _dk
static const std::string mu
Definition: NS.h:123
virtual Real mu_from_p_T(Real pressure, Real temperature) const override
Nitrogen (N2) fluid properties as a function of pressure (Pa) and temperature (K).
const std::array< unsigned int, 4 > _i3
const std::array< Real, 6 > _j1
const std::array< Real, 5 > _tmu
const std::array< Real, 5 > _dmu
const Real _rho_critical
Critical density (kg/m^3)
const std::array< Real, 5 > _lmu
const std::array< unsigned int, 26 > _l2
NitrogenFluidProperties(const InputParameters &parameters)
const std::array< Real, 6 > _N1
Coefficients for residual component of the Helmholtz free energy.
const std::array< unsigned int, 6 > _lk
const Real _T_critical
Critical temperature (K)
const Real _p_critical
Critical pressure (Pa)
virtual Real triplePointTemperature() const override
Triple point temperature.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
virtual Real k_from_p_T(Real pressure, Real temperature) const override
const std::array< Real, 4 > _N3
virtual Real k_from_rho_T(Real density, Real temperature) const override
const Real _Mn2
Nitrogen molar mass (kg/mol)
virtual void rho_mu_from_p_T(Real pressure, Real temperature, Real &rho, Real &mu) const override
Combined methods.
const std::array< Real, 4 > _beta3
static const std::string pressure
Definition: NS.h:56
const Real _p_triple
Triple point pressure (Pa)
virtual Real triplePointPressure() const override
Triple point pressure.
const InputParameters & parameters() const
virtual Real molarMass() const override
Molar mass [kg/mol].
virtual Real dalpha_ddelta(Real delta, Real tau) const override
Derivative of Helmholtz free energy wrt delta.
Base class equation of state for fluids that use a Helmholtz free energy alpha(delta, tau), where delta is a scaled density and tau is a scaled temperature.
virtual Real dalpha_dtau(Real delta, Real tau) const override
Derivative of Helmholtz free energy wrt tau.
static const std::string k
Definition: NS.h:130
virtual std::vector< Real > henryCoefficients() const override
Henry&#39;s law coefficients for dissolution in water.