Skip to content
Snippets Groups Projects
Commit ff39e098 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Compute and print new node owners

parent 6b46efd4
No related branches found
No related tags found
1 merge request!11Feature/mpi
......@@ -177,10 +177,28 @@ void GmshReader::_dispatch()
Partitioner P;
Array<int> cell_new_owner = broadcast(P.partition(mesh_graph), reader_rank);
Array<int> node_new_owner(mesh.numberOfNodes());
if (commRank() == reader_rank) {
const auto& node_to_cell_matrix = mesh.connectivity().nodeToCellMatrix();
parallel_for(mesh.numberOfNodes(), PASTIS_LAMBDA(const NodeId& r) {
const auto& node_cells = node_to_cell_matrix[r];
int new_owner = cell_new_owner[node_cells[0]];
for (size_t j=1; j<node_cells.size(); ++j) {
const int cell_owner = cell_new_owner[node_cells[j]];
if (new_owner < cell_owner) {
new_owner = cell_owner;
}
}
node_new_owner[r] = new_owner;
});
}
node_new_owner = broadcast(node_new_owner, reader_rank);
for (int i_rank=0; i_rank<commSize(); ++i_rank) {
if (commRank() == i_rank) {
size_t cpt=0;
std::cout << i_rank << " -> ";
std::cout << i_rank << " cells -> ";
for (size_t i=0; i<cell_new_owner.size(); ++i) {
if (commRank() == cell_new_owner[i]) {
std::cout << i << ' ';
......@@ -192,6 +210,21 @@ void GmshReader::_dispatch()
barrier();
}
for (int i_rank=0; i_rank<commSize(); ++i_rank) {
if (commRank() == i_rank) {
size_t cpt=0;
std::cout << i_rank << " nodes -> ";
for (size_t i=0; i<node_new_owner.size(); ++i) {
if (commRank() == node_new_owner[i]) {
std::cout << i << ' ';
cpt++;
}
}
std::cout << " [" << cpt << "]\n" << std::flush;
}
barrier();
}
Messenger::destroy();
std::exit(0);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment