48 modify(
const std::unordered_map<
dof_id_type, std::pair<SubdomainID, SubdomainID>> & moved_elems);
67 const std::unordered_map<
dof_id_type, std::pair<SubdomainID, SubdomainID>> & moved_elems,
74 const std::unordered_map<
dof_id_type, std::pair<SubdomainID, SubdomainID>> & moved_elems);
79 unsigned short neigh_side);
87 const std::unordered_map<
dof_id_type, std::pair<SubdomainID, SubdomainID>> & moved_elems);
120 std::unordered_map<dof_id_type, std::unordered_map<unsigned short, BoundaryID>>
124 std::unordered_map<dof_id_type, std::unordered_map<unsigned short, BoundaryID>>
128 std::unordered_map<dof_id_type, std::unordered_map<unsigned short, BoundaryID>>
132 std::unordered_map<dof_id_type, std::unordered_map<unsigned short, BoundaryID>>
std::unique_ptr< ConstBndNodeRange > _reinitialized_displaced_bnd_node_range
Range of reinitialized boundary nodes on the displaced mesh.
DisplacedProblem * _displaced_problem
Pointer to the displaced problem.
std::unordered_set< dof_id_type > _reinitialized_elems
Reinitialized elements.
std::pair< SubdomainID, SubdomainID > SubdomainPair
Moving boundaries associated with each subdomain pair.
std::unordered_map< BoundaryID, BoundaryName > _moving_boundary_names
Boundary names associated with each moving boundary ID.
void gatherMovingBoundaryChanges(const std::unordered_map< dof_id_type, std::pair< SubdomainID, SubdomainID >> &moved_elems)
Base class for a system (of equations)
void gatherMovingBoundaryChangesHelper(const Elem *elem, unsigned short side, const Elem *neigh, unsigned short neigh_side)
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job...
StoredRange< MeshBase::const_element_iterator, const Elem *> ConstElemRange
void updateAMRMovingBoundary(MooseMesh &mesh)
Update boundaries for adaptive mesh from the parent to children elements.
void applyIC(bool displaced)
Reinitialize variables on range of elements and nodes to be reinitialized.
virtual void modify(const std::unordered_map< dof_id_type, std::pair< SubdomainID, SubdomainID >> &moved_elems)
Modify the element subdomains.
void createMovingBoundaries(MooseMesh &mesh)
Create moving boundaries.
static InputParameters validParams()
ConstElemRange & reinitializedElemRange(bool displaced=false)
Range of reinitialized elements.
virtual void meshChanged() override
Called on this object when the mesh changes.
void setAncestorsSubdomainIDs(Elem *elem, const SubdomainID subdomain_id)
Change the subdomain ID of all ancestor elements.
void applySubdomainChanges(const std::unordered_map< dof_id_type, std::pair< SubdomainID, SubdomainID >> &moved_elems, MooseMesh &mesh)
std::unordered_set< dof_id_type > _reinitialized_nodes
Reinitialized nodes.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
std::unique_ptr< ConstElemRange > _reinitialized_displaced_elem_range
Range of reinitialized elements on the displaced mesh.
bool subdomainIsReinitialized(SubdomainID id) const
Determine if a subdomain is to be reinitialized.
std::vector< SubdomainID > _subdomain_ids_to_reinitialize
Reinitialize moved elements whose new subdomain is in this list.
std::unordered_map< dof_id_type, std::unordered_map< unsigned short, BoundaryID > > _add_element_sides
Element sides to be added.
void initElementStatefulProps(bool displaced)
Reinitialize stateful material properties on range of elements and nodes to be reinitialized.
std::unordered_map< dof_id_type, std::unordered_map< unsigned short, BoundaryID > > _remove_element_sides
Element sides to be removed.
void applyMovingBoundaryChanges(MooseMesh &mesh)
bool nodeIsNewlyReinitialized(dof_id_type node_id) const
Determine if a node is newly reinitialized.
std::unique_ptr< ConstBndNodeRange > _reinitialized_bnd_node_range
Range of reinitialized boundary nodes.
MooseMesh * _displaced_mesh
Displaced mesh.
ConstBndNodeRange & reinitializedBndNodeRange(bool displaced=false)
Range of reinitialized boundary nodes.
std::unique_ptr< ConstElemRange > _reinitialized_elem_range
Range of reinitialized elements.
const InputParameters & parameters() const
Get the parameters of the object.
Base class for mesh modifiers modifying element subdomains.
void setOldAndOlderSolutions(SystemBase &sys, ConstElemRange &elem_range, ConstBndNodeRange &bnd_node_range)
Set old and older solutions to reinitialized elements and nodes.
void findReinitializedElemsAndNodes(const std::unordered_map< dof_id_type, std::pair< SubdomainID, SubdomainID >> &moved_elems)
std::unordered_map< SubdomainPair, BoundaryID > _moving_boundaries
std::unordered_map< dof_id_type, std::unordered_map< unsigned short, BoundaryID > > _remove_neighbor_sides
Neighbor sides to be removed.
std::unordered_map< dof_id_type, std::unordered_map< unsigned short, BoundaryID > > _add_neighbor_sides
Neighbor sides to be added.
ElementSubdomainModifierBase(const InputParameters ¶meters)
const bool _old_subdomain_reinitialized
Whether to reinitialize moved elements whose old subdomain was in _reinitialize_subdomains.