diff options
Diffstat (limited to 'Source/Particles')
-rw-r--r-- | Source/Particles/ParticleBoundaryBuffer.H | 1 | ||||
-rw-r--r-- | Source/Particles/ParticleBoundaryBuffer.cpp | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/Source/Particles/ParticleBoundaryBuffer.H b/Source/Particles/ParticleBoundaryBuffer.H index e2c9264f8..d2ac9f035 100644 --- a/Source/Particles/ParticleBoundaryBuffer.H +++ b/Source/Particles/ParticleBoundaryBuffer.H @@ -36,6 +36,7 @@ public: void gatherParticles (MultiParticleContainer& mypc, const amrex::Vector<const amrex::MultiFab*>& distance_to_eb); + void redistribute (); void clearParticles (); void printNumParticles () const; diff --git a/Source/Particles/ParticleBoundaryBuffer.cpp b/Source/Particles/ParticleBoundaryBuffer.cpp index 16465ac76..64efcefeb 100644 --- a/Source/Particles/ParticleBoundaryBuffer.cpp +++ b/Source/Particles/ParticleBoundaryBuffer.cpp @@ -112,6 +112,20 @@ void ParticleBoundaryBuffer::printNumParticles () const { #endif } +void ParticleBoundaryBuffer::redistribute () { + for (int i = 0; i < numBoundaries(); ++i) + { + auto& buffer = m_particle_containers[i]; + for (int ispecies = 0; ispecies < numSpecies(); ++ispecies) + { + auto& species_buffer = buffer[ispecies]; + if (species_buffer.isDefined()) { + species_buffer.Redistribute(); + } + } + } +} + void ParticleBoundaryBuffer::clearParticles () { for (int i = 0; i < numBoundaries(); ++i) { |