29 const Real dp = 1.0e-1;
30 const Real dT = 1.0e-6;
32 ADReal Xncg, Yh2o, Xncg1, Yh2o1, Xncg2, Yh2o2;
33 _fs->equilibriumMassFractions(
p,
T, Xncg, Yh2o);
34 _fs->equilibriumMassFractions(
p - dp,
T, Xncg1, Yh2o1);
35 _fs->equilibriumMassFractions(
p + dp,
T, Xncg2, Yh2o2);
37 Real dXncg_dp_fd = (Xncg2.value() - Xncg1.value()) / (2.0 * dp);
38 Real dYh2o_dp_fd = (Yh2o2.value() - Yh2o1.value()) / (2.0 * dp);
40 REL_TEST(Xncg.derivatives()[_pidx], dXncg_dp_fd, 1.0e-8);
41 REL_TEST(Yh2o.derivatives()[_pidx], dYh2o_dp_fd, 1.0e-7);
43 _fs->equilibriumMassFractions(
p,
T - dT, Xncg1, Yh2o1);
44 _fs->equilibriumMassFractions(
p,
T + dT, Xncg2, Yh2o2);
46 Real dXncg_dT_fd = (Xncg2.value() - Xncg1.value()) / (2.0 * dT);
47 Real dYh2o_dT_fd = (Yh2o2.value() - Yh2o1.value()) / (2.0 * dT);
49 REL_TEST(Xncg.derivatives()[_Tidx], dXncg_dT_fd, 1.0e-7);
50 REL_TEST(Yh2o.derivatives()[_Tidx], dYh2o_dT_fd, 1.0e-7);
72 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
76 ADReal Xncg = fsp[0].mass_fraction[1];
77 ADReal Yncg = fsp[1].mass_fraction[1];
78 ADReal Xh2o = fsp[0].mass_fraction[0];
79 ADReal Yh2o = fsp[1].mass_fraction[0];
80 ABS_TEST(Xncg.value(),
Z.value(), 1.0e-12);
81 ABS_TEST(Yncg.value(), 0.0, 1.0e-12);
82 ABS_TEST(Xh2o.value(), 1.0 -
Z.value(), 1.0e-12);
83 ABS_TEST(Yh2o.value(), 0.0, 1.0e-12);
86 Real dXncg_dp = Xncg.derivatives()[_pidx];
87 Real dXncg_dT = Xncg.derivatives()[_Tidx];
88 Real dXncg_dZ = Xncg.derivatives()[_Zidx];
89 Real dYncg_dp = Yncg.derivatives()[_pidx];
90 Real dYncg_dT = Yncg.derivatives()[_Tidx];
91 Real dYncg_dZ = Yncg.derivatives()[_Zidx];
92 ABS_TEST(dXncg_dp, 0.0, 1.0e-12);
93 ABS_TEST(dXncg_dT, 0.0, 1.0e-12);
94 ABS_TEST(dXncg_dZ, 1.0, 1.0e-12);
95 ABS_TEST(dYncg_dp, 0.0, 1.0e-12);
96 ABS_TEST(dYncg_dT, 0.0, 1.0e-12);
97 ABS_TEST(dYncg_dZ, 0.0, 1.0e-12);
103 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
107 Xncg = fsp[0].mass_fraction[1];
108 Yncg = fsp[1].mass_fraction[1];
109 Xh2o = fsp[0].mass_fraction[0];
110 Yh2o = fsp[1].mass_fraction[0];
111 ABS_TEST(Xncg.value(), 0.0, 1.0e-12);
112 ABS_TEST(Yncg.value(),
Z.value(), 1.0e-12);
113 ABS_TEST(Xh2o.value(), 0.0, 1.0e-12);
114 ABS_TEST(Yh2o.value(), 1.0 -
Z.value(), 1.0e-12);
117 dXncg_dp = Xncg.derivatives()[_pidx];
118 dXncg_dT = Xncg.derivatives()[_Tidx];
119 dXncg_dZ = Xncg.derivatives()[_Zidx];
120 dYncg_dp = Yncg.derivatives()[_pidx];
121 dYncg_dT = Yncg.derivatives()[_Tidx];
122 dYncg_dZ = Yncg.derivatives()[_Zidx];
123 ABS_TEST(dXncg_dp, 0.0, 1.0e-12);
124 ABS_TEST(dXncg_dT, 0.0, 1.0e-12);
125 ABS_TEST(dXncg_dZ, 0.0, 1.0e-12);
126 ABS_TEST(dYncg_dp, 0.0, 1.0e-12);
127 ABS_TEST(dYncg_dT, 0.0, 1.0e-12);
128 ABS_TEST(dYncg_dZ, 1.0, 1.0e-12);
136 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
141 _fs->equilibriumMassFractions(
p,
T, Xncg_eq, Yh2o_eq);
144 Xncg = fsp[0].mass_fraction[1];
145 Yncg = fsp[1].mass_fraction[1];
146 Xh2o = fsp[0].mass_fraction[0];
147 Yh2o = fsp[1].mass_fraction[0];
148 ABS_TEST(Xncg, Xncg_eq, 1.0e-12);
149 ABS_TEST(Yncg, 1.0 - Yh2o_eq, 1.0e-12);
150 ABS_TEST(Xh2o, 1.0 - Xncg_eq, 1.0e-12);
151 ABS_TEST(Yh2o, Yh2o_eq, 1.0e-12);
154 dXncg_dp = Xncg.derivatives()[_pidx];
155 dXncg_dT = Xncg.derivatives()[_Tidx];
156 dXncg_dZ = Xncg.derivatives()[_Zidx];
157 dYncg_dp = Yncg.derivatives()[_pidx];
158 dYncg_dT = Yncg.derivatives()[_Tidx];
159 dYncg_dZ = Yncg.derivatives()[_Zidx];
160 ABS_TEST(dXncg_dp, Xncg_eq.derivatives()[_pidx], 1.0e-8);
161 ABS_TEST(dXncg_dT, Xncg_eq.derivatives()[_Tidx], 1.0e-8);
162 ABS_TEST(dXncg_dZ, 0.0, 1.0e-8);
163 ABS_TEST(dYncg_dp, -Yh2o_eq.derivatives()[_pidx], 1.0e-8);
164 ABS_TEST(dYncg_dT, -Yh2o_eq.derivatives()[_Tidx], 1.0e-8);
165 ABS_TEST(dYncg_dZ, 0.0, 1.0e-8);
168 const Real dZ = 1.0e-8;
169 _fs->massFractions(
p,
T,
Z + dZ, phase_state, fsp);
170 ADReal Xncg1 = fsp[0].mass_fraction[1];
171 ADReal Yncg1 = fsp[1].mass_fraction[1];
172 _fs->massFractions(
p,
T,
Z - dZ, phase_state, fsp);
173 ADReal Xncg2 = fsp[0].mass_fraction[1];
174 ADReal Yncg2 = fsp[1].mass_fraction[1];
176 ABS_TEST(dXncg_dZ, (Xncg1 - Xncg2).
value() / (2.0 * dZ), 1.0e-8);
177 ABS_TEST(dYncg_dZ, (Yncg1 - Yncg2).
value() / (2.0 * dZ), 1.0e-8);
198 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
201 const ADReal gas_density = _fs->gasDensity(
p,
T, fsp);
204 _ncg_fp->rho_from_p_T(
Z *
p,
T) + _water_fp->rho_from_p_T(_water_fp->vaporPressure(
T),
T);
206 ABS_TEST(gas_density,
density, 1.0e-12);
227 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
231 _fs->gasProperties(
p,
T, fsp);
232 ADReal gas_density = fsp[1].density;
233 ADReal gas_viscosity = fsp[1].viscosity;
234 ADReal gas_enthalpy = fsp[1].enthalpy;
237 _ncg_fp->rho_from_p_T(
Z *
p,
T) + _water_fp->rho_from_p_T(_water_fp->vaporPressure(
T),
T);
238 ADReal viscosity =
Z * _ncg_fp->mu_from_p_T(
Z *
p,
T) +
239 (1.0 -
Z) * _water_fp->mu_from_p_T(_water_fp->vaporPressure(
T),
T);
240 ADReal enthalpy =
Z * _ncg_fp->h_from_p_T(
Z *
p,
T) +
241 (1.0 -
Z) * _water_fp->h_from_p_T(_water_fp->vaporPressure(
T),
T);
243 ABS_TEST(gas_density,
density, 1.0e-10);
244 ABS_TEST(gas_viscosity, viscosity, 1.0e-10);
245 ABS_TEST(gas_enthalpy, enthalpy, 1.0e-10);
248 Real ddensity_dp = gas_density.derivatives()[_pidx];
249 Real ddensity_dT = gas_density.derivatives()[_Tidx];
250 Real ddensity_dZ = gas_density.derivatives()[_Zidx];
251 Real dviscosity_dp = gas_viscosity.derivatives()[_pidx];
252 Real dviscosity_dT = gas_viscosity.derivatives()[_Tidx];
253 Real dviscosity_dZ = gas_viscosity.derivatives()[_Zidx];
254 Real denthalpy_dp = gas_enthalpy.derivatives()[_pidx];
255 Real denthalpy_dT = gas_enthalpy.derivatives()[_Tidx];
256 Real denthalpy_dZ = gas_enthalpy.derivatives()[_Zidx];
258 const Real dp = 1.0e-1;
259 _fs->gasProperties(
p + dp,
T, fsp);
260 ADReal rho1 = fsp[1].density;
261 ADReal mu1 = fsp[1].viscosity;
262 ADReal h1 = fsp[1].enthalpy;
264 _fs->gasProperties(
p - dp,
T, fsp);
265 ADReal rho2 = fsp[1].density;
266 ADReal mu2 = fsp[1].viscosity;
267 ADReal h2 = fsp[1].enthalpy;
269 REL_TEST(ddensity_dp, (rho1 - rho2).
value() / (2.0 * dp), 1.0e-7);
270 REL_TEST(dviscosity_dp, (mu1 - mu2).
value() / (2.0 * dp), 1.0e-7);
271 REL_TEST(denthalpy_dp, (h1 - h2).
value() / (2.0 * dp), 5.0e-7);
273 const Real dT = 1.0e-3;
274 _fs->gasProperties(
p,
T + dT, fsp);
275 rho1 = fsp[1].density;
276 mu1 = fsp[1].viscosity;
277 h1 = fsp[1].enthalpy;
279 _fs->gasProperties(
p,
T - dT, fsp);
280 rho2 = fsp[1].density;
281 mu2 = fsp[1].viscosity;
282 h2 = fsp[1].enthalpy;
284 REL_TEST(ddensity_dT, (rho1 - rho2).
value() / (2.0 * dT), 1.0e-7);
285 REL_TEST(dviscosity_dT, (mu1 - mu2).
value() / (2.0 * dT), 1.0e-8);
286 REL_TEST(denthalpy_dT, (h1 - h2).
value() / (2.0 * dT), 1.0e-8);
289 const Real dZ = 1.0e-8;
290 _fs->massFractions(
p,
T,
Z + dZ, phase_state, fsp);
291 _fs->gasProperties(
p,
T, fsp);
292 rho1 = fsp[1].density;
293 mu1 = fsp[1].viscosity;
294 h1 = fsp[1].enthalpy;
296 _fs->massFractions(
p,
T,
Z - dZ, phase_state, fsp);
297 _fs->gasProperties(
p,
T, fsp);
298 rho2 = fsp[1].density;
299 mu2 = fsp[1].viscosity;
300 h2 = fsp[1].enthalpy;
302 REL_TEST(ddensity_dZ, (rho1 - rho2).
value() / (2.0 * dZ), 5.0e-8);
303 REL_TEST(dviscosity_dZ, (mu1 - mu2).
value() / (2.0 * dZ), 5.0e-8);
304 REL_TEST(denthalpy_dZ, (h1 - h2).
value() / (2.0 * dZ), 1.0e-8);
311 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
314 _fs->gasProperties(
p,
T, fsp);
315 gas_density = fsp[1].density;
316 gas_viscosity = fsp[1].viscosity;
317 gas_enthalpy = fsp[1].enthalpy;
318 ddensity_dp = gas_density.derivatives()[_pidx];
319 ddensity_dT = gas_density.derivatives()[_Tidx];
320 ddensity_dZ = gas_density.derivatives()[_Zidx];
321 dviscosity_dp = gas_viscosity.derivatives()[_pidx];
322 dviscosity_dT = gas_viscosity.derivatives()[_Tidx];
323 dviscosity_dZ = gas_viscosity.derivatives()[_Zidx];
324 denthalpy_dp = gas_enthalpy.derivatives()[_pidx];
325 denthalpy_dT = gas_enthalpy.derivatives()[_Tidx];
326 denthalpy_dZ = gas_enthalpy.derivatives()[_Zidx];
328 _fs->massFractions(
p + dp,
T,
Z, phase_state, fsp);
329 _fs->gasProperties(
p + dp,
T, fsp);
330 rho1 = fsp[1].density;
331 mu1 = fsp[1].viscosity;
332 h1 = fsp[1].enthalpy;
334 _fs->massFractions(
p - dp,
T,
Z, phase_state, fsp);
335 _fs->gasProperties(
p - dp,
T, fsp);
336 rho2 = fsp[1].density;
337 mu2 = fsp[1].viscosity;
338 h2 = fsp[1].enthalpy;
340 REL_TEST(ddensity_dp, (rho1 - rho2).
value() / (2.0 * dp), 1.0e-7);
341 REL_TEST(dviscosity_dp, (mu1 - mu2).
value() / (2.0 * dp), 1.0e-7);
342 REL_TEST(denthalpy_dp, (h1 - h2).
value() / (2.0 * dp), 1.0e-7);
344 _fs->massFractions(
p,
T + dT,
Z, phase_state, fsp);
345 _fs->gasProperties(
p,
T + dT, fsp);
346 rho1 = fsp[1].density;
347 mu1 = fsp[1].viscosity;
348 h1 = fsp[1].enthalpy;
350 _fs->massFractions(
p,
T - dT,
Z, phase_state, fsp);
351 _fs->gasProperties(
p,
T - dT, fsp);
352 rho2 = fsp[1].density;
353 mu2 = fsp[1].viscosity;
354 h2 = fsp[1].enthalpy;
356 REL_TEST(ddensity_dT, (rho1 - rho2).
value() / (2.0 * dT), 1.0e-7);
357 REL_TEST(dviscosity_dT, (mu1 - mu2).
value() / (2.0 * dT), 1.0e-8);
358 REL_TEST(denthalpy_dT, (h1 - h2).
value() / (2.0 * dT), 1.0e-8);
360 _fs->massFractions(
p,
T,
Z + dZ, phase_state, fsp);
361 _fs->gasProperties(
p,
T, fsp);
362 rho1 = fsp[1].density;
363 mu1 = fsp[1].viscosity;
364 h1 = fsp[1].enthalpy;
366 _fs->massFractions(
p,
T,
Z - dZ, phase_state, fsp);
367 _fs->gasProperties(
p,
T, fsp);
368 rho2 = fsp[1].density;
369 mu2 = fsp[1].viscosity;
370 h2 = fsp[1].enthalpy;
372 ABS_TEST(ddensity_dZ, (rho1 - rho2).
value() / (2.0 * dZ), 1.0e-8);
373 ABS_TEST(dviscosity_dT, (mu1 - mu2).
value() / (2.0 * dZ), 1.0e-7);
374 ABS_TEST(denthalpy_dZ, (h1 - h2).
value() / (2.0 * dZ), 1.0e-8);
388 const ADReal liquid_density = _fs->liquidDensity(
p,
T);
391 ABS_TEST(liquid_density,
density, 1.0e-12);
412 _fs->liquidProperties(
p,
T, fsp);
413 ADReal liquid_density = fsp[0].density;
414 ADReal liquid_viscosity = fsp[0].viscosity;
415 ADReal liquid_enthalpy = fsp[0].enthalpy;
418 ADReal viscosity = _water_fp->mu_from_p_T(
p,
T);
419 ADReal enthalpy = _water_fp->h_from_p_T(
p,
T);
421 ABS_TEST(liquid_density,
density, 1.0e-12);
422 ABS_TEST(liquid_viscosity, viscosity, 1.0e-12);
423 ABS_TEST(liquid_enthalpy, enthalpy, 1.0e-12);
426 Real ddensity_dp = liquid_density.derivatives()[_pidx];
427 Real ddensity_dT = liquid_density.derivatives()[_Tidx];
428 Real ddensity_dZ = liquid_density.derivatives()[_Zidx];
429 Real dviscosity_dp = liquid_viscosity.derivatives()[_pidx];
430 Real dviscosity_dT = liquid_viscosity.derivatives()[_Tidx];
431 Real dviscosity_dZ = liquid_viscosity.derivatives()[_Zidx];
432 Real denthalpy_dp = liquid_enthalpy.derivatives()[_pidx];
433 Real denthalpy_dT = liquid_enthalpy.derivatives()[_Tidx];
434 Real denthalpy_dZ = liquid_enthalpy.derivatives()[_Zidx];
436 const Real dp = 10.0;
437 _fs->liquidProperties(
p + dp,
T, fsp);
438 ADReal rho1 = fsp[0].density;
439 ADReal mu1 = fsp[0].viscosity;
440 ADReal h1 = fsp[0].enthalpy;
442 _fs->liquidProperties(
p - dp,
T, fsp);
443 ADReal rho2 = fsp[0].density;
444 ADReal mu2 = fsp[0].viscosity;
445 ADReal h2 = fsp[0].enthalpy;
447 REL_TEST(ddensity_dp, (rho1 - rho2) / (2.0 * dp), 1.0e-6);
448 REL_TEST(dviscosity_dp, (mu1 - mu2) / (2.0 * dp), 1.0e-6);
449 REL_TEST(denthalpy_dp, (h1 - h2) / (2.0 * dp), 1.0e-6);
451 const Real dT = 1.0e-4;
452 _fs->liquidProperties(
p,
T + dT, fsp);
453 rho1 = fsp[0].density;
454 mu1 = fsp[0].viscosity;
455 h1 = fsp[0].enthalpy;
457 _fs->liquidProperties(
p,
T - dT, fsp);
458 rho2 = fsp[0].density;
459 mu2 = fsp[0].viscosity;
460 h2 = fsp[0].enthalpy;
462 REL_TEST(ddensity_dT, (rho1 - rho2) / (2.0 * dT), 1.0e-8);
463 REL_TEST(dviscosity_dT, (mu1 - mu2) / (2.0 * dT), 1.0e-8);
464 REL_TEST(denthalpy_dT, (h1 - h2) / (2.0 * dT), 1.0e-8);
469 const Real dZ = 1.0e-8;
471 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
472 _fs->liquidProperties(
p,
T, fsp);
473 denthalpy_dZ = fsp[0].enthalpy.derivatives()[_Zidx];
475 _fs->massFractions(
p,
T,
Z + dZ, phase_state, fsp);
476 _fs->liquidProperties(
p,
T, fsp);
477 h1 = fsp[0].enthalpy;
479 _fs->massFractions(
p,
T,
Z - dZ, phase_state, fsp);
480 _fs->liquidProperties(
p,
T, fsp);
481 h2 = fsp[0].enthalpy;
483 REL_TEST(denthalpy_dZ, (h1 - h2) / (2.0 * dZ), 1.0e-8);
486 ABS_TEST(ddensity_dZ, 0.0, 1.0e-12);
487 ABS_TEST(dviscosity_dZ, 0.0, 1.0e-12);
494 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
495 _fs->liquidProperties(
p,
T, fsp);
496 denthalpy_dp = fsp[0].enthalpy.derivatives()[_pidx];
497 denthalpy_dT = fsp[0].enthalpy.derivatives()[_Tidx];
498 denthalpy_dZ = fsp[0].enthalpy.derivatives()[_Zidx];
500 _fs->massFractions(
p + dp,
T,
Z, phase_state, fsp);
501 _fs->liquidProperties(
p + dp,
T, fsp);
502 h1 = fsp[0].enthalpy;
504 _fs->massFractions(
p - dp,
T,
Z, phase_state, fsp);
505 _fs->liquidProperties(
p - dp,
T, fsp);
506 h2 = fsp[0].enthalpy;
508 REL_TEST(denthalpy_dp, (h1 - h2) / (2.0 * dp), 1.0e-8);
510 _fs->massFractions(
p,
T + dT,
Z, phase_state, fsp);
511 _fs->liquidProperties(
p,
T + dT, fsp);
512 h1 = fsp[0].enthalpy;
514 _fs->massFractions(
p,
T - dT,
Z, phase_state, fsp);
515 _fs->liquidProperties(
p,
T - dT, fsp);
516 h2 = fsp[0].enthalpy;
518 REL_TEST(denthalpy_dT, (h1 - h2) / (2.0 * dT), 1.0e-8);
520 _fs->massFractions(
p,
T,
Z + dZ, phase_state, fsp);
521 _fs->liquidProperties(
p,
T, fsp);
522 h1 = fsp[0].enthalpy;
524 _fs->massFractions(
p,
T,
Z - dZ, phase_state, fsp);
525 _fs->liquidProperties(
p,
T, fsp);
526 h2 = fsp[0].enthalpy;
528 ABS_TEST(denthalpy_dZ, (h1 - h2) / (2.0 * dZ), 1.0e-8);
551 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
555 ADReal target_gas_saturation = 0.25;
556 fsp[1].saturation = target_gas_saturation;
559 _fs->gasProperties(
p,
T, fsp);
560 _fs->liquidProperties(
p,
T, fsp);
564 (target_gas_saturation * fsp[1].density * fsp[1].mass_fraction[1] +
565 (1.0 - target_gas_saturation) * fsp[0].
density * fsp[0].mass_fraction[1]) /
566 (target_gas_saturation * fsp[1].density + (1.0 - target_gas_saturation) * fsp[0].
density);
569 ADReal gas_saturation = _fs->saturation(
p,
T, Zc, fsp);
571 REL_TEST(gas_saturation, target_gas_saturation, 1.0e-6);
574 gas_saturation = _fs->saturation(
p,
T,
Z, fsp);
575 const Real dp = 1.0e-1;
577 Real dgas_saturation_dp = gas_saturation.derivatives()[_pidx];
578 Real dgas_saturation_dT = gas_saturation.derivatives()[_Tidx];
579 Real dgas_saturation_dZ = gas_saturation.derivatives()[_Zidx];
581 _fs->massFractions(
p + dp,
T,
Z, phase_state, fsp);
582 ADReal gsat1 = _fs->saturation(
p + dp,
T,
Z, fsp);
584 _fs->massFractions(
p - dp,
T,
Z, phase_state, fsp);
585 ADReal gsat2 = _fs->saturation(
p - dp,
T,
Z, fsp);
587 REL_TEST(dgas_saturation_dp, (gsat1 - gsat2).
value() / (2.0 * dp), 1.0e-7);
589 const Real dT = 1.0e-4;
591 _fs->massFractions(
p,
T + dT,
Z, phase_state, fsp);
592 gsat1 = _fs->saturation(
p,
T + dT,
Z, fsp);
594 _fs->massFractions(
p,
T - dT,
Z, phase_state, fsp);
595 gsat2 = _fs->saturation(
p,
T - dT,
Z, fsp);
597 REL_TEST(dgas_saturation_dT, (gsat1 - gsat2).
value() / (2.0 * dT), 1.0e-7);
599 const Real dZ = 1.0e-8;
601 _fs->massFractions(
p,
T,
Z + dZ, phase_state, fsp);
602 gsat1 = _fs->saturation(
p,
T,
Z + dZ, fsp);
604 _fs->massFractions(
p,
T,
Z - dZ, phase_state, fsp);
605 gsat2 = _fs->saturation(
p,
T,
Z - dZ, fsp);
607 REL_TEST(dgas_saturation_dZ, (gsat1 - gsat2).
value() / (2.0 * dZ), 1.0e-7);
628 const unsigned int qp = 0;
630 _fs->massFractions(
p,
T,
Z, phase_state, fsp);
633 _fs->twoPhaseProperties(
p,
T,
Z, qp, fsp);
634 ADReal liquid_density = fsp[0].density;
635 ADReal liquid_viscosity = fsp[0].viscosity;
636 ADReal liquid_enthalpy = fsp[0].enthalpy;
637 ADReal gas_saturation = fsp[1].saturation;
638 ADReal gas_density = fsp[1].density;
639 ADReal gas_viscosity = fsp[1].viscosity;
640 ADReal gas_enthalpy = fsp[1].enthalpy;
647 _fs->massFractions(
p,
T,
Z, phase_state, fsp2);
648 _fs->gasProperties(
p,
T, fsp2);
649 fsp2[1].saturation = _fs->saturation(
p,
T,
Z, fsp2);
651 const ADReal pliq =
p - _pc->capillaryPressure(1.0 - fsp2[1].saturation, qp);
652 _fs->liquidProperties(pliq,
T, fsp2);
654 ABS_TEST(gas_density, fsp2[1].
density, 1.0e-12);
655 ABS_TEST(gas_viscosity, fsp2[1].viscosity, 1.0e-12);
656 ABS_TEST(gas_enthalpy, fsp2[1].enthalpy, 1.0e-12);
658 ABS_TEST(liquid_density, fsp2[0].
density, 1.0e-12);
659 ABS_TEST(liquid_viscosity, fsp2[0].viscosity, 1.0e-12);
660 ABS_TEST(liquid_enthalpy, fsp2[0].enthalpy, 1.0e-12);
668 const Real p = 1.0e6;
669 const Real T = 350.0;
671 const Real Xnacl = 0.1;
672 const unsigned qp = 0;
674 Real Z = _fs->totalMassFraction(
p,
T, Xnacl, s, qp);
687 REL_TEST(gas_saturation, s, 1.0e-5);
702 ADReal hdis = _fs->enthalpyOfDissolution(
T);
703 REL_TEST(hdis.value(), -3.45731e5, 1.0e-5);
710 hdis = _fs->enthalpyOfDissolution(
T);
711 REL_TEST(hdis.value(), 1.23423e+06, 1.0e-5);
714 const Real dT = 1.0e-4;
715 ADReal hdis2 = _fs->enthalpyOfDissolution(
T + dT);
716 ADReal hdis3 = _fs->enthalpyOfDissolution(
T - dT);
718 REL_TEST(hdis.derivatives()[_Tidx], (hdis2 - hdis3) / (2.0 * dT), 1.0e-6);
static const std::string density
static const std::string temperature
TEST_F(PorousFlowWaterNCGTest, name)
Verify that the correct name is supplied.
DualNumber< Real, DNDerivativeType, false > ADReal
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
AD data structure to pass calculated thermophysical properties.
FluidStatePhaseEnum
Phase state enum.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)