OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
ParticleContainer< T, Dim > Class Template Reference

#include <ParticleContainer.hpp>

Inheritance diagram for ParticleContainer< T, Dim >:
Collaboration diagram for ParticleContainer< T, Dim >:

Public Types

using bin_index_type = short int
 Defines which type to use as a particle bin.

Public Member Functions

 ParticleContainer (Mesh_t< Dim > &mesh, FieldLayout_t< Dim > &FL)
 ~ParticleContainer ()
void registerAttributes ()
void setupBCs ()
PLayout_t< T, Dim > & getPL ()
void updateMoments ()
Vector_t< double, 3 > getMeanP () const
Vector_t< double, 3 > getRmsP () const
Vector_t< double, 3 > getMeanR () const
Vector_t< double, 3 > getRmsR () const
Vector_t< double, 3 > getRmsRP () const
void computeMinMaxR ()
Vector_t< double, 3 > getMinR () const
Vector_t< double, 3 > getMaxR () const
matrix_t getCovMatrix () const
double getMeanKineticEnergy () const
double getStdKineticEnergy () const
Vector_t< double, 6 > getMeans () const
Vector_t< double, 6 > getCentroid () const
Vector_t< double, 3 > getNormEmit () const
double getDx () const
double getDDx () const
double getDy () const
double getDDy () const
double getDebyeLength () const
double getMeanGammaZ () const
double getTemperature () const
double getPlasmaParameter () const
double computeDebyeLength (double density)

Public Attributes

ippl::ParticleAttrib< double > Q
 charge in [Cb]
ippl::ParticleAttrib< double > M
 mass
ippl::ParticleAttrib< double > dt
 timestep in [s]
ippl::ParticleAttrib< double > Phi
 the scalar potential in [Cb/s]
ippl::ParticleAttrib< bin_index_typeBin
 the energy bin the particle is in
ippl::ParticleAttrib< short > Sp
 the particle specis
Base::particle_position_type P
 particle momenta [\beta\gamma]
Base::particle_position_type E
 electric field at particle position
Base::particle_position_type B
 electric field for gun simulation with bins

Private Types

using Base = ippl::ParticleBase<ippl::ParticleSpatialLayout<T, Dim>>

Private Member Functions

void setBCAllPeriodic ()

Private Attributes

PLayout_t< T, Dimpl_m
DistributionMoments distMoments_m

Detailed Description

template<typename T, unsigned Dim = 3>
class ParticleContainer< T, Dim >

Definition at line 18 of file ParticleContainer.hpp.

Member Typedef Documentation

◆ Base

template<typename T, unsigned Dim = 3>
using ParticleContainer< T, Dim >::Base = ippl::ParticleBase<ippl::ParticleSpatialLayout<T, Dim>>
private

Definition at line 19 of file ParticleContainer.hpp.

◆ bin_index_type

template<typename T, unsigned Dim = 3>
using ParticleContainer< T, Dim >::bin_index_type = short int

Defines which type to use as a particle bin.

Definition at line 23 of file ParticleContainer.hpp.

Constructor & Destructor Documentation

◆ ParticleContainer()

template<typename T, unsigned Dim = 3>
ParticleContainer< T, Dim >::ParticleContainer ( Mesh_t< Dim > & mesh,
FieldLayout_t< Dim > & FL )
inline

Definition at line 56 of file ParticleContainer.hpp.

◆ ~ParticleContainer()

template<typename T, unsigned Dim = 3>
ParticleContainer< T, Dim >::~ParticleContainer ( )
inline

Definition at line 62 of file ParticleContainer.hpp.

Member Function Documentation

◆ computeDebyeLength()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::computeDebyeLength ( double density)
inline

Definition at line 184 of file ParticleContainer.hpp.

◆ computeMinMaxR()

template<typename T, unsigned Dim = 3>
void ParticleContainer< T, Dim >::computeMinMaxR ( )
inline

