https://mooseframework.inl.gov
Loading...
Searching...
No Matches
NaClFluidProperties.C
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#include "NaClFluidProperties.h"
11
13
16{
18 params.addClassDescription("Fluid properties for NaCl");
19 return params;
20}
21
23 : SinglePhaseFluidProperties(parameters),
24 _Mnacl(58.443e-3),
25 _p_critical(1.82e7),
26 _T_critical(3841.15),
27 _rho_critical(108.43),
28 _p_triple(50.0),
29 _T_triple(1073.85)
30{
31}
32
34
35std::string
37{
38 return "nacl";
39}
40
41Real
43{
44 return _Mnacl;
45}
46
47Real
52
53Real
58
59Real
64
65Real
70
71Real
76
77Real
78NaClFluidProperties::rho_from_p_T(Real pressure, Real temperature) const
79{
80 // Correlation needs pressure in bar
81 Real pbar = pressure * 1.0e-5;
82 // Correlation requires temperature in Celsius
83 Real Tc = temperature - _T_c2k;
84
85 // Halite density at 0 Pa
86 Real density_P0 = 2.17043e3 - 2.4599e-1 * Tc - 9.5797e-5 * Tc * Tc;
87
88 // Halite density as a function of pressure
89 Real l = 5.727e-3 + 2.715e-3 * std::exp(Tc / 733.4);
90
91 return density_P0 + l * pbar;
92}
93
94void
96 Real pressure, Real temperature, Real & rho, Real & drho_dp, Real & drho_dT) const
97{
98 rho = this->rho_from_p_T(pressure, temperature);
99
100 // Correlation needs pressure in bar
101 Real pbar = pressure * 1.0e-5;
102 // Correlation requires temperature in Celsius
103 Real Tc = temperature - _T_c2k;
104
105 // Halite density at 0 Pa
106 Real ddensity_P0_dT = -2.4599e-1 - 1.91594e-4 * Tc;
107
108 Real l = 5.727e-3 + 2.715e-3 * std::exp(Tc / 733.4);
109 Real dl_dT = 2.715e-3 * std::exp(Tc / 733.4) / 733.4;
110
111 drho_dp = l * 1.0e-5;
112 drho_dT = ddensity_P0_dT + dl_dT * pbar;
113}
114
115Real
116NaClFluidProperties::e_from_p_T(Real pressure, Real temperature) const
117{
118 return h_from_p_T(pressure, temperature) - pressure / rho_from_p_T(pressure, temperature);
119}
120
121void
123 Real pressure, Real temperature, Real & e, Real & de_dp, Real & de_dT) const
124{
125 Real h, dh_dp, dh_dT;
126 h_from_p_T(pressure, temperature, h, dh_dp, dh_dT);
127 Real rho, drho_dp, drho_dT;
128 rho_from_p_T(pressure, temperature, rho, drho_dp, drho_dT);
129
130 e = h - pressure / rho;
131 de_dp = dh_dp + pressure * drho_dp / rho / rho - 1.0 / rho;
132 de_dT = dh_dT + pressure * drho_dT / rho / rho;
133}
134
135Real
136NaClFluidProperties::cp_from_p_T(Real pressure, Real temperature) const
137{
138 // Correlation needs pressure in bar
139 Real pbar = pressure * 1.0e-5;
140 // Correlation requires temperature in Celsius
141 Real Tc = temperature - _T_c2k;
142 // Triple point temperature of NaCl (in C)
143 Real Tt = _T_triple - _T_c2k;
144 // Coefficients used in the correlation
145 Real r3 = -1.7099e-3 - 3.82734e-6 * Tc - 8.65455e-9 * Tc * Tc;
146 Real r4 = 5.29063e-8 - 9.63084e-11 * Tc + 6.50745e-13 * Tc * Tc;
147
148 // Halite isobaric heat capacity
149 return 1148.81 + 0.551548 * (Tc - Tt) + 2.64309e-4 * (Tc - Tt) * (Tc - Tt) + r3 * pbar +
150 r4 * pbar * pbar;
151}
152
153void
155 Real pressure, Real temperature, Real & cp, Real & dcp_dp, Real & dcp_dT) const
156{
157 // Correlation needs pressure in bar
158 Real pbar = pressure * 1.0e-5;
159 // Correlation requires temperature in Celsius
160 Real Tc = temperature - _T_c2k;
161 // Triple point temperature of NaCl (in C)
162 Real Tt = _T_triple - _T_c2k;
163 // Coefficients used in the correlation
164 Real r3 = -1.7099e-3 - 3.82734e-6 * Tc - 8.65455e-9 * Tc * Tc;
165 Real r4 = 5.29063e-8 - 9.63084e-11 * Tc + 6.50745e-13 * Tc * Tc;
166 Real dr3_dT = -3.82734e-6 - 2 * 8.65455e-9 * Tc;
167 Real dr4_dT = -9.63084e-11 + 2 * 6.50745e-13 * Tc;
168
169 // Halite isobaric heat capacity
170 cp = 1148.81 + 0.551548 * (Tc - Tt) + 2.64309e-4 * (Tc - Tt) * (Tc - Tt) + r3 * pbar +
171 r4 * pbar * pbar;
172 dcp_dp = r3 * 1.e-5 + 2 * r4 * pbar * 1.e-5;
173 dcp_dT = 0.551548 + 2 * 2.64309e-4 * (Tc - Tt) + dr3_dT * pbar + dr4_dT * pbar * pbar;
174}
175
176Real
177NaClFluidProperties::cv_from_p_T(Real pressure, Real temperature) const
178{
179 return e_from_p_T(pressure, temperature) / temperature;
180}
181
182Real
183NaClFluidProperties::k_from_p_T(Real /*pressure*/, Real temperature) const
184{
185 // Correlation requires temperature in Celsius
186 Real Tc = temperature - _T_c2k;
187
188 return 6.82793 - 3.16584e-2 * Tc + 1.03451e-4 * Tc * Tc - 1.48207e-7 * Tc * Tc * Tc;
189}
190
191void
193 Real /*pressure*/, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const
194{
195 // Correlation requires temperature in Celsius
196 Real Tc = temperature - _T_c2k;
197
198 k = 6.82793 - 3.16584e-2 * Tc + 1.03451e-4 * Tc * Tc - 1.48207e-7 * Tc * Tc * Tc;
199 dk_dp = 0.0;
200 dk_dT = -3.16584e-2 + 2.06902e-4 * Tc - 4.44621e-7 * Tc * Tc;
201}
202
203Real
204NaClFluidProperties::h_from_p_T(Real pressure, Real temperature) const
205{
206 // Correlation needs pressure in bar
207 Real pbar = pressure * 1.0e-5;
208 // Correlation requires temperature in Celsius
209 Real Tc = temperature - _T_c2k;
210 // Triple point temperature of water (in C)
211 Real Tt = 273.16 - _T_c2k;
212 // Triple point presure of water (in bar)
213 Real pt = 611.657 * 1.0e-5;
214
215 // Note: the enthalpy of halite is 0 at the triple point of water
216 return 8.7664e2 * (Tc - Tt) + 6.4139e-2 * (Tc * Tc - Tt * Tt) +
217 8.8101e-5 * (Tc * Tc * Tc - Tt * Tt * Tt) + 44.14 * (pbar - pt);
218}
219
220void
222 Real pressure, Real temperature, Real & h, Real & dh_dp, Real & dh_dT) const
223{
224 // Correlation needs pressure in bar
225 Real pbar = pressure * 1.0e-5;
226 // Correlation requires temperature in Celsius
227 Real Tc = temperature - _T_c2k;
228 // Triple point temperature of water (in C)
229 Real Tt = 273.16 - _T_c2k;
230 // Triple point presure of water (in bar)
231 Real pt = 611.657 * 1.0e-5;
232
233 // Note: the enthalpy of halite is 0 at the triple point of water
234 h = 8.7664e2 * (Tc - Tt) + 6.4139e-2 * (Tc * Tc - Tt * Tt) +
235 8.8101e-5 * (Tc * Tc * Tc - Tt * Tt * Tt) + 44.14 * (pbar - pt);
236
237 dh_dp = 44.14 * 1.0e-5;
238 dh_dT = 8.7664e2 + 2.0 * 6.4139e-2 * Tc + 3.0 * 8.8101e-5 * Tc * Tc;
239}
const double rho
registerMooseObject("FluidPropertiesApp", NaClFluidProperties)
const Real _T_c2k
Conversion of temperature from Celsius to Kelvin.
void addClassDescription(const std::string &doc_string)
NaCl fluid properties as a function of pressure (Pa) and temperature (K).
virtual Real triplePointTemperature() const override
Triple point temperature.
virtual Real k_from_p_T(Real pressure, Real temperature) const override
virtual Real criticalTemperature() const override
Critical temperature.
virtual Real criticalPressure() const override
Critical pressure.
const Real _T_critical
Critical temperature (K)
const Real _Mnacl
NaCl molar mass (kg/mol)
virtual Real criticalDensity() const override
Critical density.
const Real _T_triple
Triple point temperature (K)
const Real _p_triple
Triple point pressure (Pa)
virtual Real h_from_p_T(Real pressure, Real temperature) const override
virtual Real cv_from_p_T(Real pressure, Real temperature) const override
NaClFluidProperties(const InputParameters &parameters)
virtual Real e_from_p_T(Real pressure, Real temperature) const override
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
virtual Real molarMass() const override
Molar mass [kg/mol].
const Real _rho_critical
Critical density (kg/m^3)
virtual Real triplePointPressure() const override
Triple point pressure.
virtual std::string fluidName() const override
Fluid name.
static InputParameters validParams()
virtual Real cp_from_p_T(Real pressure, Real temperature) const override
const Real _p_critical
Critical pressure (Pa)
Common class for single phase fluid properties.
static InputParameters validParams()
e e e e s T T T T T rho v v T e h