34 using SideList = std::vector<std::pair<dof_id_type, unsigned int>>;
boundary_id_type BoundaryID
subdomain_id_type SubdomainID
const std::vector< double > y
const InputParameters & parameters() const
Dynamically adds fully-damaged CZM interface segments to sidesets at runtime.
BoundaryID _primary_boundary_id
Primary/secondary interface boundary ids (to key the mortar interface).
BoundaryID _secondary_boundary_id
virtual void initialSetup() override
BoundaryInfo * _displaced_boundary_info
BoundaryInfo & _boundary_info
MeshBase *const _displaced_mesh
Displaced mesh.
virtual void threadJoin(const UserObject &y) override
BoundaryID _debonded_bid_primary
std::unordered_map< dof_id_type, SideList > _secondary_to_primary_faces
Secondary lower-d element id -> every primary (elem id, side) whose face overlaps it in the reference...
BoundaryID _debonded_bid_secondary
const VariableValue & _damage
CZM damage (0 = intact, 1 = broken), valid on the secondary lower-d block.
virtual void finalize() override
BoundaryName _debonded_name_secondary
bool currentElemFullySeparated() const
True if damage >= threshold at every QP of the current lower-d element.
static InputParameters validParams()
MeshBase & _undisplaced_mesh
Undisplaced mesh.
BoundaryName _debonded_name_primary
Boundaries to which damaged faces are added.
SubdomainID _primary_subdomain_id
Primary/secondary lower-dimensional subdomain ids (to key the mortar interface).
virtual void executeOnElement() override
virtual void initialize() override
std::vector< std::pair< dof_id_type, unsigned int > > SideList
std::vector< dof_id_type > _separated_lowerd
Thread-local fully-separated secondary lower-d element ids found this execution.
const Real _threshold
Damage at/above which a face is considered fully separated.
void buildReferencePrimaryFaceMap()
Build _secondary_to_primary_faces from a mortar projection of the undisplaced interface.
SubdomainID _secondary_subdomain_id
DisplacedProblem * _displaced_problem
Displaced problem.
const UserObjectName _czm_userobject_name
The mortar UO name (to retrieve the interface's AutomaticMortarGeneration).
VariableValueTempl< false > VariableValue