9 #include "cell_types.h"
10 #include <Eigen/Dense>
13 #include <dolfinx/common/MPI.h>
26 class ElementDofLayout;
63 : _mpi_comm(comm), _cell_type(type),
91 void set_index_map(
int dim,
92 std::shared_ptr<const common::IndexMap> index_map);
98 std::shared_ptr<const common::IndexMap> index_map(
int dim)
const;
107 std::vector<bool> on_boundary(
int dim)
const;
115 std::shared_ptr<const graph::AdjacencyList<std::int32_t>>
116 connectivity(
int d0,
int d1)
const;
124 const Eigen::Array<std::uint32_t, Eigen::Dynamic, 1>&
125 get_cell_permutation_info()
const;
136 const Eigen::Array<std::uint8_t, Eigen::Dynamic, Eigen::Dynamic>&
137 get_facet_permutations()
const;
144 const std::vector<bool>& interior_facets()
const;
148 void set_interior_facets(
const std::vector<bool>& interior_facets);
166 std::int32_t create_entities(
int dim);
171 void create_connectivity(
int d0,
int d1);
174 void create_entity_permutations();
177 void create_connectivity_all();
181 MPI_Comm mpi_comm()
const;
192 std::array<std::shared_ptr<const common::IndexMap>, 4> _index_map;
195 Eigen::Array<std::shared_ptr<graph::AdjacencyList<std::int32_t>>,
196 Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
200 Eigen::Array<std::uint8_t, Eigen::Dynamic, Eigen::Dynamic>
205 Eigen::Array<std::uint32_t, Eigen::Dynamic, 1> _cell_permutations;
209 std::shared_ptr<const std::vector<bool>> _interior_facets;
228 const std::vector<std::int64_t>& original_cell_index,
229 const std::vector<int>& ghost_owners,