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"))
146 "Sound speed squared (gamma * R * T) is negative: c2 = " +
Moose::stringify(c2) +
".");
150 return std::sqrt(c2);
162 flagInvalidSolution(
"Sound speed squared (gamma * R * T) is negative: c2 = " +
173 Real
T, dT_dv, dT_de;
182 "Sound speed squared (gamma * R * T) is negative: c2 = " +
Moose::stringify(c2) +
".");
192 dc_dv = dc_dT * dT_dv;
193 dc_de = dc_dT * dT_de;
211 const Real ,
const Real
T, Real &
c, Real & dc_dp, Real & dc_dT)
const
232 const Real ,
const Real
T, Real & beta, Real & dbeta_dp, Real & dbeta_dT)
const
236 dbeta_dT = -1.0 / Utility::pow<2>(
T);
301 Real , Real , Real & k, Real & dk_dv, Real & dk_de)
const
315 return getNaN(
"Negative argument in the ln() function.");
316 return _cv * std::log(n);
322 Real
T, dT_dv, dT_de;
325 Real
p, dp_dv, dp_de;
331 s =
getNaN(
"Negative argument in the ln() function.");
337 s =
_cv * std::log(n);
342 const Real dn_dv = dn_dT * dT_dv + dn_dp * dp_dv;
343 const Real dn_de = dn_dT * dT_de + dn_dp * dp_de;
345 ds_dv =
_cv / n * dn_dv;
346 ds_de =
_cv / n * dn_de;
355 return getNaN(
"Negative argument in the ln() function.");
356 return _cv * std::log(n);
365 s =
getNaN(
"Negative argument in the ln() function.");
371 s =
_cv * std::log(n);
376 ds_dp =
_cv / n * dn_dp;
377 ds_dT =
_cv / n * dn_dT;
386 return getNaN(
"Non-positive argument in the ln() function.");
387 return -(
_gamma - 1) *
_cv * std::log(aux);
399 ds_dh = -(
_gamma - 1) *
_cv / aux * daux_dh;
400 ds_dp = -(
_gamma - 1) *
_cv / aux * daux_dp;
406 const Real aux = (s +
_cv * std::log(std::pow(
p,
_gamma - 1.0))) /
_cv;
407 const Real
T = std::pow(std::exp(aux), 1.0 /
_gamma);
413 Real
p, Real s, Real &
rho, Real & drho_dp, Real & drho_ds)
const
416 const Real aux = (s +
_cv * std::log(std::pow(
p,
_gamma - 1.0))) /
_cv;
417 const Real
T = std::pow(std::exp(aux), 1 /
_gamma);
420 const Real dT_dp = 1.0 /
_gamma * std::pow(std::exp(aux), 1.0 /
_gamma - 1.0) * std::exp(aux) /
425 1.0 /
_gamma * std::pow(std::exp(aux), 1.0 /
_gamma - 1.0) * std::exp(aux) /
_cv;
428 Real drho_dp_partial, drho_dT;
430 drho_dp = drho_dp_partial + drho_dT * dT_dp;
433 drho_ds = drho_dT * dT_ds;
473 Real
p, Real
T, Real &
rho, Real & drho_dp, Real & drho_dT)
const
494 Real
p, Real
rho, Real & e, Real & de_dp, Real & de_drho)
const
577 Real
p, dp_dT_v, dp_dv_T;
578 Real ds_dp_T, ds_dT_p;
581 ds_dT = ds_dT_p + ds_dp_T * dp_dT_v;
582 ds_dv = ds_dp_T * dp_dv_T;
764 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 const GasTransportUtils::LennardJonesParameters * lennardJonesParameters() const override
Lennard-Jones parameters of the gas, from which a mixture computes binary diffusion coefficients,...
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)
Parameters of the Lennard-Jones (12-6) potential of a species.