chombo-discharge
Namespaces | Functions
CD_ParticleManagementImplem.H File Reference

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>
Include dependency graph for CD_ParticleManagementImplem.H:
This graph shows which files directly or indirectly include this file:

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 >
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...
 

Detailed Description

Implementation of CD_ParticleManagement.H.

Author
Robert Marskar