From 21836158056d97a817757d2d9c2c511f4e8c43e4 Mon Sep 17 00:00:00 2001
From: Matthieu Schaller <schaller@strw.leidenuniv.nl>
Date: Fri, 31 May 2019 12:39:41 +0200
Subject: [PATCH] Prevent users from using an FFT mesh with more than 2^31
 cells, which would cause an integer over-flow in the loops.

---
 src/mesh_gravity.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/mesh_gravity.c b/src/mesh_gravity.c
index bf0519842e..9efd8c0396 100644
--- a/src/mesh_gravity.c
+++ b/src/mesh_gravity.c
@@ -624,6 +624,11 @@ void pm_mesh_init(struct pm_mesh* mesh, const struct gravity_props* props,
   mesh->r_cut_max = mesh->r_s * props->r_cut_max_ratio;
   mesh->r_cut_min = mesh->r_s * props->r_cut_min_ratio;
 
+  if (mesh->N > 1290)
+    error(
+        "Mesh too big. The number of cells is larger than 2^31. "
+        "Use a mesh side-length <= 1290.");
+
   if (2. * mesh->r_cut_max > box_size)
     error("Mesh too small or r_cut_max too big for this box size");
 
-- 
GitLab