https://mooseframework.inl.gov
SodiumSaturationFluidProperties.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 
11 
13 
16 {
18  params.addClassDescription("Fluid properties for liquid sodium at saturation conditions");
19  return params;
20 }
21 
23  : SinglePhaseFluidProperties(parameters)
24 {
25 }
26 
27 std::string
29 {
30  return "sodium_sat";
31 }
32 
33 Real
35 {
36  return 22.989769E-3;
37 }
38 
39 Real
41 {
42  return 1.00423e3 - 0.21390 * temperature - 1.1046e-5 * temperature * temperature;
43 }
44 
45 void
47  Real pressure, Real temperature, Real & rho, Real & drho_dp, Real & drho_dT) const
48 {
50  drho_dp = 0.0;
51  drho_dT = -0.21390 - 1.1046e-5 * 2 * temperature;
52 }
53 
54 void
56  const ADReal & temperature,
57  ADReal & rho,
58  ADReal & drho_dp,
59  ADReal & drho_dT) const
60 {
61  rho = SinglePhaseFluidProperties::rho_from_p_T(pressure, temperature);
62  drho_dp = 0.0;
63  drho_dT = -0.21390 - 1.1046e-5 * 2 * temperature;
64 }
65 
66 Real
68 {
69  return 1.0 / rho_from_p_T(pressure, temperature);
70 }
71 
72 void
74  Real pressure, Real temperature, Real & v, Real & dv_dp, Real & dv_dT) const
75 {
77  dv_dp = 0.0;
78 
79  Real drho_dT = -0.21390 - 1.1046e-5 * 2 * temperature;
80  dv_dT = -v * v * drho_dT;
81 }
82 
83 Real
85 {
87  // h does not depend on pressure
88  return (h_from_p_T(1e5, temperature) - e) / v;
89 }
90 
91 Real
93 {
94  // From inversion of second order polynomial form of rho(T)
95  mooseAssert(0.2139 * 0.2139 + 4 * 1.1046e5 * (1.00423e3 - 1 / v) > 0,
96  "Specific volume out of bounds");
97  return (0.2139 - std::sqrt(0.2139 * 0.2139 + 4 * 1.1046e-5 * (1.00423e3 - 1 / v))) /
98  (2 * -1.1046e-5);
99 }
100 
101 Real
103 {
105  return 3.7782E-10 * t2 * t2 * temperature / 5 - 1.7191E-6 * t2 * t2 / 4.0 +
106  3.0921E-3 * t2 * temperature / 3.0 - 2.4560 * t2 / 2.0 + 1972.0 * temperature - 401088.7;
107 }
108 
109 void
111  Real pressure, Real temperature, Real & h, Real & dh_dp, Real & dh_dT) const
112 {
114  dh_dp = 0.0;
115  dh_dT = cp_from_p_T(pressure, temperature);
116 }
117 
118 Real
120 {
121  // definition of h = e + p * v
124  return h - pressure * v;
125 }
126 
127 void
129  Real pressure, Real temperature, Real & e, Real & de_dp, Real & de_dT) const
130 {
132 
133  Real v, dv_dp, dv_dT;
134  v_from_p_T(pressure, temperature, v, dv_dp, dv_dT);
135 
136  // definition of e = h - p * v, with dh/dp = 0
137  de_dp = -pressure * dv_dp - v;
138 
139  // definition of e = h - p * v
141  de_dT = cp - pressure * dv_dT;
142 }
143 
144 Real
146 {
148  return 3.7782E-10 * t2 * t2 - 1.7191E-6 * t2 * temperature + 3.0921E-3 * t2 -
149  2.4560 * temperature + 1972.0;
150 }
151 
152 void
154  Real pressure, Real temperature, Real & cp, Real & dcp_dp, Real & dcp_dT) const
155 {
157  dcp_dp = 0.0;
158 
160  dcp_dT =
161  4 * 3.7782E-10 * t2 * temperature - 3 * 1.7191E-6 * t2 + 2 * 3.0921e-3 * temperature - 2.456;
162 }
163 
164 Real
166 {
168  return 1.0369E-8 * temperature * t2 + 3.7164E-4 * t2 - 1.0494 * temperature + 1582.6;
169 }
170 
171 void
173  Real pressure, Real temperature, Real & cv, Real & dcv_dp, Real & dcv_dT) const
174 {
176  dcv_dp = 0.0;
177  dcv_dT = 3 * 1.0369e-8 * temperature * temperature + 2 * 3.7164e-4 * temperature - 1.0494;
178 }
179 
180 Real
182 {
183  return 3.6522E-5 + 0.16626 / temperature - 4.56877e1 / (temperature * temperature) +
184  2.8733E4 / (temperature * temperature * temperature);
185 }
186 
187 void
189  Real pressure, Real temperature, Real & mu, Real & dmu_dp, Real & dmu_dT) const
190 {
191  mu = this->mu_from_p_T(pressure, temperature);
192  dmu_dp = 0.0;
193 
195  dmu_dT = 0.16626 * -1 / t2 - 4.56877E1 * -2 / (temperature * t2) + 2.8733E4 * -3 / (t2 * t2);
196 }
197 
198 Real
200 {
201  return 1.1045e2 - 6.5112e-2 * temperature + 1.5430e-5 * temperature * temperature -
202  2.4617e-9 * temperature * temperature * temperature;
203 }
204 
205 void
207  Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const
208 {
209  k = this->k_from_p_T(pressure, temperature);
210  dk_dp = 0.0;
211  dk_dT = -6.5112e-2 + 2 * 1.5430e-5 * temperature - 3 * 2.4617e-9 * temperature * temperature;
212 }
SodiumSaturationFluidProperties(const InputParameters &parameters)
virtual Real cp_from_p_T(Real p, Real T) const override
virtual Real mu_from_p_T(Real p, Real T) const override
static const std::string cv
Definition: NS.h:122
virtual Real cv_from_p_T(Real p, Real T) const override
virtual Real e_from_p_T(Real p, Real T) const override
virtual Real rho_from_p_T(Real p, Real T) const override
static InputParameters validParams()
Fluid properties for liquid sodium at saturation conditions } }.
static const std::string temperature
Definition: NS.h:59
virtual Real p_from_v_e(Real v, Real e) const override
DualNumber< Real, DNDerivativeType, true > ADReal
virtual Real v_from_p_T(Real p, Real T) const override
static const std::string cp
Definition: NS.h:121
e e e e s T T T T T rho v v T e h
virtual Real k_from_p_T(Real p, Real T) const override
static const std::string mu
Definition: NS.h:123
virtual Real h_from_p_T(Real p, Real T) const override
Common class for single phase fluid properties.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v
Definition: NS.h:84
virtual Real T_from_v_e(Real v, Real e) const override
registerMooseObject("FluidPropertiesApp", SodiumSaturationFluidProperties)
static const std::string pressure
Definition: NS.h:56
void addClassDescription(const std::string &doc_string)
virtual Real molarMass() const override
Molar mass [kg/mol].
virtual std::string fluidName() const override
Fluid name.
static const std::string k
Definition: NS.h:130