From fb2f722c7f6174b6948488019ee68e3828e81544 Mon Sep 17 00:00:00 2001 From: Berenger Bramas <bbramas@mpcdf.mpg.de> Date: Thu, 6 Apr 2017 12:26:46 +0200 Subject: [PATCH] Debug -- it succeed to run a simulation but the numerical results have not been checked yet --- bfps/cpp/particles/field_accessor.hpp | 2 +- bfps/cpp/particles/particles_field_computer.hpp | 2 +- bfps/cpp/particles/particles_system_builder.hpp | 14 +++++++------- bfps/cpp/particles/particles_utils.hpp | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bfps/cpp/particles/field_accessor.hpp b/bfps/cpp/particles/field_accessor.hpp index 35cb126c..bb4fae76 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 1e39d63a..96e9a1e9 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 fbde1fa5..0542844c 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 eb89520e..ae6ba904 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); } } -- GitLab