diff --git a/bfps/cpp/particles/particles_distr_mpi.hpp b/bfps/cpp/particles/particles_distr_mpi.hpp
index bd77162eb42c9589c25705de0deceeb87ee99bd5..85f4f416b89ea2ee38ea62bcbb1ff3bfcd7395ae 100644
--- a/bfps/cpp/particles/particles_distr_mpi.hpp
+++ b/bfps/cpp/particles/particles_distr_mpi.hpp
@@ -517,6 +517,19 @@ public:
             return;
         }
 
+        {// TODO remove
+            partsize_t partOffset = 0;
+            for(int idxPartition = 0 ; idxPartition < current_partition_size ; ++idxPartition){
+                for(partsize_t idx = 0 ; idx < current_my_nb_particles_per_partition[idxPartition] ; ++idx){
+                    const int partition_level = in_computer.pbc_field_layer((*inout_positions_particles)[(idx+partOffset)*size_particle_positions+IDX_Z], IDX_Z);
+                    assert(partition_level == current_partition_interval.first + idxPartition
+                           || partition_level == (current_partition_interval.first + idxPartition-1+int(field_grid_dim[IDX_Z]))%int(field_grid_dim[IDX_Z])
+                           || partition_level == (current_partition_interval.first + idxPartition+1)%int(field_grid_dim[IDX_Z]));
+                }
+                partOffset += current_my_nb_particles_per_partition[idxPartition];
+            }
+        }
+
         current_offset_particles_for_partition[0] = 0;
         partsize_t myTotalNbParticles = 0;
         for(int idxPartition = 0 ; idxPartition < current_partition_size ; ++idxPartition){