diff --git a/src/mesh/GmshReader.cpp b/src/mesh/GmshReader.cpp index e599ea8083c4d0a25471fab73c22192c1478af50..5b9e6516449ae6b29f827b9f0f2287357716263a 100644 --- a/src/mesh/GmshReader.cpp +++ b/src/mesh/GmshReader.cpp @@ -309,10 +309,37 @@ GmshReader::GmshReader(const std::string& filename) CSRGraph mesh_graph; if (commRank() == 0) { mesh_graph = m_mesh->cellToCellGraph(); - } - Partitioner P; - Array<int> new_cell_owner = P.partition(mesh_graph); + CellValue<int> cell_parts; + switch(m_mesh->meshDimension()) + { + case 1: { + Mesh<Connectivity1D>& mesh = dynamic_cast<Mesh<Connectivity1D>&>(*m_mesh); + CellValue<int> mesh_cell_parts(mesh.connectivity()); + cell_parts = mesh_cell_parts; + break; + } + case 2: { + Mesh<Connectivity2D>& mesh = dynamic_cast<Mesh<Connectivity2D>&>(*m_mesh); + CellValue<int> mesh_cell_parts(mesh.connectivity()); + cell_parts = mesh_cell_parts; + break; + } + case 3: { + Mesh<Connectivity3D>& mesh = dynamic_cast<Mesh<Connectivity3D>&>(*m_mesh); + CellValue<int> mesh_cell_parts(mesh.connectivity()); + cell_parts = mesh_cell_parts; + break; + } + default:{ + perr() << "unexpected mesh dimension\n"; + Messenger::destroy(); + std::exit(1); + } + } + Partitioner P; + cell_parts = P.partition(mesh_graph); + } Messenger::destroy(); std::exit(0);