www.mooseframework.org
PorousFlowHeatConduction.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 
12 #include "MooseVariable.h"
13 
15 
16 template <>
17 InputParameters
19 {
20  InputParameters params = validParams<Kernel>();
21  params.addRequiredParam<UserObjectName>(
22  "PorousFlowDictator", "The UserObject that holds the list of PorousFlow variable names");
23  params.addClassDescription("Heat conduction in the Porous Flow module");
24  return params;
25 }
26 
27 PorousFlowHeatConduction::PorousFlowHeatConduction(const InputParameters & parameters)
28  : Kernel(parameters),
29  _dictator(getUserObject<PorousFlowDictator>("PorousFlowDictator")),
30  _la(getMaterialProperty<RealTensorValue>("PorousFlow_thermal_conductivity_qp")),
31  _dla_dvar(getMaterialProperty<std::vector<RealTensorValue>>(
32  "dPorousFlow_thermal_conductivity_qp_dvar")),
33  _grad_t(getMaterialProperty<RealGradient>("PorousFlow_grad_temperature_qp")),
34  _dgrad_t_dvar(
35  getMaterialProperty<std::vector<RealGradient>>("dPorousFlow_grad_temperature_qp_dvar")),
36  _dgrad_t_dgradvar(
37  getMaterialProperty<std::vector<Real>>("dPorousFlow_grad_temperature_qp_dgradvar"))
38 {
39 }
40 
41 Real
43 {
44  return _grad_test[_i][_qp] * (_la[_qp] * _grad_t[_qp]);
45 }
46 
47 Real
49 {
50  return computeQpOffDiagJacobian(_var.number());
51 }
52 
53 Real
55 {
57  return 0.0;
58 
59  // The PorousFlow variable index corresponding to the variable number jvar
60  const unsigned int pvar = _dictator.porousFlowVariableNum(jvar);
61 
62  return _grad_test[_i][_qp] *
63  ((_dla_dvar[_qp][pvar] * _grad_t[_qp] + _la[_qp] * _dgrad_t_dvar[_qp][pvar]) *
64  _phi[_j][_qp] +
65  _la[_qp] * _dgrad_t_dgradvar[_qp][pvar] * _grad_phi[_j][_qp]);
66 }
PorousFlowHeatConduction::_grad_t
const MaterialProperty< RealGradient > & _grad_t
grad(temperature)
Definition: PorousFlowHeatConduction.h:43
PorousFlowHeatConduction::_dla_dvar
const MaterialProperty< std::vector< RealTensorValue > > & _dla_dvar
d(thermal conductivity at the quadpoints)/d(PorousFlow variable)
Definition: PorousFlowHeatConduction.h:40
PorousFlowHeatConduction::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition: PorousFlowHeatConduction.C:54
PorousFlowHeatConduction
Kernel = grad(test) * thermal_conductivity * grad(temperature)
Definition: PorousFlowHeatConduction.h:23
PorousFlowHeatConduction::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: PorousFlowHeatConduction.C:48
libMesh::RealGradient
VectorValue< Real > RealGradient
Definition: GrainForceAndTorqueInterface.h:17
registerMooseObject
registerMooseObject("PorousFlowApp", PorousFlowHeatConduction)
PorousFlowDictator::notPorousFlowVariable
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
Definition: PorousFlowDictator.C:161
PorousFlowHeatConduction::computeQpResidual
virtual Real computeQpResidual() override
Definition: PorousFlowHeatConduction.C:42
PorousFlowHeatConduction::_dgrad_t_dgradvar
const MaterialProperty< std::vector< Real > > & _dgrad_t_dgradvar
d(gradT)/d(grad PorousFlow variable)
Definition: PorousFlowHeatConduction.h:49
PorousFlowDictator::porousFlowVariableNum
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
Definition: PorousFlowDictator.C:135
PorousFlowHeatConduction::PorousFlowHeatConduction
PorousFlowHeatConduction(const InputParameters &parameters)
Definition: PorousFlowHeatConduction.C:27
PorousFlowDictator
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
Definition: PorousFlowDictator.h:71
PorousFlowHeatConduction::_la
const MaterialProperty< RealTensorValue > & _la
Thermal conductivity at the quadpoints.
Definition: PorousFlowHeatConduction.h:37
PorousFlowHeatConduction::_dictator
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Definition: PorousFlowHeatConduction.h:34
PorousFlowHeatConduction::_dgrad_t_dvar
const MaterialProperty< std::vector< RealGradient > > & _dgrad_t_dvar
d(gradT)/d(PorousFlow variable)
Definition: PorousFlowHeatConduction.h:46
PorousFlowHeatConduction.h
validParams< PorousFlowHeatConduction >
InputParameters validParams< PorousFlowHeatConduction >()
Definition: PorousFlowHeatConduction.C:18