https://mooseframework.inl.gov
StiffenedGasFluidProperties.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
11 
13 
16 {
18  params += NaNInterface::validParams();
19  params.addParam<bool>(
20  "allow_nonphysical_states", true, "Allows for non-physical states, e.g., negative density.");
21  params.addRequiredParam<Real>("gamma", "Heat capacity ratio");
22  params.addRequiredParam<Real>("cv", "Constant volume specific heat");
23  params.addRequiredParam<Real>("q", "Parameter defining zero point of internal energy");
24  params.addRequiredParam<Real>("p_inf", "Stiffness parameter");
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");
32  params.addClassDescription("Fluid properties for a stiffened gas");
33  return params;
34 }
35 
37  : SinglePhaseFluidProperties(parameters),
38  NaNInterface(this),
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"))
51 {
52  if (_cv == 0.0)
53  mooseError("cv cannot be zero.");
54  _cp = _cv * _gamma;
55 }
56 
58 
59 Real
60 StiffenedGasFluidProperties::p_from_v_e(Real v, Real e) const
61 {
62  return p_from_v_e_template(v, e);
63 }
64 
65 void
66 StiffenedGasFluidProperties::p_from_v_e(Real v, Real e, Real & p, Real & dp_dv, Real & dp_de) const
67 {
68  p_from_v_e_template(v, e, p, dp_dv, dp_de);
69 }
70 
71 ADReal
72 StiffenedGasFluidProperties::p_from_v_e(const ADReal & v, const ADReal & e) const
73 {
74  return p_from_v_e_template(v, e);
75 }
76 
77 void
78 StiffenedGasFluidProperties::p_from_v_e(
79  const ADReal & v, const ADReal & e, ADReal & p, ADReal & dp_dv, ADReal & dp_de) const
80 {
81  p_from_v_e_template(v, e, p, dp_dv, dp_de);
82 }
83 
84 Real
85 StiffenedGasFluidProperties::T_from_v_e(Real v, Real e) const
86 {
87  return T_from_v_e_template(v, e);
88 }
89 
90 void
91 StiffenedGasFluidProperties::T_from_v_e(Real v, Real e, Real & T, Real & dT_dv, Real & dT_de) const
92 {
93  T_from_v_e_template(v, e, T, dT_dv, dT_de);
94 }
95 
96 ADReal
97 StiffenedGasFluidProperties::T_from_v_e(const ADReal & v, const ADReal & e) const
98 {
99  return T_from_v_e_template(v, e);
100 }
101 
102 void
103 StiffenedGasFluidProperties::T_from_v_e(
104  const ADReal & v, const ADReal & e, ADReal & p, ADReal & dp_dv, ADReal & dp_de) const
105 {
106  T_from_v_e_template(v, e, p, dp_dv, dp_de);
107 }
108 
109 Real
110 StiffenedGasFluidProperties::T_from_p_h(Real v, Real e) const
111 {
112  return T_from_p_h_template(v, e);
113 }
114 
115 void
116 StiffenedGasFluidProperties::T_from_p_h(Real v, Real e, Real & T, Real & dT_dv, Real & dT_de) const
117 {
118  T_from_p_h_template(v, e, T, dT_dv, dT_de);
119 }
120 
121 ADReal
122 StiffenedGasFluidProperties::T_from_p_h(const ADReal & v, const ADReal & e) const
123 {
124  return T_from_p_h_template(v, e);
125 }
126 
127 void
128 StiffenedGasFluidProperties::T_from_p_h(
129  const ADReal & v, const ADReal & e, ADReal & p, ADReal & dp_dv, ADReal & dp_de) const
130 {
131  T_from_p_h_template(v, e, p, dp_dv, dp_de);
132 }
133 
134 Real
136 {
138  return std::sqrt(_gamma * (p_from_v_e(v, e) + _p_inf) * v);
139  else
140  {
141  const Real radicant = _gamma * (p_from_v_e(v, e) + _p_inf) * v;
142  if (radicant < 0.)
143  {
144  return getNaN();
145  }
146  else
147  {
148  return std::sqrt(radicant);
149  }
150  }
151 }
152 
153 void
154 StiffenedGasFluidProperties::c_from_v_e(Real v, Real e, Real & c, Real & dc_dv, Real & dc_de) const
155 {
157  {
158  Real p, dp_dv, dp_de;
159  p_from_v_e(v, e, p, dp_dv, dp_de);
160 
161  c = std::sqrt(_gamma * (p_from_v_e(v, e) + _p_inf) * v);
162  const Real dc_dp = 0.5 / c * _gamma * v;
163  const Real dc_dv_partial = 0.5 / c * _gamma * (p + _p_inf);
164 
165  dc_dv = dc_dv_partial + dc_dp * dp_dv;
166  dc_de = dc_dp * dp_de;
167  }
168  else
169  {
170  const Real radicant = _gamma * (p_from_v_e(v, e) + _p_inf) * v;
171  if (radicant < 0.)
172  {
173  c = getNaN();
174  dc_dv = getNaN();
175  dc_de = getNaN();
176  }
177  else
178  {
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;
183  const Real dc_dv_partial = 0.5 / c * _gamma * (p + _p_inf);
184 
185  dc_dv = dc_dv_partial + dc_dp * dp_dv;
186  dc_de = dc_dp * dp_de;
187  }
188  }
189 }
190 
191 Real StiffenedGasFluidProperties::cp_from_v_e(Real, Real) const { return _cp; }
192 
193 void
195  Real v, Real e, Real & cp, Real & dcp_dv, Real & dcp_de) const
196 {
197  cp = cp_from_v_e(v, e);
198  dcp_dv = 0.0;
199  dcp_de = 0.0;
200 }
201 
202 Real StiffenedGasFluidProperties::cv_from_v_e(Real, Real) const { return _cv; }
203 
204 void
206  Real v, Real e, Real & cv, Real & dcv_dv, Real & dcv_de) const
207 {
208  cv = cv_from_v_e(v, e);
209  dcv_dv = 0.0;
210  dcv_de = 0.0;
211 }
212 
213 Real StiffenedGasFluidProperties::mu_from_v_e(Real, Real) const { return _mu; }
214 
215 void
217  Real v, Real e, Real & mu, Real & dmu_dv, Real & dmu_de) const
218 {
219  mu = this->mu_from_v_e(v, e);
220  dmu_dv = 0.0;
221  dmu_de = 0.0;
222 }
223 
224 Real StiffenedGasFluidProperties::k_from_v_e(Real, Real) const { return _k; }
225 
226 void
227 StiffenedGasFluidProperties::k_from_v_e(Real v, Real e, Real & k, Real & dk_dv, Real & dk_de) const
228 {
229  k = k_from_v_e(v, e);
230  dk_dv = 0.0;
231  dk_de = 0.0;
232 }
233 
234 Real
235 StiffenedGasFluidProperties::s_from_v_e(Real v, Real e) const
236 {
237  return s_from_v_e_template(v, e);
238 }
239 
240 void
241 StiffenedGasFluidProperties::s_from_v_e(Real v, Real e, Real & s, Real & ds_dv, Real & ds_de) const
242 {
243  s_from_v_e_template(v, e, s, ds_dv, ds_de);
244 }
245 
246 ADReal
247 StiffenedGasFluidProperties::s_from_v_e(const ADReal & v, const ADReal & e) const
248 {
249  return s_from_v_e_template(v, e);
250 }
251 
252 void
253 StiffenedGasFluidProperties::s_from_v_e(
254  const ADReal & v, const ADReal & e, ADReal & s, ADReal & ds_dv, ADReal & ds_de) const
255 {
256  s_from_v_e_template(v, e, s, ds_dv, ds_de);
257 }
258 
259 Real
261 {
262  const Real aux = (p + _p_inf) * std::pow((h - _q) / (_gamma * _cv), -_gamma / (_gamma - 1));
263  if (aux <= 0.0)
264  return getNaN();
265  else
266  return _q_prime - (_gamma - 1) * _cv * std::log(aux);
267 }
268 
269 void
270 StiffenedGasFluidProperties::s_from_h_p(Real h, Real p, Real & s, Real & ds_dh, Real & ds_dp) const
271 {
272  const Real aux = (p + _p_inf) * std::pow((h - _q) / (_gamma * _cv), -_gamma / (_gamma - 1));
273  if (aux <= 0.0)
274  {
275  s = getNaN();
276  ds_dh = getNaN();
277  ds_dp = getNaN();
278  }
279  else
280  {
281  const Real daux_dh = (p + _p_inf) *
282  std::pow((h - _q) / (_gamma * _cv), -_gamma / (_gamma - 1) - 1) *
283  (-_gamma / (_gamma - 1)) / (_gamma * _cv);
284  const Real daux_dp = std::pow((h - _q) / (_gamma * _cv), -_gamma / (_gamma - 1));
285 
286  s = _q_prime - (_gamma - 1) * _cv * std::log(aux);
287  ds_dh = -(_gamma - 1) * _cv / aux * daux_dh;
288  ds_dp = -(_gamma - 1) * _cv / aux * daux_dp;
289  }
290 }
291 
292 Real
293 StiffenedGasFluidProperties::s_from_p_T(Real p, Real T) const
294 {
295  return s_from_p_T_template(p, T);
296 }
297 
298 void
299 StiffenedGasFluidProperties::s_from_p_T(Real p, Real T, Real & s, Real & ds_dp, Real & ds_dT) const
300 {
301  s_from_p_T_template(p, T, s, ds_dp, ds_dT);
302 }
303 
304 ADReal
305 StiffenedGasFluidProperties::s_from_p_T(const ADReal & p, const ADReal & T) const
306 {
307  return s_from_p_T_template(p, T);
308 }
309 
310 void
311 StiffenedGasFluidProperties::s_from_p_T(
312  const ADReal & p, const ADReal & T, ADReal & s, ADReal & ds_dp, ADReal & ds_dT) const
313 {
314  s_from_p_T_template(p, T, s, ds_dp, ds_dT);
315 }
316 
317 Real
319 {
320  Real a = (s - _q_prime + _cv * std::log(std::pow(p + _p_inf, _gamma - 1.0))) / _cv;
321  Real T = std::pow(std::exp(a), 1.0 / _gamma);
322  Real rho = rho_from_p_T(p, T);
323  if (!_allow_nonphysical_states && rho <= 0.)
324  return getNaN();
325  else
326  return rho;
327 }
328 
329 void
331  Real p, Real s, Real & rho, Real & drho_dp, Real & drho_ds) const
332 {
333  // T(p,s)
334  const Real aux = (s - _q_prime + _cv * std::log(std::pow(p + _p_inf, _gamma - 1.0))) / _cv;
335  const Real T = std::pow(std::exp(aux), 1 / _gamma);
336 
337  // dT/dp
338  const Real dT_dp = 1.0 / _gamma * std::pow(std::exp(aux), 1.0 / _gamma - 1.0) * std::exp(aux) /
339  std::pow(p + _p_inf, _gamma - 1.0) * (_gamma - 1.0) *
340  std::pow(p + _p_inf, _gamma - 2.0);
341 
342  // dT/ds
343  const Real dT_ds =
344  1.0 / _gamma * std::pow(std::exp(aux), 1.0 / _gamma - 1.0) * std::exp(aux) / _cv;
345 
346  // Drho/Dp = d/dp[rho(p, T(p,s))] = drho/dp + drho/dT * dT/dp
347  Real drho_dp_partial, drho_dT;
348  rho_from_p_T(p, T, rho, drho_dp_partial, drho_dT);
349  drho_dp = drho_dp_partial + drho_dT * dT_dp;
350 
351  // Drho/Ds = d/ds[rho(p, T(p,s))] = drho/dT * dT/ds
352  drho_ds = drho_dT * dT_ds;
353 }
354 
355 Real
357 {
358  return (h + (_gamma - 1.0) * _q + _gamma * _p_inf * v) / _gamma;
359 }
360 
361 void
362 StiffenedGasFluidProperties::e_from_v_h(Real v, Real h, Real & e, Real & de_dv, Real & de_dh) const
363 {
364  e = (h + (_gamma - 1.0) * _q + _gamma * _p_inf * v) / _gamma;
365  de_dv = _p_inf;
366  de_dh = 1.0 / _gamma;
367 }
368 
369 Real
370 StiffenedGasFluidProperties::rho_from_p_T(Real p, Real T) const
371 {
372  return rho_from_p_T_template(p, T);
373 }
374 
375 void
376 StiffenedGasFluidProperties::rho_from_p_T(
377  Real p, Real T, Real & rho, Real & drho_dp, Real & drho_dT) const
378 {
379  rho_from_p_T_template(p, T, rho, drho_dp, drho_dT);
380 }
381 
382 ADReal
383 StiffenedGasFluidProperties::rho_from_p_T(const ADReal & p, const ADReal & T) const
384 {
385  return rho_from_p_T_template(p, T);
386 }
387 
388 void
389 StiffenedGasFluidProperties::rho_from_p_T(
390  const ADReal & p, const ADReal & T, ADReal & rho, ADReal & drho_dp, ADReal & drho_dT) const
391 {
392  rho_from_p_T_template(p, T, rho, drho_dp, drho_dT);
393 }
394 
395 Real
396 StiffenedGasFluidProperties::e_from_p_rho(Real p, Real rho) const
397 {
398  return e_from_p_rho_template(p, rho);
399 }
400 
401 void
402 StiffenedGasFluidProperties::e_from_p_rho(
403  Real p, Real rho, Real & e, Real & de_dp, Real & de_drho) const
404 {
405  e_from_p_rho_template(p, rho, e, de_dp, de_drho);
406 }
407 
408 ADReal
409 StiffenedGasFluidProperties::e_from_p_rho(const ADReal & p, const ADReal & rho) const
410 {
411  return e_from_p_rho_template(p, rho);
412 }
413 
414 void
415 StiffenedGasFluidProperties::e_from_p_rho(
416  const ADReal & p, const ADReal & rho, ADReal & e, ADReal & de_dp, ADReal & de_drho) const
417 {
418  e_from_p_rho_template(p, rho, e, de_dp, de_drho);
419 }
420 
421 Real
423 {
424  return _cv * T + _q + _p_inf * v;
425 }
426 
427 void
428 StiffenedGasFluidProperties::e_from_T_v(Real T, Real v, Real & e, Real & de_dT, Real & de_dv) const
429 {
430  e = _cv * T + _q + _p_inf * v;
431  de_dT = _cv;
432  de_dv = _p_inf;
433 }
434 
435 Real
437 {
438  Real e = e_from_T_v(T, v);
439  return p_from_v_e(v, e);
440 }
441 
442 void
443 StiffenedGasFluidProperties::p_from_T_v(Real T, Real v, Real & p, Real & dp_dT, Real & dp_dv) const
444 {
445  Real e, de_dT_v, de_dv_T, dp_dv_e, dp_de_v;
446  e_from_T_v(T, v, e, de_dT_v, de_dv_T);
447  p_from_v_e(v, e, p, dp_dv_e, dp_de_v);
448  dp_dT = dp_de_v * de_dT_v;
449  dp_dv = dp_dv_e + dp_de_v * de_dv_T;
450 }
451 
452 Real
454 {
455  return _gamma * _cv * T + _q;
456 }
457 
458 void
460  Real T, Real /*v*/, Real & h, Real & dh_dT, Real & dh_dv) const
461 {
462  h = _gamma * _cv * T + _q;
463  dh_dT = _gamma * _cv;
464  dh_dv = 0.0;
465 }
466 
467 Real
469 {
470  Real e = e_from_T_v(T, v);
471  return s_from_v_e(v, e);
472 }
473 
474 void
475 StiffenedGasFluidProperties::s_from_T_v(Real T, Real v, Real & s, Real & ds_dT, Real & ds_dv) const
476 {
477  Real e, de_dT_v, de_dv_T, ds_dv_e, ds_de_v;
478  e_from_T_v(T, v, e, de_dT_v, de_dv_T);
479  s_from_v_e(v, e, s, ds_dv_e, ds_de_v);
480  ds_dT = ds_de_v * de_dT_v;
481  ds_dv = ds_dv_e + ds_de_v * de_dv_T;
482 }
483 
484 Real StiffenedGasFluidProperties::cv_from_T_v(Real /*T*/, Real /*v*/) const { return _cv; }
485 
487 
488 void
489 StiffenedGasFluidProperties::v_e_spndl_from_T(Real /*T*/, Real & v, Real & e) const
490 {
491  v = 1. / _rho_c;
492  e = _e_c;
493 }
494 
495 Real
497 {
498  return _gamma * _cv * T + _q;
499 }
500 
501 void
502 StiffenedGasFluidProperties::h_from_p_T(Real p, Real T, Real & h, Real & dh_dp, Real & dh_dT) const
503 {
504  h = h_from_p_T(p, T);
505  dh_dp = 0.0;
506  dh_dT = _gamma * _cv;
507 }
508 
509 Real
511 {
512  return (p + _gamma * _p_inf) / (p + _p_inf) * _cv * T + _q;
513 }
514 
515 void
516 StiffenedGasFluidProperties::e_from_p_T(Real p, Real T, Real & e, Real & de_dp, Real & de_dT) const
517 {
518  e = e_from_p_T(p, T);
519  de_dp = (1. - _gamma) * _p_inf / (p + _p_inf) / (p + _p_inf) * _cv * T;
520  de_dT = (p + _gamma * _p_inf) / (p + _p_inf) * _cv;
521 }
522 
523 Real
525 {
526  return std::pow((h - _q) / (_gamma * _cv), _gamma / (_gamma - 1.0)) *
527  std::exp((_q_prime - s) / ((_gamma - 1.0) * _cv)) -
528  _p_inf;
529 }
530 
531 void
532 StiffenedGasFluidProperties::p_from_h_s(Real h, Real s, Real & p, Real & dp_dh, Real & dp_ds) const
533 {
534  p = p_from_h_s(h, s);
535  dp_dh = _gamma / (_gamma - 1.0) / (_gamma * _cv) *
536  std::pow((h - _q) / (_gamma * _cv), 1.0 / (_gamma - 1.0)) *
537  std::exp((_q_prime - s) / ((_gamma - 1.0) * _cv));
538  dp_ds = std::pow((h - _q) / (_gamma * _cv), _gamma / (_gamma - 1)) *
539  std::exp((_q_prime - s) / ((_gamma - 1) * _cv)) / ((1 - _gamma) * _cv);
540 }
541 
542 Real
544 {
545  // g(p,T) for SGEOS is given by Equation (37) in the following reference:
546  //
547  // Ray A. Berry, Richard Saurel, Olivier LeMetayer
548  // The discrete equation method (DEM) for fully compressible, two-phase flows in
549  // ducts of spatially varying cross-section
550  // Nuclear Engineering and Design 240 (2010) p. 3797-3818
551  //
552  const Real p = p_from_v_e(v, e);
553  const Real T = T_from_v_e(v, e);
554 
555  return (_gamma * _cv - _q_prime) * T -
556  _cv * T * std::log(std::pow(T, _gamma) / std::pow(p + _p_inf, _gamma - 1.0)) + _q;
557 }
558 
559 Real
561 {
562  return _gamma * (pressure + _p_inf) / rho;
563 }
564 
565 Real
567 {
568  return _molar_mass;
569 }
570 
571 Real
573 {
574  return _T_c;
575 }
576 
577 Real
579 {
580  return _rho_c;
581 }
582 
583 Real
585 {
586  return _e_c;
587 }
588 
589 Real StiffenedGasFluidProperties::cv_from_p_T(Real /* pressure */, Real /* temperature */) const
590 {
591  return _cv;
592 }
593 
594 void
596  Real pressure, Real temperature, Real & cv, Real & dcv_dp, Real & dcv_dT) const
597 {
599  dcv_dp = 0.0;
600  dcv_dT = 0.0;
601 }
602 
603 Real StiffenedGasFluidProperties::cp_from_p_T(Real /* pressure */, Real /* temperature */) const
604 {
605  return _cp;
606 }
607 
608 void
610  Real pressure, Real temperature, Real & cp, Real & dcp_dp, Real & dcp_dT) const
611 {
613  dcp_dp = 0.0;
614  dcp_dT = 0.0;
615 }
616 
617 Real StiffenedGasFluidProperties::mu_from_p_T(Real /* pressure */, Real /* temperature */) const
618 {
619  return _mu;
620 }
621 
622 void
624  Real pressure, Real temperature, Real & mu, Real & dmu_dp, Real & dmu_dT) const
625 {
626  mu = this->mu_from_p_T(pressure, temperature);
627  dmu_dp = 0.0;
628  dmu_dT = 0.0;
629 }
630 
631 Real StiffenedGasFluidProperties::k_from_p_T(Real /* pressure */, Real /* temperature */) const
632 {
633  return _k;
634 }
635 
636 void
638  Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const
639 {
640  k = this->k_from_p_T(pressure, temperature);
641  dk_dp = 0.0;
642  dk_dT = 0.0;
643 }
644 Real
646 {
647  return 1 / temperature;
648 }
649 void
651  Real pressure, Real temperature, Real & beta, Real & dbeta_dp, Real & dbeta_dT) const
652 {
653  beta = this->beta_from_p_T(pressure, temperature);
654  dbeta_dp = 0.0;
655  dbeta_dT = -1 / (temperature * temperature);
656 }
657 
659 {
660  mooseError(__PRETTY_FUNCTION__, " not implemented. Use a real fluid property class!");
661 }
virtual Real s_from_T_v(Real T, Real v) const override
virtual Real e_from_T_v(Real T, Real v) const override
static const std::string cv
Definition: NS.h:122
virtual Real criticalTemperature() const override
Critical temperature.
virtual Real rho_from_p_s(Real p, Real s) const override
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
virtual Real mu_from_p_T(Real p, Real T) const override
static InputParameters validParams()
static InputParameters validParams()
virtual Real g_from_v_e(Real v, Real e) const override
virtual Real s_from_h_p(Real h, Real p) const override
registerMooseObject("FluidPropertiesApp", StiffenedGasFluidProperties)
virtual Real beta_from_p_T(Real p, Real T) 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 criticalInternalEnergy() const override
Critical specific internal energy.
Real getNaN() const
Throws an error or returns a NaN with or without a warning, with a default message.
Definition: NaNInterface.h:46
virtual Real cv_from_p_T(Real p, Real T) const override
virtual Real k_from_v_e(Real v, Real e) const override
static const std::string temperature
Definition: NS.h:59
virtual Real p_from_h_s(Real h, Real s) const override
DualNumber< Real, DNDerivativeType, true > ADReal
void addRequiredParam(const std::string &name, const std::string &doc_string)
virtual Real k_from_p_T(Real p, Real T) const override
virtual Real e_from_v_h(Real v, Real h) const override
static const std::string cp
Definition: NS.h:121
e e e e s T T T T T rho v v T e h
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 h_from_p_T(Real p, Real T) const override
virtual Real cv_from_T_v(Real T, Real v) const override
static const std::string mu
Definition: NS.h:123
virtual Real e_from_p_T(Real p, Real T) const override
virtual Real criticalDensity() const override
Critical density.
Common class for single phase fluid properties.
virtual Real c2_from_p_rho(Real pressure, Real rho) const
virtual Real c_from_v_e(Real v, Real e) const override
Stiffened gas fluid properties.
virtual Real h_from_T_v(Real T, Real v) const override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v
Definition: NS.h:84
static const std::string pressure
Definition: NS.h:56
virtual Real pp_sat_from_p_T(Real, Real) const override
StiffenedGasFluidProperties(const InputParameters &parameters)
void mooseError(Args &&... args) const
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()
Definition: NaNInterface.C:15
virtual Real cv_from_v_e(Real v, Real e) const override
virtual Real mu_from_v_e(Real v, Real e) const override
virtual Real e_spndl_from_v(Real v) const override
Specific internal energy from temperature and specific volume.
Interface class for producing errors, warnings, or just quiet NaNs.
Definition: NaNInterface.h:22
virtual Real molarMass() const override
Molar mass [kg/mol].
MooseUnits pow(const MooseUnits &, int)
static const std::string k
Definition: NS.h:130
virtual Real p_from_T_v(Real T, Real v) const override