13 #include "FEProblem.h"
16 #include "Conversion.h"
26 MooseEnum orders(
"FIRST SECOND THIRD FOURTH",
"FIRST");
28 InputParameters params = validParams<Action>();
29 params.addRequiredParam<BoundaryName>(
"master",
"The master surface");
30 params.addRequiredParam<BoundaryName>(
"slave",
"The slave surface");
31 params.addParam<MooseEnum>(
"order", orders,
"The finite element order: " + orders.getRawNames());
37 _master(getParam<BoundaryName>(
"master")),
38 _slave(getParam<BoundaryName>(
"slave")),
39 _order(getParam<MooseEnum>(
"order"))
46 if (!_problem->getDisplacedProblem())
48 mooseError(
"Contact requires updated coordinates. Use the 'displacements = ...' line in the "
53 InputParameters params = _factory.getValidParams(
"ContactPressureAux");
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") =
"contact_pressure";
62 params.addRequiredCoupledVar(
"nodal_area",
"The nodal area");
63 params.set<std::vector<VariableName>>(
"nodal_area") = {
"nodal_area_" + _name};
64 params.set<MooseEnum>(
"order") =
_order;
66 params.set<
bool>(
"use_displaced_mesh") =
true;
68 std::stringstream
name;
70 name <<
"_contact_pressure_";
73 params.set<ExecFlagEnum>(
"execute_on",
74 true) = {EXEC_NONLINEAR, EXEC_TIMESTEP_END, EXEC_TIMESTEP_BEGIN};
75 _problem->addAuxKernel(
"ContactPressureAux",
name.str(), params);