18 #ifndef LIBMESH_NON_MANIFOLD_COUPLING_H 19 #define LIBMESH_NON_MANIFOLD_COUPLING_H 22 #include "libmesh/ghosting_functor.h" 23 #include "libmesh/sides_to_elem_map.h" 85 virtual std::unique_ptr<GhostingFunctor>
clone ()
const override;
115 map_type & coupled_elements)
override;
126 #endif // LIBMESH_NON_MANIFOLD_COUPLING_H This abstract base class defines the interface by which library code and user code can report associa...
The definition of the const_element_iterator struct.
virtual void operator()(const MeshBase::const_element_iterator &range_begin, const MeshBase::const_element_iterator &range_end, processor_id_type p, map_type &coupled_elements) override
For the specified range of active elements, query the SidesToElemMap and add all side neighbors to th...
NonManifoldGhostingFunctor & operator=(const NonManifoldGhostingFunctor &)=default
virtual ~NonManifoldGhostingFunctor()=default
virtual std::unique_ptr< GhostingFunctor > clone() const override
clone() just calls the copy ctor.
std::map< const Elem *, const CouplingMatrix *, CompareDofObjectsByPIDAndThenID > map_type
What elements do we care about and what variables do we care about on each element?
The libMesh namespace provides an interface to certain functionality in the library.
A GhostingFunctor subclass that uses a SidesToElemMap object to determine when Elem DOFs should be gh...
NonManifoldGhostingFunctor(const MeshBase &mesh)
Constructor.
uint8_t processor_id_type
This is the MeshBase class.
virtual void delete_remote_elements() override
When remote elements are deleted, we should remove them from the information in the SidesToElemMap...
MeshTools::SidesToElemMap _stem
Quickly-searchable map from (elem, side) pair to list of connected Elems.
virtual void redistribute() override
When the Mesh is redistributed, we may need to update the information in the SidesToElemMap by removi...
virtual void mesh_reinit() override
If the Mesh changes, we'll need to clear the SidesToElemMap and recreate it, since all the neighbor i...