20 "allow_nonphysical_states",
true,
"Allows for non-physical states, e.g., negative density.");
23 params.
addRequiredParam<Real>(
"q",
"Parameter defining zero point of internal energy");
25 params.
addParam<Real>(
"q_prime", 0,
"Parameter");
26 params.
addParam<Real>(
"mu", 1.e-3,
"Dynamic viscosity, Pa.s");
27 params.
addParam<Real>(
"k", 0.6,
"Thermal conductivity, W/(m-K)");
28 params.
addParam<Real>(
"M", 0,
"Molar mass, kg/mol");
29 params.
addParam<Real>(
"T_c", 0,
"Critical temperature, K");
30 params.
addParam<Real>(
"rho_c", 0,
"Critical density, kg/m3");
31 params.
addParam<Real>(
"e_c", 0,
"Internal energy at the critical point, J/kg");
39 _allow_nonphysical_states(getParam<bool>(
"allow_nonphysical_states")),
40 _gamma(getParam<Real>(
"gamma")),
41 _cv(getParam<Real>(
"cv")),
42 _q(getParam<Real>(
"q")),
43 _q_prime(getParam<Real>(
"q_prime")),
44 _p_inf(getParam<Real>(
"p_inf")),
45 _mu(getParam<Real>(
"mu")),
46 _k(getParam<Real>(
"k")),
47 _molar_mass(getParam<Real>(
"M")),
48 _T_c(getParam<Real>(
"T_c")),
49 _rho_c(getParam<Real>(
"rho_c")),
50 _e_c(getParam<Real>(
"e_c"))
60StiffenedGasFluidProperties::p_from_v_e(Real
v, Real e)
const
62 return p_from_v_e_template(
v, e);
66StiffenedGasFluidProperties::p_from_v_e(Real
v, Real e, Real &
p, Real & dp_dv, Real & dp_de)
const
68 p_from_v_e_template(
v, e,
p, dp_dv, dp_de);
72StiffenedGasFluidProperties::p_from_v_e(
const ADReal &
v,
const ADReal & e)
const
74 return p_from_v_e_template(
v, e);
78StiffenedGasFluidProperties::p_from_v_e(
81 p_from_v_e_template(
v, e,
p, dp_dv, dp_de);
85StiffenedGasFluidProperties::T_from_v_e(Real
v, Real e)
const
87 return T_from_v_e_template(
v, e);
91StiffenedGasFluidProperties::T_from_v_e(Real
v, Real e, Real &
T, Real & dT_dv, Real & dT_de)
const
93 T_from_v_e_template(
v, e,
T, dT_dv, dT_de);
97StiffenedGasFluidProperties::T_from_v_e(
const ADReal &
v,
const ADReal & e)
const
99 return T_from_v_e_template(
v, e);
103StiffenedGasFluidProperties::T_from_v_e(
106 T_from_v_e_template(
v, e,
p, dp_dv, dp_de);
110StiffenedGasFluidProperties::T_from_p_h(Real
p, Real h)
const
112 return T_from_p_h_template(
p,
h);
116StiffenedGasFluidProperties::T_from_p_h(Real
p, Real h, Real &
T, Real & dT_dp, Real & dT_dh)
const
118 T_from_p_h_template(
p,
h,
T, dT_dp, dT_dh);
122StiffenedGasFluidProperties::T_from_p_h(
const ADReal &
p,
const ADReal & h)
const
124 return T_from_p_h_template(
p,
h);
128StiffenedGasFluidProperties::T_from_p_h(
131 T_from_p_h_template(
p,
h,
T, dT_dp, dT_dh);
148 return std::sqrt(radicant);
158 Real
p, dp_dv, dp_de;
159 p_from_v_e(
v, e,
p, dp_dv, dp_de);
162 const Real dc_dp = 0.5 /
c *
_gamma *
v;
165 dc_dv = dc_dv_partial + dc_dp * dp_dv;
166 dc_de = dc_dp * dp_de;
179 Real
p, dp_dv, dp_de;
180 p_from_v_e(
v, e,
p, dp_dv, dp_de);
181 c = std::sqrt(radicant);
182 const Real dc_dp = 0.5 /
c *
_gamma *
v;
185 dc_dv = dc_dv_partial + dc_dp * dp_dv;
186 dc_de = dc_dp * dp_de;
199 Real
v, Real e, Real & cp, Real & dcp_dv, Real & dcp_de)
const
214 Real
v, Real e, Real & cv, Real & dcv_dv, Real & dcv_de)
const
229 Real
v, Real e, Real &
mu, Real & dmu_dv, Real & dmu_de)
const
251StiffenedGasFluidProperties::s_from_v_e(Real
v, Real e)
const
253 return s_from_v_e_template(
v, e);
257StiffenedGasFluidProperties::s_from_v_e(Real
v, Real e, Real & s, Real & ds_dv, Real & ds_de)
const
259 s_from_v_e_template(
v, e, s, ds_dv, ds_de);
263StiffenedGasFluidProperties::s_from_v_e(
const ADReal &
v,
const ADReal & e)
const
265 return s_from_v_e_template(
v, e);
269StiffenedGasFluidProperties::s_from_v_e(
272 s_from_v_e_template(
v, e, s, ds_dv, ds_de);
297 const Real daux_dh = (
p +
_p_inf) *
303 ds_dh = -(
_gamma - 1) *
_cv / aux * daux_dh;
304 ds_dp = -(
_gamma - 1) *
_cv / aux * daux_dp;
309StiffenedGasFluidProperties::s_from_p_T(Real
p, Real
T)
const
311 return s_from_p_T_template(
p,
T);
315StiffenedGasFluidProperties::s_from_p_T(Real
p, Real
T, Real & s, Real & ds_dp, Real & ds_dT)
const
317 s_from_p_T_template(
p,
T, s, ds_dp, ds_dT);
321StiffenedGasFluidProperties::s_from_p_T(
const ADReal &
p,
const ADReal &
T)
const
323 return s_from_p_T_template(
p,
T);
327StiffenedGasFluidProperties::s_from_p_T(
330 s_from_p_T_template(
p,
T, s, ds_dp, ds_dT);
337 Real
T = std::pow(std::exp(
a), 1.0 /
_gamma);
338 Real
rho = rho_from_p_T(
p,
T);
347 Real
p, Real s, Real &
rho, Real & drho_dp, Real & drho_ds)
const
351 const Real
T = std::pow(std::exp(aux), 1 /
_gamma);
354 const Real dT_dp = 1.0 /
_gamma * std::pow(std::exp(aux), 1.0 /
_gamma - 1.0) * std::exp(aux) /
360 1.0 /
_gamma * std::pow(std::exp(aux), 1.0 /
_gamma - 1.0) * std::exp(aux) /
_cv;
363 Real drho_dp_partial, drho_dT;
364 rho_from_p_T(
p,
T,
rho, drho_dp_partial, drho_dT);
365 drho_dp = drho_dp_partial + drho_dT * dT_dp;
368 drho_ds = drho_dT * dT_ds;
386StiffenedGasFluidProperties::rho_from_p_T(Real
p, Real
T)
const
388 return rho_from_p_T_template(
p,
T);
392StiffenedGasFluidProperties::rho_from_p_T(
393 Real
p, Real
T, Real &
rho, Real & drho_dp, Real & drho_dT)
const
395 rho_from_p_T_template(
p,
T,
rho, drho_dp, drho_dT);
399StiffenedGasFluidProperties::rho_from_p_T(
const ADReal &
p,
const ADReal &
T)
const
401 return rho_from_p_T_template(
p,
T);
405StiffenedGasFluidProperties::rho_from_p_T(
408 rho_from_p_T_template(
p,
T,
rho, drho_dp, drho_dT);
412StiffenedGasFluidProperties::e_from_p_rho(Real
p, Real
rho)
const
414 return e_from_p_rho_template(
p,
rho);
418StiffenedGasFluidProperties::e_from_p_rho(
419 Real
p, Real
rho, Real & e, Real & de_dp, Real & de_drho)
const
421 e_from_p_rho_template(
p,
rho, e, de_dp, de_drho);
425StiffenedGasFluidProperties::e_from_p_rho(
const ADReal &
p,
const ADReal &
rho)
const
427 return e_from_p_rho_template(
p,
rho);
431StiffenedGasFluidProperties::e_from_p_rho(
434 e_from_p_rho_template(
p,
rho, e, de_dp, de_drho);
455 return p_from_v_e(
v, e);
461 Real e, de_dT_v, de_dv_T, dp_dv_e, dp_de_v;
463 p_from_v_e(
v, e,
p, dp_dv_e, dp_de_v);
464 dp_dT = dp_de_v * de_dT_v;
465 dp_dv = dp_dv_e + dp_de_v * de_dv_T;
476 Real
T, Real , Real & h, Real & dh_dT, Real & dh_dv)
const
487 return s_from_v_e(
v, e);
493 Real e, de_dT_v, de_dv_T, ds_dv_e, ds_de_v;
495 s_from_v_e(
v, e, s, ds_dv_e, ds_de_v);
496 ds_dT = ds_de_v * de_dT_v;
497 ds_dv = ds_dv_e + ds_de_v * de_dv_T;
576 const Real
p = p_from_v_e(
v, e);
577 const Real
T = T_from_v_e(
v, e);
621 Real pressure, Real temperature, Real & cv, Real & dcv_dp, Real & dcv_dT)
const
636 Real pressure, Real temperature, Real & cp, Real & dcp_dp, Real & dcp_dT)
const
651 Real pressure, Real temperature, Real &
mu, Real & dmu_dp, Real & dmu_dT)
const
666 Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT)
const
675 return 1 / temperature;
679 Real pressure, Real temperature, Real & beta, Real & dbeta_dp, Real & dbeta_dT)
const
683 dbeta_dT = -1 / (temperature * temperature);
689 mooseError(__PRETTY_FUNCTION__,
" not implemented. Use a real fluid property class!");
DualNumber< Real, DNDerivativeType, true > ADReal
registerMooseObject("FluidPropertiesApp", StiffenedGasFluidProperties)
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
Stiffened gas fluid properties.
virtual Real p_from_T_v(Real T, Real v) const override
virtual Real mu_from_p_T(Real p, Real T) const override
virtual Real cv_from_T_v(Real T, Real v) const override
virtual Real cv_from_p_T(Real p, Real T) const override
virtual Real criticalDensity() const override
Critical density.
virtual Real k_from_v_e(Real v, Real e) const override
virtual Real mu_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_p_T(Real p, Real T) const override
virtual Real rho_from_p_s(Real p, Real s) const override
bool _allow_nonphysical_states
virtual Real c2_from_p_rho(Real pressure, Real rho) const
virtual Real e_from_v_h(Real v, Real h) const override
virtual Real cv_from_v_e(Real v, Real e) 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.
StiffenedGasFluidProperties(const InputParameters ¶meters)
virtual Real e_spndl_from_v(Real v) const override
Specific internal energy from temperature and specific volume.
virtual Real p_from_h_s(Real h, Real s) const override
virtual Real cp_from_p_T(Real p, Real T) const override
virtual Real h_from_T_v(Real T, Real v) const override
virtual Real e_from_T_v(Real T, Real v) const override
virtual ~StiffenedGasFluidProperties()
virtual Real g_from_v_e(Real v, Real e) const override
virtual Real pp_sat_from_p_T(Real, Real) const override
virtual Real beta_from_p_T(Real p, Real T) const override
virtual Real h_from_p_T(Real p, Real T) const override
virtual Real cp_from_v_e(Real v, Real e) const override
virtual Real criticalTemperature() const override
Critical temperature.
virtual Real criticalInternalEnergy() const override
Critical specific internal energy.
virtual Real molarMass() const override
Molar mass [kg/mol].
static InputParameters validParams()
virtual Real k_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_h_p(Real h, Real p) const override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real