20#ifndef LIBMESH_SIBLING_COUPLING_H
21#define LIBMESH_SIBLING_COUPLING_H
24#include "libmesh/ghosting_functor.h"
69 map_type & coupled_elements)
override;
75 virtual std::unique_ptr<GhostingFunctor>
clone ()
const override
76 {
return std::make_unique<SiblingCoupling>(*
this); }
This class defines a coupling matrix.
This abstract base class defines the interface by which library code and user code can report associa...
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?
This class adds coupling (for use in send_list construction) between active elements and all descenda...
void set_dof_coupling(const CouplingMatrix *dof_coupling)
virtual std::unique_ptr< GhostingFunctor > clone() const override
A clone() is needed because GhostingFunctor can not be shared between different meshes.
SiblingCoupling()
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 any sibling elements which should be evaluable too.
SiblingCoupling(const SiblingCoupling &other)
Constructor.
const CouplingMatrix * _dof_coupling
The libMesh namespace provides an interface to certain functionality in the library.
uint8_t processor_id_type
The definition of the const_element_iterator struct.