https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ADJouleHeatingSource.C
Go to the documentation of this file.
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
11
13
16{
18 params.addCoupledVar("elec", "Electrostatic potential for joule heating.");
19 params.addParam<MaterialPropertyName>(
20 "heating_term", "electric_field_heating", "Material property providing the Joule heating.");
21 params.addParam<MaterialPropertyName>(
22 "electrical_conductivity",
23 "electrical_conductivity",
24 "Material property providing electrical conductivity of the material.");
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 return params;
30}
31
33 : ADKernelValue(parameters),
34 _supplied_potential(isParamValid("elec")),
35
36 _grad_potential(_supplied_potential ? adCoupledGradient("elec") : _ad_grad_zero),
37 _elec_cond(_supplied_potential ? getADMaterialProperty<Real>("electrical_conductivity")
38 : getGenericZeroMaterialProperty<Real, true>()),
39
40 _heating_residual(_supplied_potential ? getGenericZeroMaterialProperty<Real, true>()
41 : getADMaterialProperty<Real>("heating_term"))
42{
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}
49
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 */
60 else
61 return -_heating_residual[_qp];
62}
registerMooseObject("HeatTransferApp", ADJouleHeatingSource)
DualNumber< Real, DNDerivativeType, true > ADReal
This kernel supplies the heat source term corresponding to Joule heating (Q).
const ADVariableGradient & _grad_potential
Gradient of the coupled potential.
const ADMaterialProperty< Real > & _heating_residual
The Joule heating residual provided as a material object.
const bool _supplied_potential
Set to true when an electrostatic potential is provided.
ADJouleHeatingSource(const InputParameters &parameters)
virtual ADReal precomputeQpResidual() override
static InputParameters validParams()
const ADMaterialProperty< Real > & _elec_cond
Electric conductivity coefficient.
static InputParameters validParams()
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
void addCoupledVar(const std::string &name, const std::string &doc_string)
unsigned int _qp
void mooseDeprecated(Args &&... args) const