LCOV - code coverage report
Current view: top level - src/kernels - PorousFlowHeatAdvection.C (source / functions) Hit Total Coverage
Test: idaholab/moose porous_flow: #31405 (292dce) with base fef103 Lines: 25 26 96.2 %
Date: 2025-09-04 07:55:56 Functions: 4 4 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 "PorousFlowHeatAdvection.h"
      11             : 
      12             : registerMooseObject("PorousFlowApp", PorousFlowHeatAdvection);
      13             : 
      14             : InputParameters
      15         678 : PorousFlowHeatAdvection::validParams()
      16             : {
      17         678 :   InputParameters params = PorousFlowDarcyBase::validParams();
      18         678 :   params.addClassDescription("Fully-upwinded heat flux, advected by the fluid");
      19         678 :   return params;
      20           0 : }
      21             : 
      22         367 : PorousFlowHeatAdvection::PorousFlowHeatAdvection(const InputParameters & parameters)
      23             :   : PorousFlowDarcyBase(parameters),
      24         367 :     _enthalpy(getMaterialProperty<std::vector<Real>>("PorousFlow_fluid_phase_enthalpy_nodal")),
      25         734 :     _denthalpy_dvar(getMaterialProperty<std::vector<std::vector<Real>>>(
      26             :         "dPorousFlow_fluid_phase_enthalpy_nodal_dvar")),
      27         367 :     _relative_permeability(
      28         367 :         getMaterialProperty<std::vector<Real>>("PorousFlow_relative_permeability_nodal")),
      29         734 :     _drelative_permeability_dvar(getMaterialProperty<std::vector<std::vector<Real>>>(
      30         367 :         "dPorousFlow_relative_permeability_nodal_dvar"))
      31             : {
      32         367 : }
      33             : 
      34             : Real
      35     1012924 : PorousFlowHeatAdvection::mobility(unsigned nodenum, unsigned phase) const
      36             : {
      37     1012924 :   return _enthalpy[nodenum][phase] * _fluid_density_node[nodenum][phase] *
      38     1012924 :          _relative_permeability[nodenum][phase] / _fluid_viscosity[nodenum][phase];
      39             : }
      40             : 
      41             : Real
      42      637385 : PorousFlowHeatAdvection::dmobility(unsigned nodenum, unsigned phase, unsigned pvar) const
      43             : {
      44      637385 :   Real dm = _denthalpy_dvar[nodenum][phase][pvar] * _fluid_density_node[nodenum][phase] *
      45      637385 :             _relative_permeability[nodenum][phase] / _fluid_viscosity[nodenum][phase];
      46      637385 :   dm += _enthalpy[nodenum][phase] * _dfluid_density_node_dvar[nodenum][phase][pvar] *
      47      637385 :         _relative_permeability[nodenum][phase] / _fluid_viscosity[nodenum][phase];
      48      637385 :   dm += _enthalpy[nodenum][phase] * _fluid_density_node[nodenum][phase] *
      49      637385 :         _drelative_permeability_dvar[nodenum][phase][pvar] / _fluid_viscosity[nodenum][phase];
      50      637385 :   dm -= _enthalpy[nodenum][phase] * _fluid_density_node[nodenum][phase] *
      51      637385 :         _relative_permeability[nodenum][phase] * _dfluid_viscosity_dvar[nodenum][phase][pvar] /
      52             :         std::pow(_fluid_viscosity[nodenum][phase], 2);
      53      637385 :   return dm;
      54             : }

Generated by: LCOV version 1.14