20 #ifndef LIBMESH_DEFAULT_COUPLING_H 21 #define LIBMESH_DEFAULT_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<DefaultCoupling>(*this); }
89 #ifdef LIBMESH_ENABLE_PERIODIC 120 map_type & coupled_elements)
override;
125 #ifdef LIBMESH_ENABLE_PERIODIC 133 #endif // LIBMESH_DEFAULT_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...
virtual std::unique_ptr< GhostingFunctor > clone() const override
A clone() is needed because GhostingFunctor can not be shared between different meshes.
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_periodic_boundaries(const PeriodicBoundaries *periodic_bcs) override
virtual void mesh_reinit() override
If we have periodic boundaries, then we'll need the mesh to have an updated point locator whenever we...
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 the default algebraic coupling in libMesh: elements couple to themselves...
DefaultCoupling()
Constructor.
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...
virtual void redistribute() override
GhostingFunctor subclasses with relatively long-lasting caches may want to redistribute those caches ...
void set_dof_coupling(const CouplingMatrix *dof_coupling)
const CouplingMatrix * _dof_coupling
const PeriodicBoundaries * _periodic_bcs
void set_n_levels(unsigned int n_levels)
DefaultCoupling(const DefaultCoupling &other)
Constructor.
This class defines a coupling matrix.