11#include <dolfinx/common/MPI.h>
64 int dim() const noexcept;
78 std::shared_ptr<const common::IndexMap>
index_map(
int dim) const;
88 std::shared_ptr<const graph::AdjacencyList<std::int32_t>>
140 MPI_Comm
comm() const;
144 dolfinx::MPI::Comm _comm;
150 std::array<std::shared_ptr<const common::IndexMap>, 4> _index_map;
153 std::vector<std::vector<std::shared_ptr<graph::AdjacencyList<std::int32_t>>>>
159 std::vector<std::uint8_t> _facet_permutations;
163 std::vector<std::uint32_t> _cell_permutations;
166 std::vector<std::int32_t> _interprocess_facets;
187 const graph::AdjacencyList<std::int64_t>& cells,
189 std::span<const
int> ghost_owners,
191 std::span<const std::int64_t> boundary_vertices);
203std::vector<std::int32_t>
205 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:43
std::shared_ptr< const common::IndexMap > index_map(int dim) const
Get the IndexMap that described the parallel distribution of the mesh entities.
Definition: Topology.cpp:740
void create_connectivity(int d0, int d1)
Create connectivity between given pair of dimensions, d0 -> d1.
Definition: Topology.cpp:779
std::shared_ptr< const graph::AdjacencyList< std::int32_t > > connectivity(int d0, int d1) const
Return connectivity from entities of dimension d0 to entities of dimension d1.
Definition: Topology.cpp:828
void set_connectivity(std::shared_ptr< graph::AdjacencyList< std::int32_t > > c, int d0, int d1)
Set connectivity for given pair of topological dimensions.
Definition: Topology.cpp:835
void create_entity_permutations()
Compute entity permutations and reflections.
Definition: Topology.cpp:807
std::int32_t create_entities(int dim)
Create entities of given topological dimension.
Definition: Topology.cpp:746
const std::vector< std::uint32_t > & get_cell_permutation_info() const
Returns the permutation information.
Definition: Topology.cpp:843
const std::vector< std::int32_t > & interprocess_facets() const
List of inter-process facets, if facet topology has been computed.
Definition: Topology.cpp:872
const std::vector< std::uint8_t > & get_facet_permutations() const
Get the permutation number to apply to a facet.
Definition: Topology.cpp:858
Topology(const Topology &topology)=default
Copy constructor.
~Topology()=default
Destructor.
int dim() const noexcept
Return the topological dimension of the mesh.
Definition: Topology.cpp:731
std::vector< std::int64_t > original_cell_index
Original cell index.
Definition: Topology.h:136
Topology(Topology &&topology)=default
Move constructor.
void set_index_map(int dim, std::shared_ptr< const common::IndexMap > map)
Definition: Topology.cpp:733
Topology & operator=(const Topology &topology)=delete
Assignment.
MPI_Comm comm() const
Mesh MPI communicator.
Definition: Topology.cpp:879
CellType cell_type() const noexcept
Cell type.
Definition: Topology.cpp:877
Topology & operator=(Topology &&topology)=default
Assignment.
Miscellaneous classes, functions and types.
Graph data structures and algorithms.
Definition: dofmapbuilder.h:25
Mesh data structures and algorithms on meshes.
Definition: DofMap.h:31
Topology create_topology(MPI_Comm comm, const graph::AdjacencyList< std::int64_t > &cells, std::span< const std::int64_t > original_cell_index, std::span< const int > ghost_owners, const CellType &cell_type, std::span< const std::int64_t > boundary_vertices)
Create a distributed mesh topology.
Definition: Topology.cpp:881
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:1139
CellType
Cell type identifier.
Definition: cell_types.h:22