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;
387 const Real aux = (s +
_cv * std::log(std::pow(
p,
_gamma - 1.0))) /
_cv;
388 const Real
T = std::pow(std::exp(aux), 1.0 /
_gamma);
394 Real
p, Real s, Real &
rho, Real & drho_dp, Real & drho_ds)
const
397 const Real aux = (s +
_cv * std::log(std::pow(
p,
_gamma - 1.0))) /
_cv;
398 const Real
T = std::pow(std::exp(aux), 1 /
_gamma);
401 const Real dT_dp = 1.0 /
_gamma * std::pow(std::exp(aux), 1.0 /
_gamma - 1.0) * std::exp(aux) /
406 1.0 /
_gamma * std::pow(std::exp(aux), 1.0 /
_gamma - 1.0) * std::exp(aux) /
_cv;
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!");
DualNumber< Real, DNDerivativeType, true > ADReal
registerMooseObject("FluidPropertiesApp", IdealGasFluidProperties)
static const Real _R
Universal gas constant (J/mol/K)
Ideal gas fluid properties Default parameters are for air at atmospheric pressure and temperature.
virtual Real T_from_p_h(Real p, Real h) const override
virtual std::string fluidName() const override
Fluid name.
virtual Real mu_from_v_e(Real v, Real e) const override
const Real _R_specific
Specific gas constant (R / molar mass)
virtual Real k_from_v_e(Real v, Real e) const override
const Real & _molar_mass
molar mass
virtual Real p_from_v_e(Real v, Real e) const override
const Real & _gamma
Adiabatic index (ratio of specific heats cp/cv)
virtual Real c_from_v_e(Real v, Real e) const override
virtual Real s_from_T_v(Real T, Real v) const override
virtual Real e_from_v_h(Real v, Real h) const override
virtual Real T_from_v_e(Real v, Real e) const override
virtual Real cv_from_p_T(Real p, Real T) const override
virtual Real e_from_p_rho(Real p, Real rho) const override
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 h_from_T_v(Real T, Real v) const override
virtual Real rho_from_p_T(Real p, Real T) const override
virtual Real criticalInternalEnergy() const override
Critical specific internal energy.
virtual Real s_from_h_p(Real h, Real p) const override
virtual Real e_spndl_from_v(Real v) const override
Specific internal energy from temperature and specific volume.
virtual Real e_from_T_v(Real T, Real v) const override
const Real _cv
Specific heat at constant volume.
virtual Real cp_from_p_T(Real p, Real T) const override
static InputParameters validParams()
virtual Real c_from_p_T(Real p, Real T) const override
virtual ~IdealGasFluidProperties()
virtual Real cv_from_T_v(Real T, Real v) const override
virtual Real criticalDensity() const override
Critical density.
virtual Real mu_from_p_T(Real p, Real T) const override
const Real & _e_ref
Reference specific internal energy.
virtual Real s_from_p_T(Real p, Real T) const override
virtual Real s_from_v_e(Real v, Real e) const override
virtual Real molarMass() const override
Molar mass [kg/mol].
virtual Real p_from_h_s(Real h, Real s) const override
virtual Real gamma_from_v_e(Real v, Real e) const override
const Real _mu
Dynamic viscosity.
virtual Real p_from_T_v(Real T, Real v) const override
const Real _cp
Specific heat at constant pressure.
virtual Real e_from_p_T(Real p, Real T) const override
virtual Real criticalTemperature() const override
Critical temperature.
virtual Real gamma_from_p_T(Real p, Real T) const override
virtual Real h_from_p_T(Real p, Real T) const override
IdealGasFluidProperties(const InputParameters ¶meters)
virtual Real beta_from_p_T(Real p, Real T) const override
virtual Real cp_from_v_e(Real v, Real e) const override
virtual Real pp_sat_from_p_T(Real, Real) const override
virtual Real g_from_v_e(Real v, Real e) const override
virtual Real k_from_p_T(Real pressure, Real temperature) const override
const Real _k
Thermal conductivity.
virtual Real rho_from_p_s(Real p, Real s) const override
virtual Real cv_from_v_e(Real v, Real e) const override
void mooseError(Args &&... args) const
Interface class for producing errors, warnings, or just quiet NaNs.
Real getNaN() const
Throws an error or returns a NaN with or without a warning, with a default message.
static InputParameters validParams()
Common class for single phase fluid properties.
static InputParameters validParams()
e e e e s T T T T T rho T
e e e e s T T T T T rho v v T e h
std::string stringify(const T &t)