21 "contact, including contact/no-contact and stick/slip.");
23 "First tangent vector Lagrange multiplier for computing the mortar " 24 "frictional pressure vector.");
26 "Second tangent vector Lagrange multiplier for computing the mortar " 27 "frictional pressure vector.");
30 "Normal contact pressure Lagrange multiplier from the mortar contact enforcement.");
32 params.
addParam<
Real>(
"tolerance", 1.0e-3,
"Tolerance value used to determine the states");
34 "use_displaced_mesh",
true,
"Whether to use the displaced mesh to get the mortar interface.");
40 _tangent_one(coupledValueLower(
"tangent_one")),
41 _tangent_two(isParamValid(
"tangent_two") ? coupledValueLower(
"tangent_two") : _zero),
42 _contact_pressure(coupledValueLower(
"contact_pressure")),
43 _use_displaced_mesh(getParam<bool>(
"use_displaced_mesh")),
44 _mu(getParam<
Real>(
"mu")),
45 _tolerance(getParam<
Real>(
"tolerance"))
49 mooseError(
"MortarFrictionalStateAux auxiliary kernel can only be used with nodal kernels.");
53 "This auxiliary kernel requires the use of displaced meshes to compute the " 54 "frictional pressure vector.");
59 "MortarFrictionalStateAux auxiliary kernel must be restricted to a boundary.");
62 if (mortar_dimension == 2 && !
isParamValid(
"tangent_two"))
64 "MortarFrictionalStateAux auxiliary kernel requires a second tangent Lagrange " 65 "multiplier for three-dimensional problems");
81 const Real tangential_pressure =
86 if (
status == 2 && tangential_pressure * (1.0 +
_tolerance) > tangential_pressure_sat)
virtual MooseMesh & mesh()=0
virtual Real computeValue() override
const MooseArray< Real > & _contact_pressure
Normal contact pressure.
bool isParamValid(const std::string &name) const
virtual unsigned int dimension() const
const bool _use_displaced_mesh
Whether to use displaced mesh (required for this auxiliary kernel)
void paramError(const std::string ¶m, Args... args) const
const MooseArray< Real > & _tangent_two
Tangent along the second direction.
const ExecFlagType EXEC_NONLINEAR
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Computes the frictional state of nodes in mechanical contact using a mortar approach.
const Real _mu
Coefficient of friction corresponding to the contact interface TODO: Allow variable friction coeffici...
void mooseError(Args &&... args) const
MortarFrictionalStateAux(const InputParameters ¶meters)
static InputParameters validParams()
const Real _tolerance
Tolerance used to determine nodal contact states.
const MooseArray< Real > & _tangent_one
Tangent along the first direction.
static InputParameters validParams()
registerMooseObject("ContactApp", MortarFrictionalStateAux)