19#include "libmesh/sides_to_elem_map.h"
20#include "libmesh/elem.h"
21#include "libmesh/libmesh_logging.h"
22#include "libmesh/mesh_base.h"
23#include "libmesh/utility.h"
39 LOG_SCOPE(
"build()",
"SidesToElemMap");
49 std::vector<dof_id_type> sorted_vertex_ids;
55 for (
const auto & elem :
mesh.element_ptr_range())
65 active_level_seen = elem->level();
68 active_level_seen != elem->level(),
69 "SidesToElemMap does not currently support hanging nodes.");
72 for (
auto s : elem->side_index_range())
85std::pair<SidesToElemMap::ElemIter, SidesToElemMap::ElemIter>
88 std::vector<dof_id_type> sorted_vertex_ids;
92 return std::make_pair(elem_vec.begin(), elem_vec.end());
99 std::vector<dof_id_type> & sorted_vertex_ids)
const
102 sorted_vertex_ids.clear();
109 sorted_vertex_ids.push_back(elem->
node_id(n));
117 std::sort(sorted_vertex_ids.begin(), sorted_vertex_ids.end());
This is the base class from which all geometric element types are derived.
virtual std::vector< unsigned int > nodes_on_side(const unsigned int) const =0
virtual bool is_vertex(const unsigned int i) const =0
dof_id_type node_id(const unsigned int i) const
This is the MeshBase class.
The libMesh namespace provides an interface to certain functionality in the library.
const unsigned int invalid_uint
A number which is used quite often to represent an invalid or uninitialized value for an unsigned int...