Line data Source code
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 : 10 : #include "RhoEAFromPressureTemperatureVelocityIC.h" 11 : #include "SinglePhaseFluidProperties.h" 12 : 13 : registerMooseObject("ThermalHydraulicsApp", RhoEAFromPressureTemperatureVelocityIC); 14 : 15 : InputParameters 16 100 : RhoEAFromPressureTemperatureVelocityIC::validParams() 17 : { 18 100 : InputParameters params = InitialCondition::validParams(); 19 200 : params.addRequiredParam<UserObjectName>("fp", "The name of fluid properties object to use."); 20 200 : params.addRequiredCoupledVar("p", "The pressure"); 21 200 : params.addRequiredCoupledVar("T", "The temperature"); 22 200 : params.addRequiredCoupledVar("vel", "The velocity"); 23 200 : params.addRequiredCoupledVar("A", "Cross-sectional area"); 24 100 : params.addClassDescription( 25 : "Set the initial condition for rho*E*A from pressure, temperature and a scalar" 26 : "field velocity variable"); 27 100 : return params; 28 0 : } 29 : 30 50 : RhoEAFromPressureTemperatureVelocityIC::RhoEAFromPressureTemperatureVelocityIC( 31 50 : const InputParameters & parameters) 32 : : InitialCondition(parameters), 33 50 : _fp(getUserObject<SinglePhaseFluidProperties>("fp")), 34 50 : _p(coupledValue("p")), 35 50 : _T(coupledValue("T")), 36 50 : _vel(coupledValue("vel")), 37 100 : _area(coupledValue("A")) 38 : { 39 50 : } 40 : 41 : Real 42 110 : RhoEAFromPressureTemperatureVelocityIC::value(const Point & /*p*/) 43 : { 44 110 : const Real rho = _fp.rho_from_p_T(_p[_qp], _T[_qp]); 45 110 : const Real e = _fp.e_from_p_rho(_p[_qp], rho); 46 110 : return rho * (e + 0.5 * _vel[_qp] * _vel[_qp]) * _area[_qp]; 47 : }