13 #include "PenetrationLocator.h"
15 #include "libmesh/string_to_enum.h"
23 InputParameters params = validParams<AuxKernel>();
24 params.addRequiredCoupledVar(
"nodal_area",
"The nodal area");
25 params.addRequiredParam<BoundaryName>(
"paired_boundary",
"The boundary to be penetrated");
26 params.set<ExecFlagEnum>(
"execute_on") = EXEC_NONLINEAR;
27 MooseEnum orders(
"FIRST SECOND THIRD FOURTH",
"FIRST");
28 params.addParam<MooseEnum>(
"order", orders,
"The finite element order: " + orders.getRawNames());
34 _nodal_area(coupledValue(
"nodal_area")),
36 getPenetrationLocator(getParam<BoundaryName>(
"paired_boundary"),
37 getParam<std::vector<BoundaryName>>(
"boundary")[0],
38 Utility::string_to_enum<Order>(getParam<MooseEnum>(
"order"))))
49 const PenetrationInfo * pinfo(NULL);
55 if (pinfo && area != 0)
56 value = -(pinfo->_contact_force * pinfo->_normal) / area;