11 #include <dolfinx/common/MPI.h>
40 std::pair<MPI_Comm, std::map<std::int32_t, std::vector<int>>>
50 const MPI_Comm& neighbor_comm,
51 const std::vector<std::vector<std::int32_t>>& marked_for_update,
52 std::vector<bool>& marked_edges,
const common::IndexMap& map_e);
62 std::pair<std::map<std::int32_t, std::int64_t>,
63 Eigen::Array<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>>
65 const MPI_Comm& neighbor_comm,
66 const std::map<std::int32_t, std::vector<std::int32_t>>& shared_edges,
67 const mesh::Mesh& mesh,
const std::vector<bool>& marked_edges);
79 const graph::AdjacencyList<std::int64_t>& cell_topology,
80 const Eigen::Array<
double, Eigen::Dynamic, Eigen::Dynamic,
81 Eigen::RowMajor>& new_vertex_coordinates,
92 std::vector<std::int64_t>
93 adjust_indices(
const std::shared_ptr<const common::IndexMap>& index_map,
GhostMode
Enum for different partitioning ghost modes.
Definition: Mesh.h:48
mesh::Mesh partition(const mesh::Mesh &old_mesh, const graph::AdjacencyList< std::int64_t > &cell_topology, const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > &new_vertex_coordinates, bool redistribute, mesh::GhostMode ghost_mode)
Use vertex and topology data to partition new mesh across processes.
Definition: utils.cpp:312
std::vector< std::int64_t > adjust_indices(const std::shared_ptr< const common::IndexMap > &index_map, std::int32_t n)
Adjust indices to account for extra n values on each process This is a utility to help add new topolo...
Definition: utils.cpp:284
std::pair< std::map< std::int32_t, std::int64_t >, Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > > create_new_vertices(const MPI_Comm &neighbor_comm, const std::map< std::int32_t, std::vector< std::int32_t >> &shared_edges, const mesh::Mesh &mesh, const std::vector< bool > &marked_edges)
Add new vertex for each marked edge, and create new_vertex_coordinates and global_edge->new_vertex ma...
Definition: utils.cpp:188
std::pair< MPI_Comm, std::map< std::int32_t, std::vector< int > > > compute_edge_sharing(const mesh::Mesh &mesh)
Compute the sharing of edges between processes. The resulting MPI_Comm is over the neighborhood of sh...
Definition: utils.cpp:109
void update_logical_edgefunction(const MPI_Comm &neighbor_comm, const std::vector< std::vector< std::int32_t >> &marked_for_update, std::vector< bool > &marked_edges, const common::IndexMap &map_e)
Transfer marked edges between processes.
Definition: utils.cpp:155