19 "Computes the residual and Jacobian contributions for the 'Lagrange Multiplier' "
20 "implementation of the thermal contact problem. For more information, see the "
21 "detailed description here: http://tinyurl.com/gmmhbe9");
25 "The minimum gap distance allowed. This helps with preventing the heat "
26 "flux from going to infinity as the gap approaches zero.");
27 params.
addCoupledVar(
"displacements",
"Displacement variables");
33 _k(getParam<Real>(
"k")),
34 _min_gap(getParam<Real>(
"min_gap")),
35 _disp_name(parameters.getVecMooseType(
"displacements")),
36 _n_disp(_disp_name.size()),
37 _disp_secondary(_n_disp),
38 _disp_primary(_n_disp)
40 for (
unsigned int i = 0; i <
_n_disp; ++i)
55 case Moose::MortarType::Primary:
57 case Moose::MortarType::Secondary:
59 case Moose::MortarType::Lower:
68 for (
unsigned int i = 0; i <
_n_disp; ++i)
70 ad_phys_points_primary(i).derivatives() = (*
_disp_primary[i])[
_qp].derivatives();
74 auto l = max((ad_phys_points_primary - ad_phys_points_secondary) *
_normals[
_qp],
_min_gap);
DualNumber< Real, DNDerivativeType, true > ADReal
registerMooseObject("HeatTransferApp", GapConductanceConstraint)
const ADVariableValue & _u_secondary
const ADVariableValue & _lambda
const ADVariableValue & _u_primary
static InputParameters validParams()
This Constraint implements thermal contact using a "gap conductance" model in which the flux is repre...
const std::vector< std::string > _disp_name
Displacement variables.
static InputParameters validParams()
const Real _k
Thermal conductivity of the gap medium (e.g. air).
GapConductanceConstraint(const InputParameters ¶meters)
const Real _min_gap
Minimum gap distance allowed.
std::vector< const ADVariableValue * > _disp_primary
std::vector< const ADVariableValue * > _disp_secondary
const unsigned int _n_disp
virtual ADReal computeQpResidual(Moose::MortarType mortar_type) override
Computes the residual for the LM equation, lambda = (k/l)*(T^(1) - PT^(2)).
const ADTemplateVariableValue< OutputType > & adSln() const override
const VariableTestValue & _test_secondary
const VariableTestValue & _test
const VariableTestValue & _test_primary
const MooseArray< Point > & _phys_points_secondary
const MooseArray< Point > & _phys_points_primary
std::vector< Point > _normals
virtual MooseVariable & getStandardVariable(const THREAD_ID tid, const std::string &var_name)=0