chombo-discharge
|
Implementation of CD_ParticleManagement.H. More...
#include <utility>
#include <type_traits>
#include <CH_Timer.H>
#include <CD_Random.H>
#include <CD_ParticleManagement.H>
#include <CD_NamespaceHeader.H>
#include <CD_NamespaceFooter.H>
Go to the source code of this file.
Namespaces | |
ParticleManagement | |
Namespace for various particle management tools. | |
Functions | |
template<class P , Real &(P::*)() weight, const RealVect &(P::*)() const position> | |
std::vector< std::shared_ptr< KDNode< P > > > | ParticleManagement::recursivePartitionAndSplitEqualWeightKD (typename KDNode< P >::ParticleList &a_inputParticles, const int a_maxLeaves, const BinaryParticleReconcile< P > a_particleReconcile) noexcept |
Recursively build a KD-tree following the "equal weight" principle when partitioning nodes. More... | |
template<typename P , typename T , typename > | |
void | ParticleManagement::removePhysicalParticles (List< P > &a_particles, const T a_numPhysPartToRemove) noexcept |
Remove physical particles from the input particles. More... | |
template<typename P > | |
void | ParticleManagement::deleteParticles (List< P > &a_particles, const Real a_weightThresh) noexcept |
Remove particles if their weight is below the input weight. More... | |
template<typename T , typename > | |
std::vector< T > | ParticleManagement::partitionParticleWeights (const T a_numPhysicalParticles, const T a_maxCompParticles) noexcept |
Partition particle weights among a number of computational particles. More... | |
template<typename T , typename > | |
T | ParticleManagement::partitionParticles (const T a_numParticles) |
Partition particles so that all MPI rank draw a cumulative number of particles equal to a_numParticles. More... | |
template<typename P , typename T , typename > | |
void | ParticleManagement::drawRandomParticles (List< P > &a_particles, const T a_numParticles, const std::function< RealVect()> &a_distribution) |
Draw a specified number of random particles distributed according to a predefined distribution. More... | |
template<typename P , typename T , typename > | |
void | ParticleManagement::drawSphereParticles (List< P > &a_particles, const T a_numParticles, const RealVect a_center, const Real a_radius) noexcept |
Draw particles in a sphere. More... | |
template<typename P , typename T , typename > | |
void | ParticleManagement::drawBoxParticles (List< P > &a_particles, const T a_numParticles, const RealVect a_loCorner, const RealVect a_hiCorner) noexcept |
Draw particles in a box. More... | |
template<typename P , typename T , typename > | |
void | ParticleManagement::drawGaussianParticles (List< P > &a_particles, const T a_numParticles, const RealVect a_center, const Real a_radius) noexcept |
Draw particles from a Gaussian distribution. More... | |
Implementation of CD_ParticleManagement.H.