Definition at line 115 of file ParticleContainer.hpp.

◆ getCentroid()

template<typename T, unsigned Dim = 3>
Vector_t< double, 6 > ParticleContainer< T, Dim >::getCentroid ( ) const
inline

Definition at line 144 of file ParticleContainer.hpp.

◆ getCovMatrix()

template<typename T, unsigned Dim = 3>
matrix_t ParticleContainer< T, Dim >::getCovMatrix ( ) const
inline

Definition at line 128 of file ParticleContainer.hpp.

◆ getDDx()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getDDx ( ) const
inline

Definition at line 156 of file ParticleContainer.hpp.

◆ getDDy()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getDDy ( ) const
inline

Definition at line 164 of file ParticleContainer.hpp.

◆ getDebyeLength()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getDebyeLength ( ) const
inline

Definition at line 168 of file ParticleContainer.hpp.

◆ getDx()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getDx ( ) const
inline

Definition at line 152 of file ParticleContainer.hpp.

◆ getDy()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getDy ( ) const
inline

Definition at line 160 of file ParticleContainer.hpp.

◆ getMaxR()

template<typename T, unsigned Dim = 3>
Vector_t< double, 3 > ParticleContainer< T, Dim >::getMaxR ( ) const
inline

Definition at line 124 of file ParticleContainer.hpp.

◆ getMeanGammaZ()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getMeanGammaZ ( ) const
inline

Definition at line 172 of file ParticleContainer.hpp.

◆ getMeanKineticEnergy()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getMeanKineticEnergy ( ) const
inline

Definition at line 132 of file ParticleContainer.hpp.

◆ getMeanP()

template<typename T, unsigned Dim = 3>
Vector_t< double, 3 > ParticleContainer< T, Dim >::getMeanP ( ) const
inline

Definition at line 95 of file ParticleContainer.hpp.

◆ getMeanR()

template<typename T, unsigned Dim = 3>
Vector_t< double, 3 > ParticleContainer< T, Dim >::getMeanR ( ) const
inline

Definition at line 103 of file ParticleContainer.hpp.

◆ getMeans()

template<typename T, unsigned Dim = 3>
Vector_t< double, 6 > ParticleContainer< T, Dim >::getMeans ( ) const
inline

Definition at line 140 of file ParticleContainer.hpp.

◆ getMinR()

template<typename T, unsigned Dim = 3>
Vector_t< double, 3 > ParticleContainer< T, Dim >::getMinR ( ) const
inline

Definition at line 120 of file ParticleContainer.hpp.

◆ getNormEmit()

template<typename T, unsigned Dim = 3>
Vector_t< double, 3 > ParticleContainer< T, Dim >::getNormEmit ( ) const
inline

Definition at line 148 of file ParticleContainer.hpp.

◆ getPL()

template<typename T, unsigned Dim = 3>
PLayout_t< T, Dim > & ParticleContainer< T, Dim >::getPL ( )
inline

Definition at line 83 of file ParticleContainer.hpp.

◆ getPlasmaParameter()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getPlasmaParameter ( ) const
inline

Definition at line 180 of file ParticleContainer.hpp.

◆ getRmsP()

template<typename T, unsigned Dim = 3>
Vector_t< double, 3 > ParticleContainer< T, Dim >::getRmsP ( ) const
inline

Definition at line 99 of file ParticleContainer.hpp.

◆ getRmsR()

template<typename T, unsigned Dim = 3>
Vector_t< double, 3 > ParticleContainer< T, Dim >::getRmsR ( ) const
inline

Definition at line 107 of file ParticleContainer.hpp.

◆ getRmsRP()

template<typename T, unsigned Dim = 3>
Vector_t< double, 3 > ParticleContainer< T, Dim >::getRmsRP ( ) const
inline

Definition at line 111 of file ParticleContainer.hpp.

◆ getStdKineticEnergy()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getStdKineticEnergy ( ) const
inline

