26 ABS_TEST(_fp->molarMassH2O(), 18.015e-3, REL_TOL_CONSISTENCY);
27 ABS_TEST(_fp->molarMassNaCl(), 58.443e-3, REL_TOL_CONSISTENCY);
31 const Real M = 1.0 / (
x / _fp->molarMassNaCl() + (1.0 -
x) / _fp->molarMassH2O());
32 ABS_TEST(_fp->molarMass(
x), M, REL_TOL_CONSISTENCY);
43 EXPECT_EQ(water_fp.fluidName(),
"water");
44 EXPECT_EQ(nacl_fp.fluidName(),
"nacl");
55 REL_TEST(_fp->vaporPressure(473.15, 0.185), 1.34e6, 1.0e-2);
56 REL_TEST(_fp->vaporPressure(473.15, 0.267), 1.21e6, 1.0e-2);
57 REL_TEST(_fp->vaporPressure(473.15, 0.312), 1.13e6, 1.0e-2);
69 REL_TEST(_fp->haliteSolubility(659.65), 0.442, 2.0e-2);
70 REL_TEST(_fp->haliteSolubility(818.65), 0.6085, 2.0e-2);
71 REL_TEST(_fp->haliteSolubility(903.15), 0.7185, 2.0e-2);
103 REL_TEST(_fp->rho_from_p_T_X(p0, T0, x0), 1068.52, 1.0e-2);
104 REL_TEST(_fp->rho_from_p_T_X(p0, T1, x0), 959.27, 1.0e-2);
105 REL_TEST(_fp->rho_from_p_T_X(p1, T1, x1), 1065.58, 1.0e-2);
108 REL_TEST(_fp->mu_from_p_T_X(p0, T0, x0), 679.8e-6, 2.0e-2);
109 REL_TEST(_fp->mu_from_p_T_X(p0, T1, x0), 180.0e-6, 2.0e-2);
110 REL_TEST(_fp->mu_from_p_T_X(p1, T1, x1), 263.1e-6, 2.0e-2);
113 REL_TEST(_fp->k_from_p_T_X(p0, T0, x0), 0.630, 4.0e-2);
114 REL_TEST(_fp->k_from_p_T_X(p0, T1, x0), 0.649, 4.0e-2);
115 REL_TEST(_fp->k_from_p_T_X(p1, T1, x1), 0.633, 4.0e-2);
121 REL_TEST(_fp->e_from_p_T_X(p0, T0, 0.0), 1330.0e3, 1.0e-2);
122 REL_TEST(_fp->e_from_p_T_X(p0, T0, 0.2), 1100.0e3, 1.0e-2);
123 REL_TEST(_fp->e_from_p_T_X(p0, T0, 0.364), 970.0e3, 1.0e-2);
129 REL_TEST(_fp->cp_from_p_T_X(p0, 323.15, x0), 4.1e3, 1.0e-2);
130 REL_TEST(_fp->cp_from_p_T_X(p0, 473.15, x0), 4.35e3, 1.0e-2);
131 REL_TEST(_fp->cp_from_p_T_X(p0, 623.15, x0), 8.1e3, 1.0e-2);
151 (_fp->rho_from_p_T_X(p + dp, T,
x) - _fp->rho_from_p_T_X(p - dp, T,
x)) / (2.0 * dp);
153 (_fp->rho_from_p_T_X(p, T + dT,
x) - _fp->rho_from_p_T_X(p, T - dT,
x)) / (2.0 * dT);
155 (_fp->rho_from_p_T_X(p, T,
x + dx) - _fp->rho_from_p_T_X(p, T,
x - dx)) / (2.0 * dx);
157 Real rho = 0.0, drho_dp = 0.0, drho_dT = 0.0, drho_dx = 0.0;
158 _fp->rho_from_p_T_X(p, T,
x, rho, drho_dp, drho_dT, drho_dx);
160 ABS_TEST(rho, _fp->rho_from_p_T_X(p, T,
x), REL_TOL_CONSISTENCY);
161 REL_TEST(drho_dp, drho_dp_fd, 1.0e-5);
162 REL_TEST(drho_dT, drho_dT_fd, 1.0e-6);
163 REL_TEST(drho_dx, drho_dx_fd, 1.0e-6);
166 Real dh_dp_fd = (_fp->h_from_p_T_X(p + dp, T,
x) - _fp->h_from_p_T_X(p - dp, T,
x)) / (2.0 * dp);
167 Real dh_dT_fd = (_fp->h_from_p_T_X(p, T + dT,
x) - _fp->h_from_p_T_X(p, T - dT,
x)) / (2.0 * dT);
168 Real dh_dx_fd = (_fp->h_from_p_T_X(p, T,
x + dx) - _fp->h_from_p_T_X(p, T,
x - dx)) / (2.0 * dx);
170 Real h = 0.0, dh_dp = 0.0, dh_dT = 0.0, dh_dx = 0.0;
171 _fp->h_from_p_T_X(p, T,
x, h, dh_dp, dh_dT, dh_dx);
173 ABS_TEST(h, _fp->h_from_p_T_X(p, T,
x), 1.2 * REL_TOL_CONSISTENCY);
174 REL_TEST(dh_dp, dh_dp_fd, 1.0e-4);
175 REL_TEST(dh_dT, dh_dT_fd, 1.0e-6);
176 REL_TEST(dh_dx, dh_dx_fd, 1.0e-6);
179 Real de_dp_fd = (_fp->e_from_p_T_X(p + dp, T,
x) - _fp->e_from_p_T_X(p - dp, T,
x)) / (2.0 * dp);
180 Real de_dT_fd = (_fp->e_from_p_T_X(p, T + dT,
x) - _fp->e_from_p_T_X(p, T - dT,
x)) / (2.0 * dT);
181 Real de_dx_fd = (_fp->e_from_p_T_X(p, T,
x + dx) - _fp->e_from_p_T_X(p, T,
x - dx)) / (2.0 * dx);
183 Real e = 0.0, de_dp = 0.0, de_dT = 0.0, de_dx = 0.0;
184 _fp->e_from_p_T_X(p, T,
x, e, de_dp, de_dT, de_dx);
186 ABS_TEST(e, _fp->e_from_p_T_X(p, T,
x), 1.2 * REL_TOL_CONSISTENCY);
187 REL_TEST(de_dp, de_dp_fd, 1.0e-3);
188 REL_TEST(de_dT, de_dT_fd, 1.0e-6);
189 REL_TEST(de_dx, de_dx_fd, 1.0e-6);
193 (_fp->mu_from_p_T_X(p + dp, T,
x) - _fp->mu_from_p_T_X(p - dp, T,
x)) / (2.0 * dp);
195 (_fp->mu_from_p_T_X(p, T + dT,
x) - _fp->mu_from_p_T_X(p, T - dT,
x)) / (2.0 * dT);
197 (_fp->mu_from_p_T_X(p, T,
x + dx) - _fp->mu_from_p_T_X(p, T,
x - dx)) / (2.0 * dx);
198 Real mu = 0.0, dmu_dp = 0.0, dmu_dT = 0.0, dmu_dx = 0.0;
199 _fp->mu_from_p_T_X(p, T,
x,
mu, dmu_dp, dmu_dT, dmu_dx);
201 ABS_TEST(
mu, _fp->mu_from_p_T_X(p, T,
x), REL_TOL_CONSISTENCY);
202 REL_TEST(dmu_dp, dmu_dp_fd, 1.0e-3);
203 REL_TEST(dmu_dT, dmu_dT_fd, 1.0e-6);
204 REL_TEST(dmu_dx, dmu_dx_fd, 1.0e-6);
210 _fp->rho_from_p_T_X(p, T,
x, rho, drho_dp, drho_dT, drho_dx);
211 drho_dx_fd = (_fp->rho_from_p_T_X(p, T,
x + dx) - _fp->rho_from_p_T_X(p, T,
x)) / dx;
213 REL_TEST(drho_dx, drho_dx_fd, 1.0e-3);
216 _fp->h_from_p_T_X(p, T,
x, h, dh_dp, dh_dT, dh_dx);
217 dh_dx_fd = (_fp->h_from_p_T_X(p, T,
x + dx) - _fp->h_from_p_T_X(p, T,
x)) / dx;
219 REL_TEST(dh_dx, dh_dx_fd, 1.0e-3);
222 _fp->e_from_p_T_X(p, T,
x, e, de_dp, de_dT, de_dx);
223 de_dx_fd = (_fp->e_from_p_T_X(p, T,
x + dx) - _fp->e_from_p_T_X(p, T,
x)) / dx;
225 REL_TEST(de_dx, de_dx_fd, 1.0e-3);
228 dmu_dx_fd = (_fp->mu_from_p_T_X(p, T,
x + dx) - _fp->mu_from_p_T_X(p, T,
x)) / dx;
229 _fp->mu_from_p_T_X(p, T,
x,
mu, dmu_dp, dmu_dT, dmu_dx);
231 REL_TEST(dmu_dx, dmu_dx_fd, 1.0e-3);
240 const Real tol = REL_TOL_SAVED_VALUE;
241 const Real p = 1.0e6;
242 const Real T = 350.0;
243 const Real x = 0.1047;
246 Real rho, drho_dp, drho_dT, drho_dx,
mu, dmu_dp, dmu_dT, dmu_dx;
247 _fp->rho_from_p_T_X(p, T,
x, rho, drho_dp, drho_dT, drho_dx);
248 _fp->mu_from_p_T_X(p, T,
x,
mu, dmu_dp, dmu_dT, dmu_dx);
252 _fp->rho_mu_from_p_T_X(p, T,
x, rho2, mu2);
254 ABS_TEST(rho, rho2,
tol);
255 ABS_TEST(
mu, mu2,
tol);
258 Real drho2_dp, drho2_dT, drho2_dx, dmu2_dp, dmu2_dT, dmu2_dx;
259 _fp->rho_mu_from_p_T_X(
260 p, T,
x, rho2, drho2_dp, drho2_dT, drho2_dx, mu2, dmu2_dp, dmu2_dT, dmu2_dx);
262 ABS_TEST(rho, rho2,
tol);
263 ABS_TEST(
mu, mu2,
tol);
264 ABS_TEST(drho_dp, drho2_dp,
tol);
265 ABS_TEST(drho_dT, drho2_dT,
tol);
266 ABS_TEST(drho_dx, drho2_dx,
tol);
267 ABS_TEST(
mu, mu2,
tol);
268 ABS_TEST(dmu_dp, dmu2_dp,
tol);
269 ABS_TEST(dmu_dT, dmu2_dT,
tol);
270 ABS_TEST(dmu_dx, dmu2_dx,
tol);
TEST_F(BrineFluidPropertiesTest, fluidName)
Test that the fluid name is correctly returned.
static const unsigned int NACL
const std::vector< double > x
static const std::string mu
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const unsigned int WATER
Fluid component numbers for water and NaCl.