19 params.
addParam<
Real>(
"molar_mass", 1.8E-2,
"Constant molar mass of the fluid (kg/mol)");
21 "thermal_expansion", 2.14E-4,
"Constant coefficient of thermal expansion (1/K)");
23 "cv", 4186.0,
"Constant specific heat capacity at constant volume (J/kg/K)");
25 "cp", 4194.0,
"Constant specific heat capacity at constant pressure (J/kg/K)");
27 "bulk_modulus", 2.0E9,
"bulk_modulus>0",
"Constant bulk modulus (Pa)");
28 params.
addParam<
Real>(
"thermal_conductivity", 0.6,
"Constant thermal conductivity (W/m/K)");
29 params.
addParam<
Real>(
"specific_entropy", 300.0,
"Constant specific entropy (J/kg/K)");
30 params.
addParam<
Real>(
"viscosity", 1.0E-3,
"Constant dynamic viscosity (Pa.s)");
31 params.
addParam<
Real>(
"density0", 1000.0,
"Density at zero pressure and zero temperature");
34 "The enthalpy is internal_energy + P / density * " 35 "porepressure_coefficient. Physically this should be 1.0, " 36 "but analytic solutions are simplified when it is zero");
37 params.
addClassDescription(
"Fluid properties for a simple fluid with a constant bulk density");
43 _molar_mass(getParam<
Real>(
"molar_mass")),
44 _thermal_expansion(getParam<
Real>(
"thermal_expansion")),
45 _cv(getParam<
Real>(
"cv")),
46 _cp(getParam<
Real>(
"cp")),
47 _bulk_modulus(getParam<
Real>(
"bulk_modulus")),
48 _thermal_conductivity(getParam<
Real>(
"thermal_conductivity")),
49 _specific_entropy(getParam<
Real>(
"specific_entropy")),
50 _viscosity(getParam<
Real>(
"viscosity")),
51 _density0(getParam<
Real>(
"density0")),
52 _pp_coeff(getParam<
Real>(
"porepressure_coefficient"))
61 return "simple_fluid";
181 Real , Real , Real &
k, Real & dk_dp, Real & dk_dT)
const 195 Real , Real , Real &
k, Real & dk_dv, Real & dk_de)
const 209 Real , Real , Real & s, Real & ds_dp, Real & ds_dT)
const 225 Real , Real , Real & s, Real & ds_dv, Real & ds_de)
const 299 T = SinglePhaseFluidProperties::T_from_v_e(
v, e);
307 mooseAssert(
rho > 0,
"Density should be positive");
327 {
h_from_p_T(
p, current_T, new_rho, dh_dp, dh_dT); };
352 p = SinglePhaseFluidProperties::p_from_v_e(
v, e);
367 Real T, dT_dv, dT_dh;
400 Real T, dT_dp, dT_drho;
406 de_dp = de_dT * dT_dp + de_dp;
407 de_drho = de_dT * dT_drho + de_dp * dT_dp;
421 Real T, dT_dv, dT_dh;
422 Real p, dp_dv, dp_dh;
428 de_dv = de_dp * dp_dv + de_dT * dT_dv;
429 de_dh = de_dp * dp_dh + de_dT * dT_dh;
const Real _thermal_expansion
thermal expansion coefficient
virtual Real k_from_v_e(Real v, Real e) const override
const Real _pp_coeff
Porepressure coefficient: enthalpy = internal_energy + porepressure / density * _pp_coeff.
e e e e s T T T T T rho T
static const std::string cv
virtual Real c_from_v_e(Real v, Real e) const override
virtual Real cv_from_v_e(Real v, Real e) const override
virtual Real h_from_p_T(Real p, Real T) const override
static InputParameters validParams()
const Real _cv
specific heat at constant volume
const Real _specific_entropy
specific entropy
const Real _viscosity
viscosity
virtual Real mu_from_v_e(Real v, Real e) const override
virtual Real c_from_p_T(Real pressure, Real temperature) const override
DualNumber< Real, DNDerivativeType, true > DualReal
const Real _bulk_modulus
bulk modulus
static const std::string density
virtual Real cp_from_p_T(Real pressure, Real temperature) const override
static const std::string temperature
ADRealEigenVector< T, D, asd > sqrt(const ADRealEigenVector< T, D, asd > &)
virtual Real s_from_h_p(Real h, Real p) const override
const Real _molar_mass
molar mass
virtual const std::string & name() const
Fluid properties of a simple, idealised fluid density=density0 * exp(P / bulk_modulus - thermal_expan...
virtual ~SimpleFluidProperties()
std::pair< T, T > NewtonSolve(const T &x, const T &y, const Real z_initial_guess, const Real tolerance, const Functor &func, const std::string &caller_name, const unsigned int max_its=100)
NewtonSolve does a 1D Newton Solve to solve the equation y = f(x, z) for variable z...
const Real _density0
density at zero pressure and temperature
virtual std::string fluidName() const override
virtual Real e_from_p_rho(Real pressure, Real rho) const override
static const std::string cp
const Real _tolerance
Newton's method may be used to convert between variable sets _tolerance, _T_initial_guess, and _p_initial_guess are the parameters for these iterative solves.
virtual Real s_from_v_e(Real v, Real e) const override
const Real _thermal_conductivity
thermal conductivity
virtual Real s_from_p_T(Real pressure, Real temperature) const override
virtual Real e_from_p_T(Real pressure, Real temperature) const override
static InputParameters validParams()
virtual Real T_from_p_h(Real p, Real h) const override
static const std::string mu
virtual Real mu_from_p_T(Real pressure, Real temperature) const override
virtual Real beta_from_p_T(Real pressure, Real temperature) const override
virtual Real T_from_v_h(Real v, Real h) const
virtual Real e_from_v_h(Real v, Real h) const override
Common class for single phase fluid properties.
e e e e s T T T T T rho v v T h
virtual Real T_from_v_e(Real v, Real e) const override
registerMooseObject("FluidPropertiesApp", SimpleFluidProperties)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v
virtual Real T_from_p_rho(Real p, Real rho) const
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
static const std::string pressure
virtual Real cp_from_v_e(Real v, Real e) const override
virtual Real p_from_v_h(Real v, Real h) const
SimpleFluidProperties(const InputParameters ¶meters)
const Real _cp
specific heat at constant pressure
virtual Real k_from_p_T(Real pressure, Real temperature) const override
static const std::string k
virtual Real molarMass() const override
Fluid name.
virtual Real cv_from_p_T(Real pressure, Real temperature) const override
virtual Real p_from_v_e(Real v, Real e) const override