LCOV - code coverage report
Current view: top level - src/materials - ConservedVarValuesMaterial.C (source / functions) Hit Total Coverage
Test: idaholab/moose navier_stokes: #32971 (54bef8) with base c6cf66 Lines: 57 58 98.3 %
Date: 2026-05-29 20:37:52 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             : // Navier-Stokes includes
      11             : #include "ConservedVarValuesMaterial.h"
      12             : #include "NS.h"
      13             : #include "NavierStokesMethods.h"
      14             : 
      15             : // FluidProperties includes
      16             : #include "SinglePhaseFluidProperties.h"
      17             : 
      18             : registerMooseObject("NavierStokesApp", ConservedVarValuesMaterial);
      19             : 
      20             : InputParameters
      21         516 : ConservedVarValuesMaterial::validParams()
      22             : {
      23         516 :   auto params = Material::validParams();
      24         516 :   params.addRequiredParam<UserObjectName>(NS::fluid, "fluid userobject");
      25         516 :   params.addRequiredCoupledVar(NS::density, "density");
      26         516 :   params.addRequiredCoupledVar(NS::total_energy_density, "total fluid energy");
      27         516 :   params.addRequiredCoupledVar(NS::momentum_x, "The x-momentum");
      28         516 :   params.addCoupledVar(NS::momentum_y, "The y-momentum");
      29         516 :   params.addCoupledVar(NS::momentum_z, "The z-momentum");
      30         516 :   params.addClassDescription("Provides access to variables for a conserved variable set "
      31             :                              "of density, total fluid energy, and momentum");
      32         516 :   return params;
      33           0 : }
      34             : 
      35         396 : ConservedVarValuesMaterial::ConservedVarValuesMaterial(const InputParameters & params)
      36             :   : Material(params),
      37         792 :     _fluid(UserObjectInterface::getUserObject<SinglePhaseFluidProperties>(NS::fluid)),
      38         396 :     _var_rho(adCoupledValue(NS::density)),
      39         396 :     _var_rho_u(adCoupledValue(NS::momentum_x)),
      40         396 :     _var_rho_v(isCoupled(NS::momentum_y) ? adCoupledValue(NS::momentum_y) : _ad_zero),
      41         396 :     _var_rho_w(isCoupled(NS::momentum_z) ? adCoupledValue(NS::momentum_z) : _ad_zero),
      42         396 :     _var_total_energy_density(adCoupledValue(NS::total_energy_density)),
      43         396 :     _rho(declareADProperty<Real>(NS::density)),
      44         396 :     _mass_flux(declareADProperty<RealVectorValue>(NS::mass_flux)),
      45         396 :     _momentum(declareADProperty<RealVectorValue>(NS::momentum)),
      46         396 :     _total_energy_density(declareADProperty<Real>(NS::total_energy_density)),
      47         396 :     _velocity(declareADProperty<RealVectorValue>(NS::velocity)),
      48         396 :     _speed(declareADProperty<Real>(NS::speed)),
      49         396 :     _vel_x(declareADProperty<Real>(NS::velocity_x)),
      50         396 :     _vel_y(declareADProperty<Real>(NS::velocity_y)),
      51         396 :     _vel_z(declareADProperty<Real>(NS::velocity_z)),
      52         396 :     _rhou(declareADProperty<Real>(NS::momentum_x)),
      53         396 :     _rhov(declareADProperty<Real>(NS::momentum_y)),
      54         396 :     _rhow(declareADProperty<Real>(NS::momentum_z)),
      55         396 :     _v(declareADProperty<Real>(NS::v)),
      56         396 :     _specific_internal_energy(declareADProperty<Real>(NS::specific_internal_energy)),
      57         396 :     _pressure(declareADProperty<Real>(NS::pressure)),
      58         396 :     _specific_total_enthalpy(declareADProperty<Real>(NS::specific_total_enthalpy)),
      59         396 :     _rho_ht(declareADProperty<Real>(NS::total_enthalpy_density)),
      60         792 :     _T_fluid(declareADProperty<Real>(NS::T_fluid))
      61             : {
      62         396 : }
      63             : 
      64             : void
      65     1699901 : ConservedVarValuesMaterial::computeQpProperties()
      66             : {
      67     1699901 :   _rho[_qp] = _var_rho[_qp];
      68     1699901 :   _mass_flux[_qp] = {_var_rho_u[_qp], _var_rho_v[_qp], _var_rho_w[_qp]};
      69     1699901 :   _momentum[_qp] = _mass_flux[_qp];
      70     1699901 :   _total_energy_density[_qp] = _var_total_energy_density[_qp];
      71             : 
      72     3399802 :   _velocity[_qp] = _mass_flux[_qp] / _rho[_qp];
      73     1699901 :   _speed[_qp] = NS::computeSpeed<ADReal>(_velocity[_qp]);
      74     1699901 :   _vel_x[_qp] = _velocity[_qp](0);
      75     1699901 :   _vel_y[_qp] = _velocity[_qp](1);
      76     1699901 :   _vel_z[_qp] = _velocity[_qp](2);
      77     3399802 :   _rhou[_qp] = _vel_x[_qp] * _rho[_qp];
      78     3399802 :   _rhov[_qp] = _vel_y[_qp] * _rho[_qp];
      79     3399802 :   _rhow[_qp] = _vel_z[_qp] * _rho[_qp];
      80             : 
      81     3399802 :   _v[_qp] = 1 / _rho[_qp];
      82             : 
      83     1699901 :   _specific_internal_energy[_qp] =
      84     5099703 :       _total_energy_density[_qp] / _rho[_qp] - (_velocity[_qp] * _velocity[_qp]) / 2;
      85             : 
      86     1699901 :   _pressure[_qp] = _fluid.p_from_v_e(_v[_qp], _specific_internal_energy[_qp]);
      87             : 
      88     3399802 :   _specific_total_enthalpy[_qp] = (_total_energy_density[_qp] + _pressure[_qp]) / _rho[_qp];
      89     3399802 :   _rho_ht[_qp] = _specific_total_enthalpy[_qp] * _rho[_qp];
      90     1699901 :   _T_fluid[_qp] = _fluid.T_from_v_e(_v[_qp], _specific_internal_energy[_qp]);
      91     1699901 : }

Generated by: LCOV version 1.14