https://mooseframework.inl.gov
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 
16 TEST_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  tol);
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  tol);
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 }
static const std::string cv
Definition: NS.h:122
TEST_F(SimpleFluidPropertiesTest, fluidName)
Test that the fluid name is correctly returned.
const double tol
static const std::string cp
Definition: NS.h:121
static const std::string mu
Definition: NS.h:123
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v
Definition: NS.h:84