18 "mode_mixity_ratio cohesive_damage local_normal_jump local_tangential_jump");
25 "Populates an auxiliary variable with mortar cohesive zone model quantities.");
27 "cohesive_zone_quantity",
29 "The desired cohesive zone model quantity to output as an auxiliary variable.");
31 "The mortar cohesive zone modeling user object to get " 32 "values from. Note that the user object " 33 "must implement the corresponding getter function.");
41 _cohesive_zone_quantity(
43 _user_object(getUserObject<
UserObject>(
"user_object")),
46 {
"BilinearMixedModeCohesiveZoneModel",
50 {
"BilinearMixedModeCohesiveZoneModel",
54 {
"BilinearMixedModeCohesiveZoneModel",
63 mooseError(
"This auxiliary kernel requires nodal variables to obtain contact pressure values");
66 const auto it = _outputs.find(_cohesive_zone_quantity);
67 if (it == _outputs.end())
68 mooseError(
"Internal error: Contact quantity request in PressureMortarUserObjectAux is not " 70 if (!std::get<1>(it->second))
71 paramError(
"user_object",
73 _cohesive_zone_quantities.getNames()[
static_cast<int>(it->first)],
74 "' quantity is only provided by a '",
75 std::get<0>(it->second),
76 "' or derived object.");
Real getModeMixityRatio(const Node *const node) const
void mooseError(Args &&... args)
static const MooseEnum _cohesive_zone_quantities
Available cohesive zone model quantities.
const Node *const & _current_node
const ExecFlagType EXEC_TIMESTEP_END
Real getCohesiveDamage(const Node *const node) const
Real getLocalDisplacementTangential(const Node *const node) const
CohesiveZoneMortarUserObjectAux(const InputParameters ¶meters)
virtual Real computeValue() override
static InputParameters validParams()
const CohesiveQuantityEnum _cohesive_zone_quantity
What penalty mortar contact quantity we'd like to output.
Auxiliary kernel to output mortar cohesive zone model quantities of interest.
const BilinearMixedModeCohesiveZoneModel * _cohesive_zone_uo
Cast pointers to specific UOs.
CohesiveQuantityEnum
What type of cohesive zone quantity we are querying.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::map< CohesiveQuantityEnum, std::tuple< std::string, const void *, std::function< Real(void)> > > _outputs
Definition of the output quantities and.
User object that interface pressure resulting from a simple traction separation law.
registerMooseObject("ContactApp", CohesiveZoneMortarUserObjectAux)
static InputParameters validParams()
Real getLocalDisplacementNormal(const Node *const node) const