GapConductanceConstraint Class 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:
[legend]

Public Member Functions

GapConductanceConstraint (const InputParameters &parameters)

virtual ~GapConductanceConstraint ()

Protected Member Functions

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

virtual Real computeQpResidualSide (Moose::ConstraintType res_type)
Computes the "lambda * (v^(1) - Pv^(2))" residual term in the primal equation. More...

virtual Real computeQpJacobian ()
Computes the Jacobian of the LM equation wrt lambda, i.e. More...

virtual Real computeQpJacobianSide (Moose::ConstraintJacobianType jac_type)
Handles Jacobian contributions for both the LM equation and the primal equation. More...

Protected Attributes

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

Detailed Description

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 55 of file GapConductanceConstraint.h.

◆ GapConductanceConstraint()

 GapConductanceConstraint::GapConductanceConstraint ( const InputParameters & parameters )

Definition at line 28 of file GapConductanceConstraint.C.

29  : MortarConstraint(parameters), _k(getParam<Real>("k"))
30 {
31 }
Real _k
Thermal conductivity of the gap medium (e.g. air).

◆ ~GapConductanceConstraint()

 GapConductanceConstraint::~GapConductanceConstraint ( )
virtual

Definition at line 33 of file GapConductanceConstraint.C.

33 {}

◆ computeQpJacobian()

 Real GapConductanceConstraint::computeQpJacobian ( )
protectedvirtual

Computes the Jacobian of the LM equation wrt lambda, i.e.

both phi(j) and test(i) are from the LM space. This is simply a (negative) mass matrix contribution, due to the structure of the LM equation.

Definition at line 57 of file GapConductanceConstraint.C.

58 {
59  return -_phi[_j][_qp] * _test[_i][_qp];
60 }

◆ computeQpJacobianSide()

 Real GapConductanceConstraint::computeQpJacobianSide ( Moose::ConstraintJacobianType jac_type )
protectedvirtual

Handles Jacobian contributions for both the LM equation and the primal equation.

The jac_type flag controls the type of contribution: Master/Master: LM equation Jacobian wrt to T^(1), phi(j) is primal basis, master side, test(i) is LM basis, master side. Master/Slave: LM equation Jacobian wrt T^(2), phi(j) is primal basis, slave side, test(i) is LM basis, slave side. Slave/Master: Primal equation Jacobian wrt lambda, phi(j) is the LM basis, test(i) is the primal basis, master side. Slave/Slave: Primal equation Jacobian wrt lambda, phi(j) is the LM basis, test(i) is the primal basis, slave side.

Definition at line 63 of file GapConductanceConstraint.C.

64 {
65  Real l = (_phys_points_master[_qp] - _phys_points_slave[_qp]).norm();
66  switch (jac_type)
67  {
68  case Moose::MasterMaster:
69  return (_k / l) * _phi[_j][_qp] * _test_master[_i][_qp];
70  case Moose::MasterSlave:
71  return -(_k / l) * _phi[_j][_qp] * _test_slave[_i][_qp];
72
73  case Moose::SlaveMaster:
74  return _phi[_j][_qp] * _test_master[_i][_qp];
75  case Moose::SlaveSlave:
76  return -_phi[_j][_qp] * _test_slave[_i][_qp];
77  default:
78  return 0;
79  }
80 }
Real _k
Thermal conductivity of the gap medium (e.g. air).

◆ computeQpResidual()

 Real GapConductanceConstraint::computeQpResidual ( )
protectedvirtual

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

Definition at line 36 of file GapConductanceConstraint.C.

37 {
38  Real l = (_phys_points_master[_qp] - _phys_points_slave[_qp]).norm();
39  return (_k * (_u_master[_qp] - _u_slave[_qp]) / l - _lambda[_qp]) * _test[_i][_qp];
40 }
Real _k
Thermal conductivity of the gap medium (e.g. air).

◆ computeQpResidualSide()

 Real GapConductanceConstraint::computeQpResidualSide ( Moose::ConstraintType res_type )
protectedvirtual

Computes the "lambda * (v^(1) - Pv^(2))" residual term in the primal equation.

The res_type flag controls whether the contribution from the master (1) or slave (2) test function is currently being computed.

Definition at line 43 of file GapConductanceConstraint.C.

44 {
45  switch (res_type)
46  {
47  case Moose::Master:
48  return _lambda[_qp] * _test_master[_i][_qp];
49  case Moose::Slave:
50  return -_lambda[_qp] * _test_slave[_i][_qp];
51  default:
52  return 0;
53  }
54 }

◆ _k

 Real GapConductanceConstraint::_k
protected

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

Definition at line 98 of file GapConductanceConstraint.h.

Referenced by computeQpJacobianSide(), and computeQpResidual().

The documentation for this class was generated from the following files: