OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Member Functions | Private Member Functions | Private Attributes | List of all members
DistributionMoments Class Reference

#include <DistributionMoments.h>

Collaboration diagram for DistributionMoments:
Collaboration graph
[legend]

Public Member Functions

 DistributionMoments ()
 
void compute (const std::vector< OpalParticle >::const_iterator &, const std::vector< OpalParticle >::const_iterator &)
 
void compute (PartBunchBase< double, 3 > const &)
 
void computeMeanKineticEnergy (PartBunchBase< double, 3 > const &)
 
Vector_t getMeanPosition () const
 
Vector_t getStandardDeviationPosition () const
 
Vector_t getMeanMomentum () const
 
Vector_t getStandardDeviationMomentum () const
 
Vector_t getNormalizedEmittance () const
 
Vector_t getGeometricEmittance () const
 
Vector_t getStandardDeviationRP () const
 
Vector_t getHalo () const
 
double getMeanTime () const
 
double getStdTime () const
 
double getMeanGamma () const
 
double getMeanKineticEnergy () const
 
double getStdKineticEnergy () const
 
double getDx () const
 
double getDDx () const
 
double getDy () const
 
double getDDy () const
 
double getTotalCharge () const
 
double getTotalMass () const
 
double getTotalNumParticles () const
 

Private Member Functions

bool isParticleExcluded (const OpalParticle &) const
 
template<class InputIt >
void computeMeans (const InputIt &, const InputIt &)
 
template<class InputIt >
void computeStatistics (const InputIt &, const InputIt &)
 
void fillMembers (std::vector< double > const &)
 
void reset ()
 

Private Attributes

Vector_t meanR_m
 
Vector_t meanP_m
 
Vector_t stdR_m
 
Vector_t stdP_m
 
Vector_t stdRP_m
 
Vector_t normalizedEps_m
 
Vector_t geometricEps_m
 
Vector_t halo_m
 
double meanTime_m
 
double stdTime_m
 
double meanKineticEnergy_m
 
double stdKineticEnergy_m
 
double meanGamma_m
 
double Dx_m
 
double DDx_m
 
double Dy_m
 
double DDy_m
 
double centroid_m [6]
 
FMatrix< double, 6, 6 > moments_m
 
double totalCharge_m
 
double totalMass_m
 
unsigned int totalNumParticles_m
 

Detailed Description

Definition at line 31 of file DistributionMoments.h.

Constructor & Destructor Documentation

◆ DistributionMoments()

DistributionMoments::DistributionMoments ( )

Definition at line 31 of file DistributionMoments.cpp.

References reset().

Here is the call graph for this function:

Member Function Documentation

◆ compute() [1/2]

void DistributionMoments::compute ( const std::vector< OpalParticle >::const_iterator &  first,
const std::vector< OpalParticle >::const_iterator &  last 
)

Definition at line 41 of file DistributionMoments.cpp.

References computeStatistics().

Referenced by LossDataSink::saveH5().

Here is the call graph for this function:

◆ compute() [2/2]

void DistributionMoments::compute ( PartBunchBase< double, 3 > const &  bunch)

Definition at line 36 of file DistributionMoments.cpp.

References PartBunchBase< T, Dim >::begin(), computeStatistics(), and PartBunchBase< T, Dim >::end().

Here is the call graph for this function:

◆ computeMeanKineticEnergy()

void DistributionMoments::computeMeanKineticEnergy ( PartBunchBase< double, 3 > const &  bunch)

Definition at line 190 of file DistributionMoments.cpp.

References allreduce(), Util::getKineticEnergy(), PartBunchBase< T, Dim >::getLocalNum(), and meanKineticEnergy_m.

Here is the call graph for this function:

◆ computeMeans()

template<class InputIt >
void DistributionMoments::computeMeans ( const InputIt &  first,
const InputIt &  last 
)
private

◆ computeStatistics()

template<class InputIt >
void DistributionMoments::computeStatistics ( const InputIt &  first,
const InputIt &  last 
)
private

◆ fillMembers()

void DistributionMoments::fillMembers ( std::vector< double > const &  localMoments)
private

◆ getDDx()

double DistributionMoments::getDDx ( ) const
inline

Definition at line 180 of file DistributionMoments.h.

