https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SimpleFluidPropertiesTest.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
12
16TEST_F(SimpleFluidPropertiesTest, fluidName) { EXPECT_EQ(_fp->fluidName(), "simple_fluid"); }
17
22{
23 ABS_TEST(_fp->molarMass(), 1.8e-2, REL_TOL_SAVED_VALUE);
24}
25
30{
31 const Real thermal_exp = 2.14E-4;
32 const Real cv = 4186.0;
33 const Real cp = 4194.0;
34 const Real bulk_modulus = 2.0E9;
35 const Real thermal_cond = 0.6;
36 const Real entropy = 300.0;
37 const Real visc = 1.0E-3;
38 const Real density0 = 1000.0;
39 const Real pp_coef = 0.0;
40
41 const Real tol = REL_TOL_CONSISTENCY;
42 const Real large_tol = 10 * tol;
43
44 Real p = 8.56E7;
45 Real T = 200.0;
46 Real e = 8.372E5;
47 Real v = 0.001;
48 Real h = cv * T + p / _fp->rho_from_p_T(p, T);
49
50 ABS_TEST(_fp->beta_from_p_T(p, T), thermal_exp, tol);
51 ABS_TEST(_fp->cp_from_p_T(p, T), cp, tol);
52 ABS_TEST(_fp->cv_from_p_T(p, T), cv, tol);
53 ABS_TEST(_fp->c_from_p_T(p, T), std::sqrt(bulk_modulus / _fp->rho_from_p_T(p, T)), tol);
54 ABS_TEST(_fp->k_from_p_T(p, T), thermal_cond, tol);
55 ABS_TEST(_fp->k_from_p_T(p, T), thermal_cond, tol);
56 ABS_TEST(_fp->s_from_p_T(p, T), entropy, tol);
57 ABS_TEST(_fp->rho_from_p_T(p, T), density0 * std::exp(p / bulk_modulus - thermal_exp * T), tol);
58 ABS_TEST(_fp->e_from_p_T(p, T), cv * T, tol);
59 ABS_TEST(_fp->e_from_p_rho(p, 1. / v), cv * T, tol);
60 ABS_TEST(_fp->e_from_v_h(v, h), cv * T, large_tol);
61 ABS_TEST(_fp->mu_from_p_T(p, T), visc, tol);
62 ABS_TEST(_fp->h_from_p_T(p, T), h, tol);
63 ABS_TEST(_fp2->h_from_p_T(p, T), cv * T + p * pp_coef / _fp2->rho_from_p_T(p, T), tol);
64 ABS_TEST(_fp->cp_from_v_e(v, e), cp, tol);
65 ABS_TEST(_fp->cv_from_v_e(v, e), cv, tol);
66 ABS_TEST(
67 _fp->c_from_v_e(v, e),
68 std::sqrt(bulk_modulus / _fp->rho_from_p_T(_fp->p_from_v_e(v, e), _fp->T_from_v_e(v, e))),
69 tol);
70 ABS_TEST(_fp->k_from_v_e(v, e), thermal_cond, tol);
71 ABS_TEST(_fp->s_from_v_e(v, e), entropy, tol);
72 ABS_TEST(_fp->s_from_h_p(_fp->h_from_p_T(p, T), p), entropy, tol);
73 ABS_TEST(_fp->T_from_v_e(v, e), T, tol);
74 ABS_TEST(_fp->T_from_p_h(p, _fp->h_from_p_T(p, T)), T, tol);
75 ABS_TEST(_fp->T_from_p_rho(p, 1. / v), T, tol);
76 ABS_TEST(_fp->p_from_v_e(v, e),
77 bulk_modulus * (thermal_exp * _fp->T_from_v_e(v, e) + std::log(1 / (v * density0))),
78 6.e-9); // fails at 4.5e-9 with -march=x86-64-v3
79 ABS_TEST(_fp->mu_from_v_e(v, e), visc, tol);
80
81 p = 1.06841E9;
82 T = 300.0;
83 e = 1.2558E6;
84 v = 6.249991432791718E-4;
85 h = cv * T + p / _fp->rho_from_p_T(p, T);
86
87 ABS_TEST(_fp->beta_from_p_T(p, T), thermal_exp, tol);
88 ABS_TEST(_fp->cp_from_p_T(p, T), cp, tol);
89 ABS_TEST(_fp->cv_from_p_T(p, T), cv, tol);
90 ABS_TEST(_fp->c_from_p_T(p, T), std::sqrt(bulk_modulus / _fp->rho_from_p_T(p, T)), tol);
91 ABS_TEST(_fp->k_from_p_T(p, T), thermal_cond, tol);
92 ABS_TEST(_fp->k_from_p_T(p, T), thermal_cond, tol);
93 ABS_TEST(_fp->s_from_p_T(p, T), entropy, tol);
94 ABS_TEST(_fp->rho_from_p_T(p, T), density0 * std::exp(p / bulk_modulus - thermal_exp * T), tol);
95 ABS_TEST(_fp->e_from_p_T(p, T), cv * T, tol);
96 ABS_TEST(_fp->e_from_p_rho(p, 1. / v), cv * T, large_tol);
97 ABS_TEST(_fp->e_from_v_h(v, h), cv * T, large_tol);
98 ABS_TEST(_fp->mu_from_p_T(p, T), visc, tol);
99 ABS_TEST(_fp->h_from_p_T(p, T), h, tol);
100 ABS_TEST(_fp2->h_from_p_T(p, T), cv * T + p * pp_coef / _fp2->rho_from_p_T(p, T), tol);
101 ABS_TEST(_fp->cp_from_v_e(v, e), cp, tol);
102 ABS_TEST(_fp->cv_from_v_e(v, e), cv, tol);
103 ABS_TEST(
104 _fp->c_from_v_e(v, e),
105 std::sqrt(bulk_modulus / _fp->rho_from_p_T(_fp->p_from_v_e(v, e), _fp->T_from_v_e(v, e))),
106 tol);
107 ABS_TEST(_fp->k_from_v_e(v, e), thermal_cond, tol);
108 ABS_TEST(_fp->s_from_v_e(v, e), entropy, tol);
109 ABS_TEST(_fp->s_from_h_p(_fp->h_from_p_T(p, T), p), entropy, tol);
110 ABS_TEST(_fp->T_from_v_e(v, e), T, tol);
111 ABS_TEST(_fp->T_from_p_h(p, _fp->h_from_p_T(p, T)), T, tol);
112 ABS_TEST(_fp->T_from_p_rho(p, 1. / v), T, tol);
113 ABS_TEST(_fp->p_from_v_e(v, e),
114 bulk_modulus * (thermal_exp * _fp->T_from_v_e(v, e) + std::log(1 / (v * density0))),
115 5.e-8); // fails at 3.7e-8 with -march=x86-64-v3
116 ABS_TEST(_fp->mu_from_v_e(v, e), visc, tol);
117}
118
124{
125 const Real tol = REL_TOL_DERIVATIVE;
126
127 Real p = 1.0E7;
128 Real T = 10.0;
129 Real e = 8.372E5;
130 Real v = 1.25E-3;
131
132 DERIV_TEST(_fp->rho_from_p_T, p, T, tol);
133 DERIV_TEST(_fp->mu_from_p_T, p, T, tol);
134 DERIV_TEST(_fp->e_from_p_T, p, T, tol);
135 DERIV_TEST(_fp->e_from_p_rho, p, 1. / v, tol);
136 DERIV_TEST(_fp->e_from_v_h, v, e + p * v, tol);
137 DERIV_TEST(_fp->h_from_p_T, p, T, tol);
138 DERIV_TEST(_fp->k_from_p_T, p, T, tol);
139 DERIV_TEST(_fp->cp_from_p_T, p, T, tol);
140 DERIV_TEST(_fp->cv_from_p_T, p, T, tol);
141 DERIV_TEST(_fp->c_from_p_T, p, T, tol);
142 DERIV_TEST(_fp->s_from_p_T, p, T, tol);
143 DERIV_TEST(_fp->cp_from_v_e, v, e, tol);
144 DERIV_TEST(_fp->cv_from_v_e, v, e, tol);
145 DERIV_TEST(_fp->c_from_v_e, v, e, tol);
146 DERIV_TEST(_fp->k_from_v_e, v, e, tol);
147 DERIV_TEST(_fp->s_from_v_e, v, e, tol);
148 DERIV_TEST(_fp->T_from_v_e, v, e, tol);
149 DERIV_TEST(_fp->T_from_p_rho, p, 1. / v, tol);
150 DERIV_TEST(_fp->p_from_v_e, v, e, tol);
151 DERIV_TEST(_fp->mu_from_v_e, v, e, tol);
152
153 p = 5.0E7;
154 T = 90.0;
155 e = 1.6744E6;
156 v = 6.25E-4;
157
158 DERIV_TEST(_fp->rho_from_p_T, p, T, tol);
159 DERIV_TEST(_fp->mu_from_p_T, p, T, tol);
160 DERIV_TEST(_fp->e_from_p_T, p, T, tol);
161 DERIV_TEST(_fp->e_from_p_rho, p, 1. / v, tol);
162 DERIV_TEST(_fp->e_from_v_h, v, e + p * v, tol);
163 DERIV_TEST(_fp->h_from_p_T, p, T, tol);
164 DERIV_TEST(_fp->k_from_p_T, p, T, tol);
165 DERIV_TEST(_fp->cp_from_p_T, p, T, tol);
166 DERIV_TEST(_fp->cv_from_p_T, p, T, tol);
167 DERIV_TEST(_fp->c_from_p_T, p, T, tol);
168 DERIV_TEST(_fp->s_from_p_T, p, T, tol);
169 DERIV_TEST(_fp->cp_from_v_e, v, e, tol);
170 DERIV_TEST(_fp->cv_from_v_e, v, e, tol);
171 DERIV_TEST(_fp->c_from_v_e, v, e, tol);
172 DERIV_TEST(_fp->k_from_v_e, v, e, tol);
173 DERIV_TEST(_fp->s_from_v_e, v, e, tol);
174 DERIV_TEST(_fp->T_from_v_e, v, e, tol);
175 DERIV_TEST(_fp->T_from_p_rho, p, 1. / v, tol);
176 DERIV_TEST(_fp->p_from_v_e, v, e, tol);
177 DERIV_TEST(_fp->mu_from_v_e, v, e, tol);
178}
179
185{
186 const Real p = 1.0e6;
187 const Real T = 300.0;
188 const Real tol = REL_TOL_CONSISTENCY;
189
190 // Single property methods
191 Real rho, drho_dp, drho_dT;
192 _fp->rho_from_p_T(p, T, rho, drho_dp, drho_dT);
193 Real mu, dmu_dp, dmu_dT;
194 _fp->mu_from_p_T(p, T, mu, dmu_dp, dmu_dT);
195 Real e, de_dp, de_dT;
196 _fp->e_from_p_T(p, T, e, de_dp, de_dT);
197
198 // Combined property methods
199 Real rho2, drho2_dp, drho2_dT, mu2, dmu2_dp, dmu2_dT, e2, de2_dp, de2_dT;
200 _fp->rho_mu_from_p_T(p, T, rho2, mu2);
201
202 ABS_TEST(rho, rho2, tol);
203 ABS_TEST(mu, mu2, tol);
204
205 _fp->rho_mu_from_p_T(p, T, rho2, drho2_dp, drho2_dT, mu2, dmu2_dp, dmu2_dT);
206 ABS_TEST(rho, rho2, tol);
207 ABS_TEST(drho_dp, drho2_dp, tol);
208 ABS_TEST(drho_dT, drho2_dT, tol);
209 ABS_TEST(mu, mu2, tol);
210 ABS_TEST(dmu_dp, dmu2_dp, tol);
211 ABS_TEST(dmu_dT, dmu2_dT, tol);
212
213 _fp->rho_e_from_p_T(p, T, rho2, drho2_dp, drho2_dT, e2, de2_dp, de2_dT);
214 ABS_TEST(rho, rho2, tol);
215 ABS_TEST(drho_dp, drho2_dp, tol);
216 ABS_TEST(drho_dT, drho2_dT, tol);
217 ABS_TEST(e, e2, tol);
218 ABS_TEST(de_dp, de2_dp, tol);
219 ABS_TEST(de_dT, de2_dT, tol);
220}
const double tol
const double mu
const Real p
const double rho
const double T
const double v
TEST_F(SimpleFluidPropertiesTest, fluidName)
Test that the fluid name is correctly returned.