9 #include "cell_types.h"
10 #include <Eigen/Dense>
13 #include <dolfinx/common/MPI.h>
26 class ElementDofLayout;
62 : _mpi_comm(comm), _cell_type(type),
90 void set_index_map(
int dim,
91 const std::shared_ptr<const common::IndexMap>& map);
97 std::shared_ptr<const common::IndexMap> index_map(
int dim)
const;
105 std::shared_ptr<const graph::AdjacencyList<std::int32_t>>
106 connectivity(
int d0,
int d1)
const;
114 const Eigen::Array<std::uint32_t, Eigen::Dynamic, 1>&
115 get_cell_permutation_info()
const;
126 const Eigen::Array<std::uint8_t, Eigen::Dynamic, Eigen::Dynamic>&
127 get_facet_permutations()
const;
145 std::int32_t create_entities(
int dim);
150 void create_connectivity(
int d0,
int d1);
153 void create_entity_permutations();
156 void create_connectivity_all();
160 MPI_Comm mpi_comm()
const;
170 std::array<std::shared_ptr<const common::IndexMap>, 4> _index_map;
173 Eigen::Array<std::shared_ptr<graph::AdjacencyList<std::int32_t>>,
174 Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
178 Eigen::Array<std::uint8_t, Eigen::Dynamic, Eigen::Dynamic>
183 Eigen::Array<std::uint32_t, Eigen::Dynamic, 1> _cell_permutations;
205 const std::vector<std::int64_t>& original_cell_index,
206 const std::vector<int>& ghost_owners,
A duplicate MPI communicator and manage lifetime of the communicator.
Definition: MPI.h:36
This class provides a static adjacency list data structure. It is commonly used to store directed gra...
Definition: AdjacencyList.h:28
Topology stores the topology of a mesh, consisting of mesh entities and connectivity (incidence relat...
Definition: Topology.h:58
Topology & operator=(const Topology &topology)=delete
Assignment.
Topology & operator=(Topology &&topology)=default
Assignment.
Topology(Topology &&topology)=default
Move constructor.
Topology(const Topology &topology)=default
Copy constructor.
Topology(MPI_Comm comm, mesh::CellType type)
Create empty mesh topology.
Definition: Topology.h:61
~Topology()=default
Destructor.
int cell_dim(CellType type)
Return topological dimension of cell type.
Definition: cell_types.cpp:359
std::vector< bool > 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:120
CellType
Cell type identifier.
Definition: cell_types.h:21
Topology create_topology(MPI_Comm comm, const graph::AdjacencyList< std::int64_t > &cells, const std::vector< std::int64_t > &original_cell_index, const std::vector< int > &ghost_owners, const CellType &cell_type, mesh::GhostMode ghost_mode)
Create distributed topology.
Definition: Topology.cpp:304
GhostMode
Enum for different partitioning ghost modes.
Definition: Mesh.h:37