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 "ADFluidProperties3EqnMaterial.h" 11 : #include "SinglePhaseFluidProperties.h" 12 : #include "Numerics.h" 13 : 14 : registerMooseObject("ThermalHydraulicsApp", ADFluidProperties3EqnMaterial); 15 : 16 : InputParameters 17 18573 : ADFluidProperties3EqnMaterial::validParams() 18 : { 19 18573 : InputParameters params = Material::validParams(); 20 : 21 37146 : params.addRequiredCoupledVar("A", "Cross-sectional area"); 22 37146 : params.addRequiredCoupledVar("rhoA", "Conserved density"); 23 37146 : params.addRequiredCoupledVar("rhouA", "Conserved momentum"); 24 37146 : params.addRequiredCoupledVar("rhoEA", "Conserved total energy"); 25 : 26 37146 : params.addRequiredParam<UserObjectName>("fp", "The name of the user object for fluid properties"); 27 18573 : params.addClassDescription( 28 : "Defines material properties from fluid properties to serve in the 3-equation model"); 29 : 30 18573 : return params; 31 0 : } 32 : 33 14544 : ADFluidProperties3EqnMaterial::ADFluidProperties3EqnMaterial(const InputParameters & parameters) 34 : : Material(parameters), 35 14544 : _area(adCoupledValue("A")), 36 14544 : _rhoA(adCoupledValue("rhoA")), 37 14544 : _rhouA(adCoupledValue("rhouA")), 38 14544 : _rhoEA(adCoupledValue("rhoEA")), 39 : 40 14544 : _rho(declareADProperty<Real>("rho")), 41 : 42 14544 : _v(declareADProperty<Real>("v")), 43 : 44 14544 : _vel(declareADProperty<Real>("vel")), 45 : 46 14544 : _e(declareADProperty<Real>("e")), 47 : 48 14544 : _p(declareADProperty<Real>("p")), 49 : 50 14544 : _T(declareADProperty<Real>("T")), 51 : 52 14544 : _h(declareADProperty<Real>("h")), 53 : 54 14544 : _H(declareADProperty<Real>("H")), 55 : 56 14544 : _c(declareADProperty<Real>("c")), 57 : 58 14544 : _cp(declareADProperty<Real>("cp")), 59 : 60 14544 : _cv(declareADProperty<Real>("cv")), 61 : 62 14544 : _k(declareADProperty<Real>("k")), 63 : 64 29088 : _fp(getUserObject<SinglePhaseFluidProperties>("fp")) 65 : { 66 14544 : } 67 : 68 : void 69 23412366 : ADFluidProperties3EqnMaterial::computeQpProperties() 70 : { 71 46824732 : _rho[_qp] = _rhoA[_qp] / _area[_qp]; 72 : 73 46824732 : _v[_qp] = 1.0 / _rho[_qp]; 74 : 75 46824732 : _vel[_qp] = _rhouA[_qp] / _rhoA[_qp]; 76 : 77 70237098 : _e[_qp] = (_rhoEA[_qp] - 0.5 * _rhouA[_qp] * _rhouA[_qp] / _rhoA[_qp]) / _rhoA[_qp]; 78 : 79 23412366 : _p[_qp] = _fp.p_from_v_e(_v[_qp], _e[_qp]); 80 : 81 23412366 : _T[_qp] = _fp.T_from_v_e(_v[_qp], _e[_qp]); 82 : 83 70237098 : _h[_qp] = _e[_qp] + _p[_qp] / _rho[_qp]; 84 : 85 70237098 : _H[_qp] = _h[_qp] + 0.5 * _vel[_qp] * _vel[_qp]; 86 : 87 23412366 : _c[_qp] = _fp.c_from_v_e(_v[_qp], _e[_qp]); 88 23412366 : _cp[_qp] = _fp.cp_from_v_e(_v[_qp], _e[_qp]); 89 23412366 : _cv[_qp] = _fp.cv_from_v_e(_v[_qp], _e[_qp]); 90 23412366 : _k[_qp] = _fp.k_from_v_e(_v[_qp], _e[_qp]); 91 23412366 : }