11 #include "Conversion.h"
20 params.addRangeCheckedParam<Real>(
"gamma", 1.4,
"gamma > 1",
"gamma value (cp/cv)");
21 params.addParam<Real>(
"molar_mass", 29.0e-3,
"Constant molar mass of the fluid (kg/mol)");
22 params.addParam<Real>(
"mu", 18.23e-6,
"Dynamic viscosity, Pa.s");
23 params.addParam<Real>(
"k", 25.68e-3,
"Thermal conductivity, W/(m-K)");
24 params.addParam<Real>(
"T_c", 0,
"Critical temperature, K");
25 params.addParam<Real>(
"rho_c", 0,
"Critical density, kg/m3");
26 params.addParam<Real>(
"e_c", 0,
"Internal energy at the critical point, J/kg");
28 params.addClassDescription(
"Fluid properties for an ideal gas");
36 _gamma(getParam<Real>(
"gamma")),
37 _molar_mass(getParam<Real>(
"molar_mass")),
39 _R_specific(_R / _molar_mass),
40 _cp(_gamma * _R_specific / (_gamma - 1.0)),
43 _mu(getParam<Real>(
"mu")),
44 _k(getParam<Real>(
"k")),
46 _T_c(getParam<Real>(
"T_c")),
47 _rho_c(getParam<Real>(
"rho_c")),
48 _e_c(getParam<Real>(
"e_c"))
65 name() +
": Invalid value of specific volume detected (v = " + Moose::stringify(
v) +
").");
80 const DualReal & v,
const DualReal & e, DualReal & p, DualReal & dp_dv, DualReal & dp_de)
const
82 p = SinglePhaseFluidProperties::p_from_v_e(
v, e);
103 const DualReal & v,
const DualReal & e, DualReal & T, DualReal & dT_dv, DualReal & dT_de)
const
105 T = SinglePhaseFluidProperties::T_from_v_e(
v, e);
117 mooseException(
name() +
": Sound speed squared (gamma * R * T) is negative: c2 = " +
118 Moose::stringify(c2) +
".");
120 return std::sqrt(c2);
126 Real
T, dT_dv, dT_de;
132 dc_dv = dc_dT * dT_dv;
133 dc_de = dc_dT * dT_de;
177 throw MooseException(
name() +
": Negative argument in the ln() function.");
178 return _cv * std::log(n);
184 Real
T, dT_dv, dT_de;
187 Real
p, dp_dv, dp_de;
192 throw MooseException(
name() +
": Negative argument in the ln() function.");
194 s =
_cv * std::log(n);
199 const Real dn_dv = dn_dT * dT_dv + dn_dp * dp_dv;
200 const Real dn_de = dn_dT * dT_de + dn_dp * dp_de;
202 ds_dv =
_cv / n * dn_dv;
203 ds_de =
_cv / n * dn_de;
211 throw MooseException(
name() +
": Negative argument in the ln() function.");
212 return _cv * std::log(n);
220 throw MooseException(
name() +
": Negative argument in the ln() function.");
222 s =
_cv * std::log(n);
227 ds_dp =
_cv / n * dn_dp;
228 ds_dT =
_cv / n * dn_dT;
236 throw MooseException(
name() +
": Non-positive argument in the ln() function.");
237 return -(
_gamma - 1) *
_cv * std::log(aux);
249 ds_dh = -(
_gamma - 1) *
_cv / aux * daux_dh;
250 ds_dp = -(
_gamma - 1) *
_cv / aux * daux_dp;
263 Real p, Real s, Real & rho, Real & drho_dp, Real & drho_ds)
const
278 Real drho_dp_partial, drho_dT;
280 drho_dp = drho_dp_partial + drho_dT * dT_dp;
283 drho_ds = drho_dT * dT_ds;
311 DualReal & drho_dT)
const
313 rho = SinglePhaseFluidProperties::rho_from_p_T(
p,
T);
320 Real p, Real T, Real & rho, Real & drho_dp, Real & drho_dT)
const
335 Real p, Real rho, Real & e, Real & de_dp, Real & de_drho)
const
394 Real
p, dp_dT_v, dp_dv_T;
395 Real ds_dp_T, ds_dT_p;
398 ds_dT = ds_dT_p + ds_dp_T * dp_dT_v;
399 ds_dv = ds_dp_T * dp_dv_T;
568 name(),
": ", __PRETTY_FUNCTION__,
" not implemented. Use a real fluid property class!");