From 46f6d8796614c86c9a587c00b04f4d1b3dec9c19 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti <rafaelravedutti@gmail.com> Date: Fri, 15 Dec 2023 18:58:00 +0100 Subject: [PATCH] Always put particles into closest valid cell Signed-off-by: Rafael Ravedutti <rafaelravedutti@gmail.com> --- runtime/copper_fcc_lattice.hpp | 1 - src/pairs/sim/cell_lists.py | 6 ++++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/runtime/copper_fcc_lattice.hpp b/runtime/copper_fcc_lattice.hpp index c883d65..48fec71 100644 --- a/runtime/copper_fcc_lattice.hpp +++ b/runtime/copper_fcc_lattice.hpp @@ -1,6 +1,5 @@ #include <iostream> #include <math.h> -#include <mpi.h> //--- #include "pairs.hpp" diff --git a/src/pairs/sim/cell_lists.py b/src/pairs/sim/cell_lists.py index bf1beec..c64e81f 100644 --- a/src/pairs/sim/cell_lists.py +++ b/src/pairs/sim/cell_lists.py @@ -9,6 +9,7 @@ from pairs.ir.cast import Cast from pairs.ir.loops import For, ParticleFor, While from pairs.ir.math import Ceil from pairs.ir.scalars import ScalarOp +from pairs.ir.select import Select from pairs.ir.types import Types from pairs.ir.utils import Print from pairs.sim.flags import Flags @@ -116,8 +117,9 @@ class BuildCellLists(Lowerable): index = None for dim in range(self.sim.ndims()): - index = cell_index[dim] if index is None \ - else index * dim_ncells[dim] + cell_index[dim] + dcell = Select(self.sim, cell_index[dim] >= 0, cell_index[dim], 0) + dcell = Select(self.sim, dcell < dim_ncells[dim], dcell, dim_ncells[dim] - 1) + index = dcell if index is None else index * dim_ncells[dim] + dcell Assign(self.sim, flat_index, index + 1) -- GitLab