www.mooseframework.org
HeatCapacityConductionTimeDerivative.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
15 
16 InputParameters
18 {
19  InputParameters params = TimeDerivative::validParams();
20  params.addClassDescription("Time derivative term $C_p \\frac{\\partial T}{\\partial t}$ of "
21  "the heat equation with the heat capacity $C_p$ as an argument.");
22 
23  // Density may be changing with deformation, so we must integrate
24  // over current volume by setting the use_displaced_mesh flag.
25  params.set<bool>("use_displaced_mesh") = true;
26 
27  params.addParam<MaterialPropertyName>(
28  "heat_capacity", "heat_capacity", "Property name of the heat capacity material property");
29  params.addCoupledVar("args", "Vector of additional arguments of the heat capacity");
30  return params;
31 }
32 
34  const InputParameters & parameters)
35  : DerivativeMaterialInterface<JvarMapKernelInterface<TimeDerivative>>(parameters),
36  _heat_capacity(getMaterialProperty<Real>("heat_capacity")),
37  _d_heat_capacity_dT(getMaterialPropertyDerivative<Real>("heat_capacity", _var.name()))
38 {
39  // get number of coupled variables
40  unsigned int nvar = _coupled_moose_vars.size();
41 
42  // reserve space for derivatives
43  _d_heat_capacity_dargs.resize(nvar);
44 
45  // iterate over all coupled variables
46  for (unsigned int i = 0; i < nvar; ++i)
48  &getMaterialPropertyDerivative<Real>("heat_capacity", _coupled_moose_vars[i]->name());
49 }
50 
51 Real
53 {
54  return _heat_capacity[_qp] * TimeDerivative::computeQpResidual();
55 }
56 
57 Real
59 {
60  // on-diagonal Jacobian with all terms that may depend on the kernel variable
61  return _heat_capacity[_qp] * TimeDerivative::computeQpJacobian() +
62  _d_heat_capacity_dT[_qp] * _phi[_j][_qp] * TimeDerivative::computeQpResidual();
63 }
64 
65 Real
67 {
68  // get the coupled variable jvar is referring to
69  const unsigned int cvar = mapJvarToCvar(jvar);
70 
71  // off-diagonal contribution with terms that depend on coupled variables
72  return (*_d_heat_capacity_dargs[cvar])[_qp] * _phi[_j][_qp] * TimeDerivative::computeQpResidual();
73 }
HeatCapacityConductionTimeDerivative::_d_heat_capacity_dargs
std::vector< const MaterialProperty< Real > * > _d_heat_capacity_dargs
Definition: HeatCapacityConductionTimeDerivative.h:46
registerMooseObject
registerMooseObject("HeatConductionApp", HeatCapacityConductionTimeDerivative)
HeatCapacityConductionTimeDerivative::computeQpResidual
virtual Real computeQpResidual() override
Definition: HeatCapacityConductionTimeDerivative.C:52
HeatCapacityConductionTimeDerivative::HeatCapacityConductionTimeDerivative
HeatCapacityConductionTimeDerivative(const InputParameters &parameters)
Definition: HeatCapacityConductionTimeDerivative.C:33
HeatCapacityConductionTimeDerivative.h
HeatCapacityConductionTimeDerivative::validParams
static InputParameters validParams()
Definition: HeatCapacityConductionTimeDerivative.C:17
validParams
InputParameters validParams()
name
const std::string name
Definition: Setup.h:21
HeatCapacityConductionTimeDerivative
A class for defining the time derivative of the heat equation.
Definition: HeatCapacityConductionTimeDerivative.h:30
HeatCapacityConductionTimeDerivative::_d_heat_capacity_dT
const MaterialProperty< Real > & _d_heat_capacity_dT
Definition: HeatCapacityConductionTimeDerivative.h:45
HeatCapacityConductionTimeDerivative::_heat_capacity
const MaterialProperty< Real > & _heat_capacity
Heat capacity and its derivatives with respect to temperature and other coupled variables.
Definition: HeatCapacityConductionTimeDerivative.h:44
defineLegacyParams
defineLegacyParams(HeatCapacityConductionTimeDerivative)
HeatCapacityConductionTimeDerivative::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: HeatCapacityConductionTimeDerivative.C:58
HeatCapacityConductionTimeDerivative::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition: HeatCapacityConductionTimeDerivative.C:66