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

Generated by: LCOV version 1.14