19 params.addRequiredParam<MooseEnum>(
20 "component",
component,
"The force component constraint that this object is supplying");
21 params.addClassDescription(
22 "Used to apply tangential stresses from frictional contact using lagrange multipliers");
23 params.set<
bool>(
"compute_lm_residual") =
false;);
25 template <ComputeStage compute_stage>
27 const InputParameters & parameters)
28 : ADMortarConstraint<compute_stage>(parameters), _component(getParam<MooseEnum>(
"component"))
32 template <ComputeStage compute_stage>
38 case Moose::MortarType::Slave:
47 return _test_slave[_i][_qp] * _lambda[_qp] * _tangents[_qp][0](_component) /
48 _tangents[_qp][0].norm();
50 case Moose::MortarType::Master:
52 return -_test_master[_i][_qp] * _lambda[_qp] * _tangents[_qp][0](_component) /
53 _tangents[_qp][0].norm();