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");
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 Node *const & _current_node
std::string getRawNames() const
const T & getParam(const std::string &name) const
virtual const OutputTools< Real >::VariableValue & value()
void paramError(const std::string ¶m, Args... args) const
RealVectorValue _contact_force
PenetrationLocator & getPenetrationLocator(const BoundaryName &primary, const BoundaryName &secondary, Order order)
const ExecFlagType EXEC_NONLINEAR
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)
static InputParameters validParams()