References DDx_m.

◆ getDDy()

double DistributionMoments::getDDy ( ) const
inline

Definition at line 192 of file DistributionMoments.h.

References DDy_m.

◆ getDx()

double DistributionMoments::getDx ( ) const
inline

Definition at line 174 of file DistributionMoments.h.

References Dx_m.

◆ getDy()

double DistributionMoments::getDy ( ) const
inline

Definition at line 186 of file DistributionMoments.h.

References Dy_m.

◆ getGeometricEmittance()

Vector_t DistributionMoments::getGeometricEmittance ( ) const
inline

Definition at line 126 of file DistributionMoments.h.

References geometricEps_m.

Referenced by LossDataSink::saveH5().

◆ getHalo()

Vector_t DistributionMoments::getHalo ( ) const
inline

Definition at line 138 of file DistributionMoments.h.

References halo_m.

◆ getMeanGamma()

double DistributionMoments::getMeanGamma ( ) const
inline

Definition at line 156 of file DistributionMoments.h.

References meanGamma_m.

◆ getMeanKineticEnergy()

double DistributionMoments::getMeanKineticEnergy ( ) const
inline

Definition at line 162 of file DistributionMoments.h.

References meanKineticEnergy_m.

Referenced by LossDataSink::saveH5().

◆ getMeanMomentum()

Vector_t DistributionMoments::getMeanMomentum ( ) const
inline

Definition at line 108 of file DistributionMoments.h.

References meanP_m.

Referenced by LossDataSink::saveH5().

◆ getMeanPosition()

Vector_t DistributionMoments::getMeanPosition ( ) const
inline

Definition at line 96 of file DistributionMoments.h.

References meanR_m.

Referenced by LossDataSink::saveH5().

◆ getMeanTime()

double DistributionMoments::getMeanTime ( ) const
inline

Definition at line 144 of file DistributionMoments.h.

References meanTime_m.

Referenced by LossDataSink::saveH5().

◆ getNormalizedEmittance()

Vector_t DistributionMoments::getNormalizedEmittance ( ) const
inline

Definition at line 120 of file DistributionMoments.h.

References normalizedEps_m.

Referenced by LossDataSink::saveH5().

◆ getStandardDeviationMomentum()

Vector_t DistributionMoments::getStandardDeviationMomentum ( ) const
inline

Definition at line 114 of file DistributionMoments.h.

References stdP_m.

Referenced by LossDataSink::saveH5().

◆ getStandardDeviationPosition()

Vector_t DistributionMoments::getStandardDeviationPosition ( ) const
inline

Definition at line 102 of file DistributionMoments.h.

References stdR_m.

Referenced by LossDataSink::saveH5().

◆ getStandardDeviationRP()

Vector_t DistributionMoments::getStandardDeviationRP ( ) const
inline

Definition at line 132 of file DistributionMoments.h.

References stdRP_m.

◆ getStdKineticEnergy()

double DistributionMoments::getStdKineticEnergy ( ) const
inline

Definition at line 168 of file DistributionMoments.h.

References stdKineticEnergy_m.

Referenced by LossDataSink::saveH5().

◆ getStdTime()

double DistributionMoments::getStdTime ( ) const
inline

Definition at line 150 of file DistributionMoments.h.

References stdTime_m.

Referenced by LossDataSink::saveH5().

◆ getTotalCharge()

double DistributionMoments::getTotalCharge ( ) const
inline

Definition at line 198 of file DistributionMoments.h.

References totalCharge_m.

Referenced by LossDataSink::saveH5().

◆ getTotalMass()

double DistributionMoments::getTotalMass ( ) const
inline

Definition at line 204 of file DistributionMoments.h.

References totalMass_m.

Referenced by LossDataSink::saveH5().

◆ getTotalNumParticles()

double DistributionMoments::getTotalNumParticles ( ) const
inline

Definition at line 210 of file DistributionMoments.h.

References totalNumParticles_m.

◆ isParticleExcluded()

bool DistributionMoments::isParticleExcluded ( const OpalParticle particle) const
private

Definition at line 227 of file DistributionMoments.cpp.

References Options::amr, OpalParticle::getId(), OpalData::getInstance(), and OpalData::isInOPALCyclMode().

Referenced by computeMeans(), and computeStatistics().

Here is the call graph for this function:

◆ reset()

void DistributionMoments::reset ( )
private

Member Data Documentation

◆ centroid_m

double DistributionMoments::centroid_m[6]
private

Definition at line 87 of file DistributionMoments.h.

Referenced by computeMeans(), computeStatistics(), fillMembers(), and reset().

◆ DDx_m

double DistributionMoments::DDx_m
private

Definition at line 84 of file DistributionMoments.h.

Referenced by getDDx(), and reset().

◆ DDy_m

double DistributionMoments::DDy_m
private

Definition at line 86 of file DistributionMoments.h.

Referenced by getDDy(), and reset().

◆ Dx_m

double DistributionMoments::Dx_m
private

Definition at line 83 of file DistributionMoments.h.

Referenced by getDx(), and reset().

◆ Dy_m

double DistributionMoments::Dy_m
private

Definition at line 85 of file DistributionMoments.h.

Referenced by getDy(), and reset().

◆ geometricEps_m

Vector_t DistributionMoments::geometricEps_m
private

Definition at line 75 of file DistributionMoments.h.

Referenced by fillMembers(), getGeometricEmittance(), and reset().

◆ halo_m

Vector_t DistributionMoments::halo_m
private

Definition at line 76 of file DistributionMoments.h.

Referenced by fillMembers(), getHalo(), and reset().

◆ meanGamma_m

double DistributionMoments::meanGamma_m
private

Definition at line 82 of file DistributionMoments.h.

Referenced by computeMeans(), fillMembers(), and getMeanGamma().

◆ meanKineticEnergy_m

double DistributionMoments::meanKineticEnergy_m
private

◆ meanP_m

Vector_t DistributionMoments::meanP_m
private

Definition at line 70 of file DistributionMoments.h.

Referenced by computeMeans(), fillMembers(), getMeanMomentum(), and reset().

◆ meanR_m

Vector_t DistributionMoments::meanR_m
private

Definition at line 69 of file DistributionMoments.h.

Referenced by computeMeans(), fillMembers(), getMeanPosition(), and reset().

◆ meanTime_m

double DistributionMoments::meanTime_m
private

Definition at line 78 of file DistributionMoments.h.

Referenced by computeMeans(), computeStatistics(), and getMeanTime().

◆ moments_m

FMatrix<double, 6, 6> DistributionMoments::moments_m
private

Definition at line 88 of file DistributionMoments.h.

Referenced by fillMembers(), and reset().

◆ normalizedEps_m

Vector_t DistributionMoments::normalizedEps_m
private

Definition at line 74 of file DistributionMoments.h.

Referenced by fillMembers(), getNormalizedEmittance(), and reset().

◆ stdKineticEnergy_m

double DistributionMoments::stdKineticEnergy_m
private

Definition at line 81 of file DistributionMoments.h.

Referenced by fillMembers(), getStdKineticEnergy(), and reset().

◆ stdP_m

Vector_t DistributionMoments::stdP_m
private

Definition at line 72 of file DistributionMoments.h.

Referenced by fillMembers(), getStandardDeviationMomentum(), and reset().

◆ stdR_m

Vector_t DistributionMoments::stdR_m
private

Definition at line 71 of file DistributionMoments.h.

Referenced by fillMembers(), getStandardDeviationPosition(), and reset().

◆ stdRP_m

Vector_t DistributionMoments::stdRP_m
private

Definition at line 73 of file DistributionMoments.h.

Referenced by fillMembers(), getStandardDeviationRP(), and reset().

◆ stdTime_m

double DistributionMoments::stdTime_m
private

Definition at line 79 of file DistributionMoments.h.

Referenced by fillMembers(), and getStdTime().

◆ totalCharge_m

double DistributionMoments::totalCharge_m
private

Definition at line 90 of file DistributionMoments.h.

Referenced by fillMembers(), getTotalCharge(), and reset().

◆ totalMass_m

double DistributionMoments::totalMass_m
private

Definition at line 91 of file DistributionMoments.h.

Referenced by fillMembers(), getTotalMass(), and reset().

◆ totalNumParticles_m

unsigned int DistributionMoments::totalNumParticles_m
private

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