39 if (!
mesh.is_serial())
40 libmesh_parallel_only(
mesh.comm());
42 LOG_SCOPE(
"init()",
"TopologyMap");
53 const std::vector<std::pair<dof_id_type, dof_id_type>> & bracketing_nodes)
59 for (std::size_t i=0; i != bracketing_nodes.size(); ++i)
68 map_type::iterator it =
69 _map.find(std::make_pair(lower_id, upper_id));
72 libmesh_assert_equal_to (it->second, mid_node_id);
75 this->
_map.insert(std::make_pair(std::make_pair(lower_id, upper_id),
86 for (std::size_t i = 0; i != bracketing_nodes.size(); ++i)
89 bracketing_nodes[i].second);
91 bracketing_nodes[i].second);
94 this->
find(lower_id, upper_id);
102 libmesh_assert_equal_to (new_node_id, possible_new_node_id);
104 new_node_id = possible_new_node_id;
124 map_type::const_iterator it =
125 _map.find(std::make_pair(lower_id, upper_id));
127 if (it ==
_map.end())
137 #ifdef LIBMESH_ENABLE_AMR 142 for (
const auto & elem :
mesh.element_ptr_range())
146 if (!elem->has_children())
149 for (
unsigned int c = 0, nc = elem->n_children(); c != nc; ++c)
155 for (
unsigned int n = 0; n != elem->n_nodes_in_child(c); ++n)
157 const std::vector<std::pair<dof_id_type, dof_id_type>>
virtual const std::vector< std::pair< dof_id_type, dof_id_type > > bracketing_nodes(unsigned int c, unsigned int n) const
A geometric point in (x,y,z) space associated with a DOF.
dof_id_type find(dof_id_type bracket_node1, dof_id_type bracket_node2) const
void add_node(const Node &mid_node, const std::vector< std::pair< dof_id_type, dof_id_type >> &bracketing_nodes)
The base class for all geometric element types.
void fill(const MeshBase &)
long double max(long double a, double b)
const Node & node_ref(const unsigned int i) const
static const dof_id_type invalid_id
long double min(long double a, double b)
const Elem * child_ptr(unsigned int i) const
const RemoteElem * remote_elem