From 3b98e7355dc57fe1306be7f94b51b94f349730a3 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Sun, 2 Feb 2025 18:32:45 +0100
Subject: [PATCH] Add missing MPI_Comm_free

---
 src/utils/ParMETISPartitioner.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/utils/ParMETISPartitioner.cpp b/src/utils/ParMETISPartitioner.cpp
index 06feb9b25..93018f44e 100644
--- a/src/utils/ParMETISPartitioner.cpp
+++ b/src/utils/ParMETISPartitioner.cpp
@@ -27,10 +27,8 @@ ParMETISPartitioner::partition(const CRSGraph& graph)
   std::vector<float> ubvec{1.05};
   std::vector<int> options{1, 0, 0};
   int edgecut = 0;
-  Array<int> part(0);
 
   MPI_Group world_group;
-
   MPI_Comm_group(parallel::Messenger::getInstance().comm(), &world_group);
 
   MPI_Group mesh_group;
@@ -53,8 +51,9 @@ ParMETISPartitioner::partition(const CRSGraph& graph)
 
   int local_number_of_nodes = graph.numberOfNodes();
 
+  Array<int> partition;
   if (graph.numberOfNodes() > 0) {
-    part = Array<int>(local_number_of_nodes);
+    partition = Array<int>(local_number_of_nodes);
     std::vector<int> vtxdist{0, local_number_of_nodes};
 
     const Array<const int>& entries   = graph.entries();
@@ -65,7 +64,7 @@ ParMETISPartitioner::partition(const CRSGraph& graph)
 
     int result =
       ParMETIS_V3_PartKway(&(vtxdist[0]), entries_ptr, neighbors_ptr, NULL, NULL, &wgtflag, &numflag, &ncon, &npart,
-                           &(tpwgts[0]), &(ubvec[0]), &(options[0]), &edgecut, &(part[0]), &parmetis_comm);
+                           &(tpwgts[0]), &(ubvec[0]), &(options[0]), &edgecut, &(partition[0]), &parmetis_comm);
     // LCOV_EXCL_START
     if (result == METIS_ERROR) {
       throw UnexpectedError("Metis Error");
@@ -76,8 +75,9 @@ ParMETISPartitioner::partition(const CRSGraph& graph)
   }
 
   MPI_Group_free(&mesh_group);
+  MPI_Group_free(&world_group);
 
-  return part;
+  return partition;
 }
 
 #else   // PUGS_HAS_PARMETIS
-- 
GitLab