13 #include "metaphysicl/raw_type.h" 24 params.
addParam<
Real>(
"molar_mass", 29.0e-3,
"Constant molar mass of the fluid (kg/mol)");
25 params.
addParam<
Real>(
"e_ref", 0,
"Reference specific internal energy [J/kg]");
26 params.
addParam<
Real>(
"mu", 18.23e-6,
"Dynamic viscosity, Pa.s");
27 params.
addParam<
Real>(
"k", 25.68e-3,
"Thermal conductivity, W/(m-K)");
28 params.
addParam<
Real>(
"T_c", 0,
"Critical temperature, K");
29 params.
addParam<
Real>(
"rho_c", 0,
"Critical density, kg/m3");
30 params.
addParam<
Real>(
"e_c", 0,
"Internal energy at the critical point, J/kg");
41 _gamma(getParam<
Real>(
"gamma")),
42 _molar_mass(getParam<
Real>(
"molar_mass")),
43 _e_ref(getParam<
Real>(
"e_ref")),
45 _R_specific(_R / _molar_mass),
46 _cp(_gamma * _R_specific / (_gamma - 1.0)),
49 _mu(getParam<
Real>(
"mu")),
50 _k(getParam<
Real>(
"k")),
52 _T_c(getParam<
Real>(
"T_c")),
53 _rho_c(getParam<
Real>(
"rho_c")),
54 _e_c(getParam<
Real>(
"e_c"))
141 "Sound speed squared (gamma * R * T) is negative: c2 = " +
Moose::stringify(c2) +
".");
144 return std::sqrt(c2);
158 "Sound speed squared (gamma * R * T) is negative: c2 = " +
Moose::stringify(c2) +
".");
167 Real T, dT_dv, dT_de;
173 dc_dv = dc_dT * dT_dv;
174 dc_de = dc_dT * dT_de;
192 const Real ,
const Real
T, Real &
c, Real & dc_dp, Real & dc_dT)
const 213 const Real ,
const Real
T, Real & beta, Real & dbeta_dp, Real & dbeta_dT)
const 217 dbeta_dT = -1.0 / Utility::pow<2>(
T);
282 Real , Real , Real &
k, Real & dk_dv, Real & dk_de)
const 296 return getNaN(
"Negative argument in the ln() function.");
297 return _cv * std::log(n);
303 Real T, dT_dv, dT_de;
306 Real p, dp_dv, dp_de;
312 s =
getNaN(
"Negative argument in the ln() function.");
318 s =
_cv * std::log(n);
323 const Real dn_dv = dn_dT * dT_dv + dn_dp * dp_dv;
324 const Real dn_de = dn_dT * dT_de + dn_dp * dp_de;
326 ds_dv =
_cv / n * dn_dv;
327 ds_de =
_cv / n * dn_de;
336 return getNaN(
"Negative argument in the ln() function.");
337 return _cv * std::log(n);
346 s =
getNaN(
"Negative argument in the ln() function.");
352 s =
_cv * std::log(n);
357 ds_dp =
_cv / n * dn_dp;
358 ds_dT =
_cv / n * dn_dT;
367 return getNaN(
"Non-positive argument in the ln() function.");
368 return -(
_gamma - 1) *
_cv * std::log(aux);
380 ds_dh = -(
_gamma - 1) *
_cv / aux * daux_dh;
381 ds_dp = -(
_gamma - 1) *
_cv / aux * daux_dp;
394 Real
p, Real s, Real &
rho, Real & drho_dp, Real & drho_ds)
const 409 Real drho_dp_partial, drho_dT;
411 drho_dp = drho_dp_partial + drho_dT * dT_dp;
414 drho_ds = drho_dT * dT_ds;
454 Real
p, Real
T, Real &
rho, Real & drho_dp, Real & drho_dT)
const 475 Real
p, Real
rho, Real & e, Real & de_dp, Real & de_drho)
const 558 Real p, dp_dT_v, dp_dv_T;
559 Real ds_dp_T, ds_dT_p;
562 ds_dT = ds_dT_p + ds_dp_T * dp_dT_v;
563 ds_dv = ds_dp_T * dp_dv_T;
744 mooseError(__PRETTY_FUNCTION__,
" not implemented. Use a real fluid property class!");
virtual Real criticalInternalEnergy() const override
Critical specific internal energy.
e e e e s T T T T T rho T
static const std::string cv
virtual Real cv_from_p_T(Real p, Real T) const override
const Real _cv
Specific heat at constant volume.
virtual Real rho_from_p_T(Real p, Real T) const override
virtual Real criticalTemperature() const override
Critical temperature.
static InputParameters validParams()
const Real _k
Thermal conductivity.
virtual Real cv_from_v_e(Real v, Real e) const override
const Real & _gamma
Adiabatic index (ratio of specific heats cp/cv)
virtual Real criticalDensity() const override
Critical density.
virtual Real e_from_v_h(Real v, Real h) const override
virtual Real p_from_v_e(Real v, Real e) const override
virtual Real mu_from_v_e(Real v, Real e) const override
virtual Real k_from_p_T(Real pressure, Real temperature) const override
Real getNaN() const
Throws an error or returns a NaN with or without a warning, with a default message.
static const Real _R
Universal gas constant (J/mol/K)
virtual Real T_from_v_e(Real v, Real e) const override
virtual Real k_from_v_e(Real v, Real e) const override
virtual ~IdealGasFluidProperties()
virtual Real pp_sat_from_p_T(Real, Real) const override
virtual Real molarMass() const override
Molar mass [kg/mol].
virtual Real e_from_T_v(Real T, Real v) const override
DualNumber< Real, DNDerivativeType, false > ADReal
virtual Real h_from_T_v(Real T, Real v) const override
registerMooseObject("FluidPropertiesApp", IdealGasFluidProperties)
virtual Real rho_from_p_s(Real p, Real s) const override
IdealGasFluidProperties(const InputParameters ¶meters)
static const std::string cp
virtual Real s_from_T_v(Real T, Real v) const override
virtual Real e_from_p_rho(Real p, Real rho) const override
e e e e s T T T T T rho v v T e h
virtual Real s_from_h_p(Real h, Real p) const override
virtual Real p_from_T_v(Real T, Real v) const override
virtual Real gamma_from_v_e(Real v, Real e) const override
virtual Real c_from_p_T(Real p, Real T) const override
const Real & _molar_mass
molar mass
Common class for single phase fluid properties.
virtual Real T_from_p_h(Real p, Real h) const override
static InputParameters validParams()
std::string stringify(const T &t)
virtual std::string fluidName() const override
Fluid name.
virtual Real beta_from_p_T(Real p, Real T) const override
virtual Real g_from_v_e(Real v, Real e) const override
const Real _cp
Specific heat at constant pressure.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
virtual Real mu_from_p_T(Real p, Real T) const override
virtual Real e_from_p_T(Real p, Real T) const override
const Real _R_specific
Specific gas constant (R / molar mass)
virtual Real p_from_h_s(Real h, Real s) const override
void mooseError(Args &&... args) const
virtual Real cp_from_v_e(Real v, Real e) const override
virtual Real cp_from_p_T(Real p, Real T) const override
virtual Real c_from_v_e(Real v, Real e) const override
virtual Real s_from_v_e(Real v, Real e) const override
static InputParameters validParams()
virtual Real h_from_p_T(Real p, Real T) const override
virtual Real e_spndl_from_v(Real v) const override
Specific internal energy from temperature and specific volume.
virtual Real cv_from_T_v(Real T, Real v) const override
Ideal gas fluid properties Default parameters are for air at atmospheric pressure and temperature...
Interface class for producing errors, warnings, or just quiet NaNs.
virtual void v_e_spndl_from_T(Real T, Real &v, Real &e) const override
Specific internal energy from temperature and specific volume.
virtual Real gamma_from_p_T(Real p, Real T) const override
MooseUnits pow(const MooseUnits &, int)
static const std::string k
virtual Real s_from_p_T(Real p, Real T) const override
const Real _mu
Dynamic viscosity.
const Real & _e_ref
Reference specific internal energy.