LCOV - code coverage report
Current view: top level - src/materials - ADFluidProperties3EqnMaterial.C (source / functions) Hit Total Coverage
Test: idaholab/moose thermal_hydraulics: #30301 (3b550b) with base 2ad78d Lines: 42 43 97.7 %
Date: 2025-07-30 13:02:48 Functions: 3 3 100.0 %
Legend: Lines: hit not hit

          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 : }

Generated by: LCOV version 1.14