Go to the documentation of this file.
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");
37 for (
const auto & elem :
as_range(range_begin, range_end))
39 std::vector<const Elem *> active_siblings;
45 #ifdef LIBMESH_ENABLE_AMR
49 for (
const Elem * sibling : active_siblings)
50 if (sibling->processor_id() != p)
51 coupled_elements.insert
52 (std::make_pair(sibling, _dof_coupling));
The libMesh namespace provides an interface to certain functionality in the library.
std::unordered_map< const Elem *, const CouplingMatrix * > map_type
What elements do we care about and what variables do we care about on each element?
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.
The definition of the const_element_iterator struct.
const Elem * parent() const
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.
This is the base class from which all geometric element types are derived.