https://mooseframework.inl.gov
SaturationDensityFunction.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 
13 
14 registerMooseObject("FluidPropertiesApp", SaturationDensityFunction);
15 
18 {
20 
21  params.addRequiredParam<FunctionName>("T", "Temperature function");
22  params.addRequiredParam<UserObjectName>("fp_2phase", "2-phase fluid properties");
23  params.addRequiredParam<bool>("use_liquid", "Set true to use liquid phase; else use vapor phase");
24 
25  params.addClassDescription("Computes saturation density from temperature function");
26 
27  return params;
28 }
29 
31  : Function(parameters),
32  FunctionInterface(this),
33 
34  _T_fn(getFunction("T")),
35  _use_liquid(getParam<bool>("use_liquid"))
36 {
37 }
38 
39 void
41 {
42  _fp_2phase = &getUserObject<TwoPhaseFluidProperties>("fp_2phase");
43  _fp_liquid = &getUserObjectByName<SinglePhaseFluidProperties>(_fp_2phase->getLiquidName());
44  _fp_vapor = &getUserObjectByName<SinglePhaseFluidProperties>(_fp_2phase->getVaporName());
45 }
46 
47 Real
48 SaturationDensityFunction::value(Real t, const Point & point) const
49 {
50  const Real T = _T_fn.value(t, point);
51  const Real p = _fp_2phase->p_sat(T);
52 
53  if (_use_liquid)
54  return _fp_liquid->rho_from_p_T(p, T);
55  else
56  return _fp_vapor->rho_from_p_T(p, T);
57 }
static InputParameters validParams()
virtual const UserObjectName & getLiquidName() const
Returns the name of the liquid single-phase fluid properties object.
virtual const UserObjectName & getVaporName() const
Returns the name of the vapor single-phase fluid properties object.
const SinglePhaseFluidProperties * _fp_liquid
Single-phase liquid properties.
void addRequiredParam(const std::string &name, const std::string &doc_string)
const Function & _T_fn
Temperature function.
virtual void initialSetup() override
virtual Real p_sat(Real T) const =0
Computes the saturation pressure at a temperature.
const bool _use_liquid
Set true to use liquid phase; else vapor phase.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const TwoPhaseFluidProperties * _fp_2phase
2-phase fluid properties object
void addClassDescription(const std::string &doc_string)
virtual Real value(Real t, const Point &p) const
Computes saturation density from temperature function.
virtual Real value(Real t, const Point &p) const override
const SinglePhaseFluidProperties * _fp_vapor
Single-phase vapor properties.
static InputParameters validParams()
registerMooseObject("FluidPropertiesApp", SaturationDensityFunction)
SaturationDensityFunction(const InputParameters &parameters)