21 #include "libmesh/sibling_coupling.h" 22 #include "libmesh/elem.h" 23 #include "libmesh/remote_elem.h" 24 #include "libmesh/libmesh_logging.h" 29 void SiblingCoupling::operator()
35 LOG_SCOPE(
"operator()",
"SiblingCoupling");
39 for (
const auto & elem :
as_range(range_begin, range_end))
41 std::vector<const Elem *> active_siblings;
49 #ifdef LIBMESH_ENABLE_AMR 53 for (
const Elem * sibling : active_siblings)
54 if (sibling->processor_id() != p)
55 coupled_elements.emplace(sibling, _dof_coupling);
const Elem * parent() const
The definition of the const_element_iterator struct.
This is the base class from which all geometric element types are derived.
void active_family_tree(std::vector< const Elem *> &active_family, bool reset=true) const
Same as the family_tree() member, but only adds the active children.
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
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
Helper function that allows us to treat a homogenous pair as a range.