Computational Efficiency
I propose a new particle bunch handling that should increase the parallel efficiency by avoiding some MPI communication. In AMR I need to sort the particles according to level and grids in order to deposit the particles to the mesh. Although this sounds expensive, it is only around 1 - 2 percent of the overall computational costs. What if we do a similar thing with particles marked for deletion (that is usually done with PartBunchBase::Bin = -1
). We could put them to the end of the container. This way we could evaluate statistical measures of the bunch by iterating only over the valid particles. The marked particles can later be destroyed in e.g. IpplParticleBase::update
.
This is based on a discussion due to #384 (closed).