Definition at line 136 of file ParticleContainer.hpp.

◆ getTemperature()

template<typename T, unsigned Dim = 3>
double ParticleContainer< T, Dim >::getTemperature ( ) const
inline

Definition at line 176 of file ParticleContainer.hpp.

◆ registerAttributes()

template<typename T, unsigned Dim = 3>
void ParticleContainer< T, Dim >::registerAttributes ( )
inline

Definition at line 65 of file ParticleContainer.hpp.

Referenced by ParticleContainer< double, 3 >::ParticleContainer().

Here is the caller graph for this function:

◆ setBCAllPeriodic()

template<typename T, unsigned Dim = 3>
void ParticleContainer< T, Dim >::setBCAllPeriodic ( )
inlineprivate

Definition at line 194 of file ParticleContainer.hpp.

Referenced by ParticleContainer< double, 3 >::setupBCs().

Here is the caller graph for this function:

◆ setupBCs()

template<typename T, unsigned Dim = 3>
void ParticleContainer< T, Dim >::setupBCs ( )
inline

Definition at line 79 of file ParticleContainer.hpp.

Referenced by ParticleContainer< double, 3 >::ParticleContainer().

Here is the caller graph for this function:

◆ updateMoments()

template<typename T, unsigned Dim = 3>
void ParticleContainer< T, Dim >::updateMoments ( )
inline

Definition at line 87 of file ParticleContainer.hpp.

Member Data Documentation

◆ B

template<typename T, unsigned Dim = 3>
Base::particle_position_type ParticleContainer< T, Dim >::B

electric field for gun simulation with bins

magnetic field at particle position

Definition at line 54 of file ParticleContainer.hpp.

◆ Bin

template<typename T, unsigned Dim = 3>
ippl::ParticleAttrib<bin_index_type> ParticleContainer< T, Dim >::Bin

the energy bin the particle is in

Definition at line 39 of file ParticleContainer.hpp.

◆ distMoments_m

template<typename T, unsigned Dim = 3>
DistributionMoments ParticleContainer< T, Dim >::distMoments_m
private

Definition at line 200 of file ParticleContainer.hpp.

◆ dt

template<typename T, unsigned Dim = 3>
ippl::ParticleAttrib<double> ParticleContainer< T, Dim >::dt

timestep in [s]

Definition at line 33 of file ParticleContainer.hpp.

◆ E

template<typename T, unsigned Dim = 3>
Base::particle_position_type ParticleContainer< T, Dim >::E

electric field at particle position

Definition at line 48 of file ParticleContainer.hpp.

◆ M

template<typename T, unsigned Dim = 3>
ippl::ParticleAttrib<double> ParticleContainer< T, Dim >::M

mass

Definition at line 30 of file ParticleContainer.hpp.

◆ P

template<typename T, unsigned Dim = 3>
Base::particle_position_type ParticleContainer< T, Dim >::P

particle momenta [\beta\gamma]

Definition at line 45 of file ParticleContainer.hpp.

◆ Phi

template<typename T, unsigned Dim = 3>
ippl::ParticleAttrib<double> ParticleContainer< T, Dim >::Phi

the scalar potential in [Cb/s]

Definition at line 36 of file ParticleContainer.hpp.

◆ pl_m

template<typename T, unsigned Dim = 3>
PLayout_t<T, Dim> ParticleContainer< T, Dim >::pl_m
private

Definition at line 198 of file ParticleContainer.hpp.

◆ Q

template<typename T, unsigned Dim = 3>
ippl::ParticleAttrib<double> ParticleContainer< T, Dim >::Q

charge in [Cb]

Definition at line 27 of file ParticleContainer.hpp.

◆ Sp

template<typename T, unsigned Dim = 3>
ippl::ParticleAttrib<short> ParticleContainer< T, Dim >::Sp

the particle specis

Definition at line 42 of file ParticleContainer.hpp.


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