20 #ifndef LIBMESH_GHOSTING_FUNCTOR_H 21 #define LIBMESH_GHOSTING_FUNCTOR_H 24 #include "libmesh/libmesh_common.h" 25 #include "libmesh/id_types.h" 26 #include "libmesh/mesh_base.h" 27 #include "libmesh/reference_counted_object.h" 28 #include "libmesh/dof_object.h" 31 #include <unordered_map> 39 #ifdef LIBMESH_ENABLE_PERIODIC 40 class PeriodicBoundaries;
215 virtual std::unique_ptr<GhostingFunctor>
clone () const
227 #ifdef LIBMESH_ENABLE_PERIODIC 241 typedef std::map<const Elem*, const CouplingMatrix*, CompareDofObjectsByPIDAndThenID>
map_type;
299 #endif // LIBMESH_GHOSTING_FUNCTOR_H virtual void mesh_reinit()
GhostingFunctor subclasses which cache data will need to initialize that cache.
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.
We're using a class instead of a typedef to allow forward declarations and future flexibility...
const MeshBase * get_mesh() const
Return the mesh associated with ghosting functor.
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)=0
For the specified range of active elements, what other elements currently living (whether local or gh...
virtual void set_mesh(const MeshBase *mesh)
It should be called after cloning a ghosting functor.
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?
virtual void redistribute()
GhostingFunctor subclasses with relatively long-lasting caches may want to redistribute those caches ...
GhostingFunctor()
Constructor.
The libMesh namespace provides an interface to certain functionality in the library.
virtual void dofmap_reinit()
For algebraic ghosting or coupling functors we also call dofmap_reinit() later, after dofs have been ...
uint8_t processor_id_type
This is the MeshBase class.
GhostingFunctor(const MeshBase &mesh)
Constructor using mesh.
virtual void set_periodic_boundaries(const PeriodicBoundaries *)
This class implements reference counting.
GhostingFunctor(const GhostingFunctor &other)
Copy Constructor.
virtual std::unique_ptr< GhostingFunctor > clone() const
A clone() is needed because GhostingFunctor can not be shared between different meshes.
virtual void delete_remote_elements()
GhostingFunctor subclasses with relatively long-lasting caches may want to delete the no-longer-relev...
virtual ~GhostingFunctor()=default
Virtual destructor; this is an abstract base class.