www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
GapConductanceConstraint< compute_stage > Class Template Reference

This Constraint implements thermal contact using a "gap conductance" model in which the flux is represented by an independent "Lagrange multiplier" like variable. More...

#include <GapConductanceConstraint.h>

Inheritance diagram for GapConductanceConstraint< compute_stage >:
[legend]

Public Member Functions

 GapConductanceConstraint (const InputParameters &parameters)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual ADReal computeQpResidual (Moose::MortarType mortar_type) override
 Computes the residual for the LM equation, lambda = (k/l)*(T^(1) - PT^(2)). More...
 

Protected Attributes

const Real _k
 Thermal conductivity of the gap medium (e.g. air). More...
 
 usingMortarConstraintMembers
 

Detailed Description

template<ComputeStage compute_stage>
class GapConductanceConstraint< compute_stage >

This Constraint implements thermal contact using a "gap conductance" model in which the flux is represented by an independent "Lagrange multiplier" like variable.

This formulation is not derived from a constrained optimization problem, so it is not a Lagrange multiplier formulation in the classic sense, but it does have the benefit of producing an improved approximation to the flux (better than simply differentiating the finite element solution) and is a systematic approach for accurately computing integrals on mismatched grids. For more information on this formulation, see the following references:

M. Gitterle, "A dual mortar formulation for finite deformation frictional contact problems including wear and thermal coupling," PhD thesis, Technische Universit"{a}t M"{u}nchen, Nov. 2012, https://mediatum.ub.tum.de/doc/1108639/1108639.pdf.

S. H"{u}eber and B. I. Wohlmuth, "Thermo-mechanical contact problems on non-matching meshes," Computer Methods in Applied Mechanics and Engineering, vol. 198, pp. 1338–1350, Mar. 2009, http://dx.doi.org/10.1016/j.cma.2008.11.022.

S.~Falletta and B.~P. Lamichhane, "Mortar finite elements for a heat transfer problem on sliding meshes," Calcolo, vol. 46, pp. 131–148, June 2009, http://dx.doi.org/10.1007/s10092-009-0001-1}.

The PDF avaialable from http://tinyurl.com/gmmhbe9 explains the formulation in more detail. In the documentation below, we use the notation from the PDF above, and refer to the "primal" and "LM" equations, where primal refers to the heat transfer equation including the gap heat flux contribution, and "LM" refers to the equation for computing the flux, i.e. the Lagrange multiplier variable. Likewise, the term "primal variable" refers to the temperature variable.

Definition at line 15 of file GapConductanceConstraint.h.

Constructor & Destructor Documentation

◆ GapConductanceConstraint()

template<ComputeStage compute_stage>
GapConductanceConstraint< compute_stage >::GapConductanceConstraint ( const InputParameters &  parameters)

Definition at line 30 of file GapConductanceConstraint.C.

32  : ADMortarConstraint<compute_stage>(parameters), _k(getParam<Real>("k"))
33 {
34 }

Member Function Documentation

◆ computeQpResidual()

template<ComputeStage compute_stage>
ADReal GapConductanceConstraint< compute_stage >::computeQpResidual ( Moose::MortarType  mortar_type)
overrideprotectedvirtual

Computes the residual for the LM equation, lambda = (k/l)*(T^(1) - PT^(2)).

Definition at line 38 of file GapConductanceConstraint.C.

39 {
40  switch (mortar_type)
41  {
42  case Moose::MortarType::Master:
43  return _lambda[_qp] * _test_master[_i][_qp];
44  case Moose::MortarType::Slave:
45  return -_lambda[_qp] * _test_slave[_i][_qp];
46  case Moose::MortarType::Lower:
47  {
48  auto l = (_phys_points_master[_qp] - _phys_points_slave[_qp]).norm();
49  return (_k * (_u_master[_qp] - _u_slave[_qp]) / l - _lambda[_qp]) * _test[_i][_qp];
50  }
51  default:
52  return 0;
53  }
54 }

◆ validParams()

template<ComputeStage compute_stage>
InputParameters GapConductanceConstraint< compute_stage >::validParams ( )
static

Definition at line 18 of file GapConductanceConstraint.C.

19 {
20  InputParameters params = ADMortarConstraint<compute_stage>::validParams();
21  params.addClassDescription(
22  "Computes the residual and Jacobian contributions for the 'Lagrange Multiplier' "
23  "implementation of the thermal contact problem. For more information, see the "
24  "detailed description here: http://tinyurl.com/gmmhbe9");
25  params.addRequiredParam<Real>("k", "Gap conductance");
26  return params;
27 }

Member Data Documentation

◆ _k

template<ComputeStage compute_stage>
const Real GapConductanceConstraint< compute_stage >::_k
protected

Thermal conductivity of the gap medium (e.g. air).

Definition at line 69 of file GapConductanceConstraint.h.

◆ usingMortarConstraintMembers

template<ComputeStage compute_stage>
GapConductanceConstraint< compute_stage >::usingMortarConstraintMembers
protected

Definition at line 71 of file GapConductanceConstraint.h.


The documentation for this class was generated from the following files:
validParams
InputParameters validParams()
GapConductanceConstraint::_k
const Real _k
Thermal conductivity of the gap medium (e.g. air).
Definition: GapConductanceConstraint.h:69