11 #include <dolfinx/common/MPI.h>
14 #include <xtl/xspan.hpp>
78 int dim() const noexcept;
84 void set_index_map(
int dim,
85 const std::shared_ptr<const common::IndexMap>& map);
93 std::shared_ptr<const common::IndexMap> index_map(
int dim) const;
103 std::shared_ptr<const graph::AdjacencyList<std::int32_t>>
104 connectivity(
int d0,
int d1) const;
108 void set_connectivity(std::shared_ptr<graph::AdjacencyList<std::int32_t>> c,
112 const std::vector<std::uint32_t>& get_cell_permutation_info() const;
126 const std::vector<std::uint8_t>& get_facet_permutations() const;
130 CellType cell_type() const noexcept;
136 std::int32_t create_entities(
int dim);
142 void create_connectivity(
int d0,
int d1);
145 void create_entity_permutations();
148 std::vector<std::int64_t> original_cell_index;
152 MPI_Comm comm() const;
156 dolfinx::MPI::Comm _comm;
162 std::array<std::shared_ptr<const common::IndexMap>, 4> _index_map;
165 std::vector<std::vector<std::shared_ptr<graph::AdjacencyList<std::int32_t>>>>
171 std::vector<std::uint8_t> _facet_permutations;
175 std::vector<std::uint32_t> _cell_permutations;
196 create_topology(MPI_Comm comm, const graph::AdjacencyList<std::int64_t>& cells,
197 const xtl::span<const std::int64_t>& original_cell_index,
198 const xtl::span<const
int>& ghost_owners,
211 std::vector<std::int32_t>
213 const graph::AdjacencyList<std::int32_t>& entities);
Topology stores the topology of a mesh, consisting of mesh entities and connectivity (incidence relat...
Definition: Topology.h:57
Topology & operator=(const Topology &topology)=delete
Assignment.
Topology(const Topology &topology)=default
Copy constructor.
~Topology()=default
Destructor.
Topology & operator=(Topology &&topology)=default
Assignment.
Topology(Topology &&topology)=default
Move constructor.
Miscellaneous classes, functions and types.
Graph data structures and algorithms.
Definition: dofmapbuilder.h:25
Mesh data structures and algorithms on meshes.
Definition: DofMap.h:30
GhostMode
Enum for different partitioning ghost modes.
Definition: utils.h:27
Topology create_topology(MPI_Comm comm, const graph::AdjacencyList< std::int64_t > &cells, const xtl::span< const std::int64_t > &original_cell_index, const xtl::span< const int > &ghost_owners, const CellType &cell_type, GhostMode ghost_mode)
Create a distributed mesh topology.
Definition: Topology.cpp:905
std::vector< std::int8_t > compute_boundary_facets(const Topology &topology)
Compute marker for owned facets that are on the exterior of the domain, i.e. are connected to only on...
Definition: Topology.cpp:702
std::vector< std::int32_t > entities_to_index(const Topology &topology, int dim, const graph::AdjacencyList< std::int32_t > &entities)
Get entity indices for entities defined by their vertices.
Definition: Topology.cpp:1191
CellType
Cell type identifier.
Definition: cell_types.h:22