#include <NormalMortarLMMechanicalContact.h>
template<ComputeStage compute_stage>
class NormalMortarLMMechanicalContact< compute_stage >
Definition at line 15 of file NormalMortarLMMechanicalContact.h.
◆ NormalMortarLMMechanicalContact()
template<ComputeStage compute_stage>
Definition at line 29 of file NormalMortarLMMechanicalContact.C.
31 : ADMortarConstraint<compute_stage>(parameters),
32 _slave_disp_y(isParamValid(
"slave_disp_y") ? &this->_subproblem.getStandardVariable(
33 _tid, parameters.getMooseType(
"slave_disp_y"))
36 isParamValid(
"master_disp_y")
37 ? &this->_subproblem.getStandardVariable(_tid, parameters.getMooseType(
"master_disp_y"))
38 : isParamValid(
"slave_disp_y") ? &this->_subproblem.getStandardVariable(
39 _tid, parameters.getMooseType(
"slave_disp_y"))
44 _epsilon(std::numeric_limits<Real>::epsilon()),
45 _ncp_type(getParam<MooseEnum>(
"ncp_function_type"))
50 "It doesn't make any sense that we have a slave displacement variable and not a "
51 "master displacement variable");
◆ computeQpResidual() [1/3]
Definition at line 60 of file NormalMortarLMMechanicalContact.C.
64 case Moose::MortarType::Lower:
68 auto gap_vec = _phys_points_master[_qp] - _phys_points_slave[_qp];
69 auto gap = gap_vec * _normals[_qp];
71 const auto & a = _lambda[_qp];
78 fb_function = a + b - std::sqrt(a * a + b * b +
_epsilon);
80 fb_function = std::min(a, b);
82 return _test[_i][_qp] * fb_function;
85 return _test[_i][_qp] * _lambda[_qp];
◆ computeQpResidual() [2/3]
Definition at line 95 of file NormalMortarLMMechanicalContact.C.
99 case Moose::MortarType::Lower:
103 DualRealVectorValue gap_vec = _phys_points_master[_qp] - _phys_points_slave[_qp];
108 gap_vec(0).derivatives() = _u_master[_qp].derivatives() - _u_slave[_qp].derivatives();
109 gap_vec(1).derivatives() =
110 (*_master_disp_y_sln)[_qp].derivatives() - (*_slave_disp_y_sln)[_qp].derivatives();
113 auto gap = gap_vec * _normals[_qp];
115 const auto & a = _lambda[_qp];
116 const auto & b = gap;
118 DualReal fb_function;
122 fb_function = a + b - std::sqrt(a * a + b * b +
_epsilon);
124 fb_function = std::min(a, b);
126 return _test[_i][_qp] * fb_function;
129 return _test[_i][_qp] * _lambda[_qp];
◆ computeQpResidual() [3/3]
template<ComputeStage compute_stage>
◆ _computing_gap_dependence
template<ComputeStage compute_stage>
◆ _epsilon
template<ComputeStage compute_stage>
◆ _master_disp_y
template<ComputeStage compute_stage>
◆ _master_disp_y_sln
template<ComputeStage compute_stage>
◆ _ncp_type
template<ComputeStage compute_stage>
◆ _slave_disp_y
template<ComputeStage compute_stage>
◆ _slave_disp_y_sln
template<ComputeStage compute_stage>
◆ usingMortarConstraintMembers
template<ComputeStage compute_stage>
The documentation for this class was generated from the following files: