ImpactX
Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
impactx::diagnostics::detail::ImpactXParticleCounter Class Reference

#include <openPMD.H>

Public Types

using ParticleContainer = typename ImpactXParticleContainer::ContainerLike< amrex::PinnedArenaAllocator >
 
using ParticleIter = typename ParticleContainer::ParIterType
 

Public Member Functions

 ImpactXParticleCounter (ParticleContainer &pc)
 
unsigned long GetTotalNumParticles ()
 

Public Attributes

std::vector< unsigned long long > m_ParticleOffsetAtRank
 
std::vector< unsigned long long > m_ParticleSizeAtRank
 

Private Member Functions

void GetParticleOffsetOfProcessor (const long &numParticles, unsigned long long &offset, unsigned long long &sum) const
 

Private Attributes

int m_MPIRank = 0
 
int m_MPISize = 1
 
unsigned long long m_Total = 0
 
std::vector< unsigned long long > m_ParticleCounterByLevel
 

Member Typedef Documentation

◆ ParticleContainer

◆ ParticleIter

using impactx::diagnostics::detail::ImpactXParticleCounter::ParticleIter = typename ParticleContainer::ParIterType

Constructor & Destructor Documentation

◆ ImpactXParticleCounter()

impactx::diagnostics::detail::ImpactXParticleCounter::ImpactXParticleCounter ( ParticleContainer pc)

Member Function Documentation

◆ GetParticleOffsetOfProcessor()

void impactx::diagnostics::detail::ImpactXParticleCounter::GetParticleOffsetOfProcessor ( const long &  numParticles,
unsigned long long &  offset,
unsigned long long &  sum 
) const
private

get the offset in the overall particle id collection

Parameters
[out]numParticlesparticles on this processor / amrex fab
[out]offsetparticle offset over all, mpi-global amrex fabs
[out]sumnumber of all particles from all amrex fabs

◆ GetTotalNumParticles()

unsigned long impactx::diagnostics::detail::ImpactXParticleCounter::GetTotalNumParticles ( )
inline

Member Data Documentation

◆ m_MPIRank

int impactx::diagnostics::detail::ImpactXParticleCounter::m_MPIRank = 0
private

◆ m_MPISize

int impactx::diagnostics::detail::ImpactXParticleCounter::m_MPISize = 1
private

◆ m_ParticleCounterByLevel

std::vector<unsigned long long> impactx::diagnostics::detail::ImpactXParticleCounter::m_ParticleCounterByLevel
private

◆ m_ParticleOffsetAtRank

std::vector<unsigned long long> impactx::diagnostics::detail::ImpactXParticleCounter::m_ParticleOffsetAtRank

◆ m_ParticleSizeAtRank

std::vector<unsigned long long> impactx::diagnostics::detail::ImpactXParticleCounter::m_ParticleSizeAtRank

◆ m_Total

unsigned long long impactx::diagnostics::detail::ImpactXParticleCounter::m_Total = 0
private

The documentation for this class was generated from the following files: