diff --git a/example/Vector/4_multiphase_celllist_verlet/main.cpp b/example/Vector/4_multiphase_celllist_verlet/main.cpp index bf6223ca414c8bd0306cb574606811c2f0b9bb5a..e426b889e26f9aec2d7d4a1a1e8c822a2e9c9809 100644 --- a/example/Vector/4_multiphase_celllist_verlet/main.cpp +++ b/example/Vector/4_multiphase_celllist_verlet/main.cpp @@ -172,7 +172,7 @@ int main(int argc, char* argv[]) //! \cond [count part from phase0 to 1] \endcond // Get an iterator of the particles of the phase0 - auto it = phases.get(0).getDomainIterator(); + it = phases.get(0).getDomainIterator(); // For each particle of the phase0 while (it.isNext()) @@ -314,13 +314,13 @@ int main(int argc, char* argv[]) //! \cond [compute sym multi-phase two phase] \endcond // Get the cell list of the phase1 - auto CL_phase1 = phases.get(1).getCellListSym(r_cut); + CL_phase1 = phases.get(1).getCellListSym(r_cut); // This function create a Verlet-list between phases 0 and 1 - auto NN_ver01 = createVerletSym(phases.get(0),CL_phase1,r_cut); + NN_ver01 = createVerletSym(phases.get(0),CL_phase1,r_cut); // Get an iterator over the real and ghost particles - auto it = phases.get(0).getDomainAndGhostIterator(); + it = phases.get(0).getDomainAndGhostIterator(); // For each particles while (it.isNext()) @@ -338,7 +338,7 @@ int main(int argc, char* argv[]) // Compute interaction from phase0 to phase1 // Get an iterator over the real particles of phase0 - auto it = phases.get(0).getDomainIterator(); + it = phases.get(0).getDomainIterator(); // For each particle of the phase0 while (it.isNext()) @@ -397,7 +397,7 @@ int main(int argc, char* argv[]) //! \cond [create sym multi-phase multi verlet] \endcond // Get an iterator over the phase0 - auto it = phases.get(0).getDomainAndGhostIterator(); + it = phases.get(0).getDomainAndGhostIterator(); // For each particle of the phase 0 while (it.isNext()) @@ -416,7 +416,7 @@ int main(int argc, char* argv[]) } // This function create an "Empty" Multiphase Cell List - auto CL_all = createCellListSymM<2>(phases,r_cut); + CL_all = createCellListSymM<2>(phases,r_cut); // Type of the multiphase Verlet-list typedef decltype(createVerletSymM<2>(phases.get(0),CL_all,r_cut)) verlet_type; @@ -518,7 +518,7 @@ int main(int argc, char* argv[]) current_phase.getProp<0>(p) = 0.0; // Get an iterator of all the particles neighborhood of p - auto Np = CL_all.getNNIterator(NN.getCell(current_phase.getPos(p))); + auto Np = CL_all.getNNIterator(CL_all.getCell(current_phase.getPos(p))); // For each particle near p while (Np.isNext()) diff --git a/openfpm_data b/openfpm_data index 03740810f8972af0b6ec122779d73a44b39cf3cb..ed732d7fe9e9644a9ad49f319923874b0c2c9e78 160000 --- a/openfpm_data +++ b/openfpm_data @@ -1 +1 @@ -Subproject commit 03740810f8972af0b6ec122779d73a44b39cf3cb +Subproject commit ed732d7fe9e9644a9ad49f319923874b0c2c9e78 diff --git a/src/Vector/vector_dist.hpp b/src/Vector/vector_dist.hpp index 64d85b55379a9734fe09c55227645c2b171017e5..ded398c37790ab18cb020533efe4ab45e7b36100 100644 --- a/src/Vector/vector_dist.hpp +++ b/src/Vector/vector_dist.hpp @@ -421,20 +421,7 @@ public: */ template<typename CellL = CellList<dim, St, FAST, shift<dim, St> > > void updateCellList(CellL & cell_list) { - // Clear the cell list from the previous particles - cell_list.clear(); - - // for each particle real and ghost, add the particle to the cell list - auto it = getIterator(); - - while (it.isNext()) - { - auto key = it.get(); - - cell_list.add(this->getPos(key), key.getKey()); - - ++it; - } + populate_cell_list(v_pos,cell_list,g_m,CL_NON_SYMMETRIC); cell_list.set_gm(g_m); } @@ -448,32 +435,7 @@ public: */ template<typename CellL = CellList<dim, St, FAST, shift<dim, St> > > void updateCellListSym(CellL & cell_list) { - // Clear the cell list from the previous particles - cell_list.clear(); - - // for each particle real and ghost, add the particle to the cell list - auto it = getDomainIterator(); - - while (it.isNext()) - { - auto key = it.get(); - - cell_list.addDom(this->getPos(key), key.getKey()); - - ++it; - } - - // for each particle real and ghost, add the particle to the cell list - it = getGhostIterator(); - - while (it.isNext()) - { - auto key = it.get(); - - cell_list.addGhost(this->getPos(key), key.getKey()); - - ++it; - } + populate_cell_list(v_pos,cell_list,g_m,CL_SYMMETRIC); cell_list.set_gm(g_m); } diff --git a/src/Vector/vector_dist_unit_test.hpp b/src/Vector/vector_dist_unit_test.hpp index 866868b36a6b3d2f285a76eccc23ff812164ca92..07b360353afb58a8d2faced5010b340c070c84b6 100644 --- a/src/Vector/vector_dist_unit_test.hpp +++ b/src/Vector/vector_dist_unit_test.hpp @@ -1566,25 +1566,11 @@ BOOST_AUTO_TEST_CASE( vector_dist_ghost_with_ghost_buffering ) auto it2 = vd.getGhostIterator(); bool ret = true; - while (it2.isNext()) - { - auto key = it2.get(); - - ret &= vd.getProp<0>(key) == i; - - ret &= vd.getProp<1>(key) == vd.getPos(key)[0]; - ret &= vd.getProp<2>(key) == vd.getPos(key)[0] * vd.getPos(key)[0]; - - ++it2; - } - - it2 = vd.getGhostIterator(); while (it2.isNext()) { // Particle p auto p = it.get(); - // we shift down he particles ret &= vd.getPos(p)[0] == 10.0; // we shift