15#include "libmesh/string_to_enum.h"
26 "The set of boundaries in contact with those specified in 'boundary'. Ordering must be "
27 "consistent with that in 'boundary'.");
29 MooseEnum orders(
"FIRST SECOND THIRD FOURTH",
"FIRST");
30 params.
addParam<
MooseEnum>(
"order", orders,
"The finite element order: " + orders.getRawNames());
32 params.
addClassDescription(
"Computes the contact pressure from the contact force and nodal area");
39 _nodal_area(coupledValue(
"nodal_area")),
40 _number_pairs(getParam<
std::vector<BoundaryName>>(
"paired_boundary").size()),
41 _penetration_locators(_number_pairs)
45 "Boundary and paired boundary vectors are not the same size in the contact pressure "
46 "auxiliary kernel. Please check your input");
51 getParam<std::vector<BoundaryName>>(
"boundary")[i],
52 Utility::string_to_enum<Order>(getParam<MooseEnum>(
"order")));
68 penetration_info = it->second;
70 if (penetration_info && area != 0)
73 penetration_info =
nullptr;
const ExecFlagType EXEC_NONLINEAR
const Node *const & _current_node
static InputParameters validParams()
PenetrationLocator & getPenetrationLocator(const BoundaryName &primary, const BoundaryName &secondary, Order order)
void paramError(const std::string ¶m, Args... args) const
const T & getParam(const std::string &name) const
virtual const OutputTools< ComputeValueType >::VariableValue & value()
RealVectorValue _contact_force