diff --git a/bfps/cpp/particles/field_accessor.hpp b/bfps/cpp/particles/field_accessor.hpp
index 35cb126c9a67557ca0ed4c65733377036b2348f0..bb4fae763a6a65f7d17fb88d85b9d31a45d48a18 100644
--- a/bfps/cpp/particles/field_accessor.hpp
+++ b/bfps/cpp/particles/field_accessor.hpp
@@ -27,7 +27,7 @@ public:
     ~field_accessor(){}
 
     const real_number& getValue(const size_t in_index, const int in_dim) const {
-        assert(in_index < local_field_dims[0]*local_field_dims[1]*local_field_dims[2]);
+        assert(in_index < field_memory_dims[0]*field_memory_dims[1]*field_memory_dims[2]);
         return field_date[in_index*nb_dim + in_dim];
     }
 
diff --git a/bfps/cpp/particles/particles_field_computer.hpp b/bfps/cpp/particles/particles_field_computer.hpp
index 1e39d63a62049c40d7f58fa6b19d46b845e78d52..96e9a1e9d6fb411ef899aa6eb9b53469ffa8e225 100644
--- a/bfps/cpp/particles/particles_field_computer.hpp
+++ b/bfps/cpp/particles/particles_field_computer.hpp
@@ -40,7 +40,7 @@ class particles_field_computer : public abstract_particles_distr<real_number, 3,
     real_number get_norm_pos_in_cell(const real_number in_pos, const int idx_pos) const {
         const real_number cell_idx = floor(in_pos/box_step_width[idx_pos]);
         const real_number pos_in_cell = (in_pos - cell_idx*box_step_width[idx_pos]) / box_step_width[idx_pos];
-        assert(0 <= pos_in_cell && pos_in_cell < box_step_width[idx_pos]);
+        assert(0 <= pos_in_cell && pos_in_cell < 1);
         return pos_in_cell;
     }
 
diff --git a/bfps/cpp/particles/particles_system_builder.hpp b/bfps/cpp/particles/particles_system_builder.hpp
index fbde1fa57317a07445f193509e51cc15354f7aab..0542844cfb1f73c40a65e16a06d4b3f991b43662 100644
--- a/bfps/cpp/particles/particles_system_builder.hpp
+++ b/bfps/cpp/particles/particles_system_builder.hpp
@@ -120,11 +120,11 @@ struct particles_system_build_container {
              const std::string& dset_name, // dataset name for initial input
              MPI_Comm mpi_comm){
 
-        // The size of the field grid (global size)
+        // The size of the field grid (global size) all_size seems
         std::array<size_t,3> field_grid_dim;
-        field_grid_dim[IDX_X] = fs_cvorticity->rlayout->all_size[0][IDX_X];// nx
-        field_grid_dim[IDX_Y] = fs_cvorticity->rlayout->all_size[0][IDX_Y];// nx
-        field_grid_dim[IDX_Z] = fs_cvorticity->rlayout->all_size[0][IDX_Z];// nz
+        field_grid_dim[IDX_X] = fs_cvorticity->rlayout->sizes[IDX_X];// nx
+        field_grid_dim[IDX_Y] = fs_cvorticity->rlayout->sizes[IDX_Y];// nx
+        field_grid_dim[IDX_Z] = fs_cvorticity->rlayout->sizes[IDX_Z];// nz
 
         // The size of the local field grid (the field nodes that belong to current process)
         std::array<size_t,3> local_field_dims;
@@ -161,9 +161,9 @@ struct particles_system_build_container {
 
         // The spatial box size (all particles should be included inside)
         std::array<rnumber,3> spatial_box_width;
-        spatial_box_width[IDX_X] = fs_kk->dkx;
-        spatial_box_width[IDX_Y] = fs_kk->dky;
-        spatial_box_width[IDX_Z] = fs_kk->dkz;
+        spatial_box_width[IDX_X] = 4 * acos(0) / (fs_kk->dkx);
+        spatial_box_width[IDX_Y] = 4 * acos(0) / (fs_kk->dky);
+        spatial_box_width[IDX_Z] = 4 * acos(0) / (fs_kk->dkz);
 
         // The distance between two field nodes in z
         std::array<rnumber,3> spatial_partition_width;
diff --git a/bfps/cpp/particles/particles_utils.hpp b/bfps/cpp/particles/particles_utils.hpp
index eb89520e0966848a5f9e7af295fcc734e6a87c36..ae6ba904571c6f1a9fcd7b2aa59916d4d4a446a0 100644
--- a/bfps/cpp/particles/particles_utils.hpp
+++ b/bfps/cpp/particles/particles_utils.hpp
@@ -181,7 +181,7 @@ public:
         else{
             step_split = double(nb_items)/double(nb_intervals);
             offset_mine = NumType(step_split*double(my_idx));
-            size_mine = NumType(step_split*double(my_idx+1)-step_split*double(my_idx));
+            size_mine = NumType(step_split*double(my_idx+1))-offset_mine;
             assert(my_idx != nb_intervals-1 || (offset_mine+size_mine) == nb_items);
         }
     }