https://mooseframework.inl.gov
PorousFlowWaterVaporTest.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(PorousFlowWaterVaporTest, name) { EXPECT_EQ("water-vapor", _fp->fluidStateName()); }
17 
19 {
20  FluidStatePhaseEnum phase_state;
21  std::vector<FluidStateProperties> fsp(2, FluidStateProperties(1));
22 
23  // Single phase liquid region
24  Real p = 1.0e6;
25  Real h = 1.0e5;
26 
27  const Real tol = REL_TOL_CONSISTENCY;
28 
29  _fp->thermophysicalProperties(p, h, 0, phase_state, fsp);
30  EXPECT_EQ(phase_state, FluidStatePhaseEnum::LIQUID);
31 
32  Real T = _water_fp->T_from_p_h(p, h);
33 
34  ABS_TEST(fsp[0].density.value(), _water_fp->rho_from_p_T(p, T), tol);
35  ABS_TEST(fsp[0].viscosity.value(), _water_fp->mu_from_p_T(p, T), tol);
36  ABS_TEST(fsp[0].enthalpy.value(), h, tol);
37  ABS_TEST(fsp[0].internal_energy.value(), _water_fp->e_from_p_T(p, T), tol);
38  ABS_TEST(fsp[0].saturation.value(), 1.0, tol);
39  ABS_TEST(fsp[0].pressure.value(), p, tol);
40 
41  // Single phase gas region
42  h = 3.0e6;
43  Real pg = p + _pc->capillaryPressure(0.0);
44 
45  _fp->thermophysicalProperties(p, h, 0, phase_state, fsp);
46  EXPECT_EQ(phase_state, FluidStatePhaseEnum::GAS);
47 
48  T = _water_fp->T_from_p_h(pg, h);
49  ABS_TEST(fsp[1].density.value(), _water_fp->rho_from_p_T(pg, T), tol);
50  ABS_TEST(fsp[1].viscosity.value(), _water_fp->mu_from_p_T(pg, T), tol);
51  ABS_TEST(fsp[1].enthalpy.value(), h, tol);
52  ABS_TEST(fsp[1].internal_energy.value(), _water_fp->e_from_p_T(pg, T), tol);
53  ABS_TEST(fsp[1].saturation.value(), 1.0, tol);
54  ABS_TEST(fsp[1].pressure.value(), pg, tol);
55 
56  // Two-phase region
57  h = 8.0e5;
58 
59  _fp->thermophysicalProperties(p, h, 0, phase_state, fsp);
60  EXPECT_EQ(phase_state, FluidStatePhaseEnum::TWOPHASE);
61 
62  const Real Tsat = _water_fp->vaporTemperature(p);
63  const Real dT = 1.0e-6;
64 
65  // Liquid phase
66  ABS_TEST(fsp[0].density.value(), _water_fp->rho_from_p_T(p, Tsat - dT), tol);
67  ABS_TEST(fsp[0].viscosity.value(), _water_fp->mu_from_p_T(p, Tsat - dT), tol);
68  ABS_TEST(fsp[0].enthalpy.value(), _water_fp->h_from_p_T(p, Tsat - dT), tol);
69  ABS_TEST(fsp[0].internal_energy.value(), _water_fp->e_from_p_T(p, Tsat - dT), tol);
70  ABS_TEST(fsp[0].pressure.value(), p, tol);
71 
72  // Gas phase
73  pg = p + _pc->capillaryPressure(fsp[0].saturation.value());
74  ABS_TEST(fsp[1].density.value(), _water_fp->rho_from_p_T(p, Tsat + dT), tol);
75  ABS_TEST(fsp[1].viscosity.value(), _water_fp->mu_from_p_T(p, Tsat + dT), tol);
76  ABS_TEST(fsp[1].enthalpy.value(), _water_fp->h_from_p_T(p, Tsat + dT), tol);
77  ABS_TEST(fsp[1].internal_energy.value(), _water_fp->e_from_p_T(p, Tsat + dT), tol);
78  ABS_TEST(fsp[1].pressure.value(), pg, tol);
79 }
const double tol
static const std::string density
Definition: NS.h:33
const std::string name
Definition: Setup.h:20
AD data structure to pass calculated thermophysical properties.
TEST_F(PorousFlowWaterVaporTest, name)
Verify that the correct name is supplied.
FluidStatePhaseEnum
Phase state enum.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56
static const std::string internal_energy
Definition: NS.h:61