20 #ifndef LIBMESH_POINT_NEIGHBOR_COUPLING_H    21 #define LIBMESH_POINT_NEIGHBOR_COUPLING_H    24 #include "libmesh/ghosting_functor.h"    33 class PeriodicBoundaries;
    53 #ifdef LIBMESH_ENABLE_PERIODIC
    65 #ifdef LIBMESH_ENABLE_PERIODIC
    75   virtual std::unique_ptr<GhostingFunctor> 
clone ()
 const override    76   { 
return std::make_unique<PointNeighborCoupling>(*this); }
    90 #ifdef LIBMESH_ENABLE_PERIODIC   120                            map_type & coupled_elements) 
override;
   125 #ifdef LIBMESH_ENABLE_PERIODIC   133 #endif // LIBMESH_POINT_NEIGHBOR_COUPLING_H virtual void delete_remote_elements() override
GhostingFunctor subclasses with relatively long-lasting caches may want to delete the no-longer-relev...
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...
void set_n_levels(unsigned int n_levels)
void set_periodic_boundaries(const PeriodicBoundaries *periodic_bcs) override
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, find the elements which will be coupled to them in the sp...
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. 
uint8_t processor_id_type
This class implements ghosting of point neighbors (elements on the same manifold that share points)...
const PeriodicBoundaries * _periodic_bcs
PointNeighborCoupling()
Constructor. 
void set_dof_coupling(const CouplingMatrix *dof_coupling)
const CouplingMatrix * _dof_coupling
PointNeighborCoupling(const PointNeighborCoupling &other)
Constructor. 
virtual void redistribute() override
GhostingFunctor subclasses with relatively long-lasting caches may want to redistribute those caches ...
virtual void mesh_reinit() override
If we have periodic boundaries, then we'll need the mesh to have an updated point locator whenever we...
virtual std::unique_ptr< GhostingFunctor > clone() const override
A clone() is needed because GhostingFunctor can not be shared between different meshes. 
This class defines a coupling matrix.