13 #include "FEProblem.h"
25 MooseEnum orders(
"FIRST SECOND THIRD FOURTH",
"FIRST");
27 InputParameters params = validParams<Action>();
28 params.addRequiredParam<BoundaryName>(
"master",
"The master surface");
29 params.addRequiredParam<BoundaryName>(
"slave",
"The slave surface");
30 params.addParam<MooseEnum>(
"order", orders,
"The finite element order: FIRST, SECOND, etc.");
36 _master(getParam<BoundaryName>(
"master")),
37 _slave(getParam<BoundaryName>(
"slave")),
38 _order(getParam<MooseEnum>(
"order"))
45 if (!_problem->getDisplacedProblem())
47 mooseError(
"Contact requires updated coordinates. Use the 'displacements = ...' line in the "
52 InputParameters params = _factory.getValidParams(
"PenetrationAux");
53 params.set<ExecFlagEnum>(
"execute_on") = {EXEC_INITIAL, EXEC_LINEAR};
56 if (isParamValid(
"parser_syntax"))
57 _app.parser().extractParams(getParam<std::string>(
"parser_syntax"), params);
59 params.set<std::vector<BoundaryName>>(
"boundary") = {
_slave};
60 params.set<BoundaryName>(
"paired_boundary") =
_master;
61 params.set<AuxVariableName>(
"variable") =
"penetration";
62 params.set<MooseEnum>(
"order") =
_order;
64 params.set<
bool>(
"use_displaced_mesh") =
true;
66 std::stringstream
name;
70 _problem->addAuxKernel(
"PenetrationAux",
name.str(), params);