21 #ifndef __SCOTCH_PARTITIONER_H
22 #define __SCOTCH_PARTITIONER_H
31 #include <dolfin/common/MPI.h>
32 #include <dolfin/common/Set.h>
64 const MPI_Comm mpi_comm,
65 std::vector<int>& cell_partition,
66 std::map<std::int64_t, std::vector<int>>& ghost_procs,
67 const boost::multi_array<std::int64_t, 2>& cell_vertices,
68 const std::vector<std::size_t>& cell_weight,
69 const std::int64_t num_global_vertices,
70 const std::int64_t num_global_cells,
82 std::size_t num_passes=5);
91 static std::vector<int>
93 std::string scotch_strategy=
"");
102 std::vector<int>& permutation,
103 std::vector<int>& inverse_permutation,
104 std::string scotch_strategy=
"");
112 static void partition(
113 const MPI_Comm mpi_comm,
115 const std::vector<std::size_t>& node_weights,
116 const std::set<std::int64_t>& ghost_vertices,
117 const std::size_t num_global_vertices,
118 std::vector<int>& cell_partition,
119 std::map<std::int64_t, std::vector<int>>& ghost_procs);