From c103f7e85029813f8575a37042f7d8fb344c8864 Mon Sep 17 00:00:00 2001
From: Matthieu Schaller <schaller@strw.leidenuniv.nl>
Date: Tue, 15 Jan 2019 13:49:11 +0800
Subject: [PATCH] Do not count the particles in the leaves when looking for the
 number of foreign particles to allocate.

---
 src/cell.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/cell.c b/src/cell.c
index 0d553f5e69..55c1ec4950 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -224,9 +224,10 @@ int cell_link_foreign_parts(struct cell *c, struct part *parts) {
         count += cell_link_foreign_parts(c->progeny[k], &parts[count]);
       }
     }
+    return count;
+  } else {
+    return 0;
   }
-
-  return c->hydro.count;
 }
 
 /**
@@ -249,7 +250,7 @@ int cell_link_foreign_gparts(struct cell *c, struct gpart *gparts) {
   /* Do we have a hydro task at this level? */
   if (c->grav.grav != NULL) {
 
-    /* Recursively attach the parts */
+    /* Recursively attach the gparts */
     const int counts = cell_link_gparts(c, gparts);
 #ifdef SWIFT_DEBUG_CHECKS
     if (counts != c->grav.count)
@@ -266,9 +267,10 @@ int cell_link_foreign_gparts(struct cell *c, struct gpart *gparts) {
         count += cell_link_foreign_gparts(c->progeny[k], &gparts[count]);
       }
     }
+    return count;
+  } else {
+    return 0;
   }
-
-  return c->grav.count;
 }
 
 /**
@@ -298,9 +300,10 @@ int cell_count_parts_for_tasks(const struct cell *c) {
         count += cell_count_parts_for_tasks(c->progeny[k]);
       }
     }
+    return count;
+  } else {
+    return 0;
   }
-
-  return c->hydro.count;
 }
 
 /**
@@ -330,9 +333,10 @@ int cell_count_gparts_for_tasks(const struct cell *c) {
         count += cell_count_gparts_for_tasks(c->progeny[k]);
       }
     }
+    return count;
+  } else {
+    return 0;
   }
-
-  return c->grav.count;
 }
 
 /**
-- 
GitLab