LCOV - code coverage report
Current view: top level - src/kernels - ADJouleHeatingSource.C (source / functions) Hit Total Coverage
Test: idaholab/moose heat_transfer: #31405 (292dce) with base fef103 Lines: 21 22 95.5 %
Date: 2025-09-04 07:53:51 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 "ADJouleHeatingSource.h"
      11             : 
      12             : registerMooseObject("HeatTransferApp", ADJouleHeatingSource);
      13             : 
      14             : InputParameters
      15         183 : ADJouleHeatingSource::validParams()
      16             : {
      17         183 :   InputParameters params = ADKernelValue::validParams();
      18         366 :   params.addCoupledVar("elec", "Electrostatic potential for joule heating.");
      19         366 :   params.addParam<MaterialPropertyName>(
      20             :       "heating_term", "electric_field_heating", "Material property providing the Joule heating.");
      21         366 :   params.addParam<MaterialPropertyName>(
      22             :       "electrical_conductivity",
      23             :       "electrical_conductivity",
      24             :       "Material property providing electrical conductivity of the material.");
      25         183 :   params.addClassDescription(
      26             :       "Calculates the heat source term corresponding to electrostatic or electromagnetic Joule "
      27             :       "heating, with Jacobian contributions calculated using the automatic "
      28             :       "differentiation system.");
      29         183 :   return params;
      30           0 : }
      31             : 
      32          99 : ADJouleHeatingSource::ADJouleHeatingSource(const InputParameters & parameters)
      33             :   : ADKernelValue(parameters),
      34          99 :     _supplied_potential(isParamValid("elec")),
      35             : 
      36          99 :     _grad_potential(_supplied_potential ? adCoupledGradient("elec") : _ad_grad_zero),
      37         198 :     _elec_cond(_supplied_potential ? getADMaterialProperty<Real>("electrical_conductivity")
      38          55 :                                    : getGenericZeroMaterialProperty<Real, true>()),
      39             : 
      40          99 :     _heating_residual(_supplied_potential ? getGenericZeroMaterialProperty<Real, true>()
      41         253 :                                           : getADMaterialProperty<Real>("heating_term"))
      42             : {
      43          99 :   if (_supplied_potential)
      44          44 :     mooseDeprecated(
      45             :         "Directly coupling an electrostatic potential will be deprecated in the near future "
      46             :         "(10/01/2025). Please use the material object 'ElectromagneticHeatingMaterial' to couple "
      47             :         "either the electrostatic or electromagnetic field for Joule heating.");
      48          99 : }
      49             : 
      50             : ADReal
      51      940800 : ADJouleHeatingSource::precomputeQpResidual()
      52             : {
      53             :   /*
      54             :    * NOTE: Coupling in the gradient of the potential will be deprecated in the
      55             :    *       near future (10/01/2025). After the deprecation, the residual contribution of this kernel
      56             :    * will be solely provided by the 'ElectromagneticHeatingMaterial' material object.
      57             :    */
      58      940800 :   if (_supplied_potential)
      59      444800 :     return -_elec_cond[_qp] * _grad_potential[_qp] * _grad_potential[_qp];
      60             :   else
      61      718400 :     return -_heating_residual[_qp];
      62             : }

Generated by: LCOV version 1.14