|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
|
#include <SamplingBase.hpp>


Public Member Functions | |
| SamplingBase (std::shared_ptr< ParticleContainer_t > pc, std::shared_ptr< FieldContainer_t > fc, Distribution_t *dist) | |
| SamplingBase (std::shared_ptr< ParticleContainer_t > pc, std::shared_ptr< FieldContainer_t > fc) | |
| SamplingBase (std::shared_ptr< ParticleContainer_t > pc) | |
| virtual | ~SamplingBase () |
| void | setEmissionOffsets (ippl::Vector< double, 3 > R0, ippl::Vector< double, 3 > P0, double t0, const std::string &emissionModel="NONE") |
| void | setInitialPolarization (const ippl::Vector< double, 3 > &pol) |
| void | fillPolarization (size_t startIdx, size_t count) |
| Vector_t< double, 3 > | getEmissionR0 () const |
| virtual void | generateParticles (size_t &, Vector_t< double, 3 >) |
| virtual void | emitParticles (double, double) |
| virtual bool | isEmissionDone (double t) const |
| Whether this sampler has finished all emission (no more particles will be created). | |
| virtual double | getGlobalTimeShift () const |
| Optional tracker time shift needed before the first emitted particles are born. | |
| virtual bool | hasInitialReferenceMomentum () const |
| Optional initial reference momentum in the source-local frame. | |
| virtual Vector_t< double, 3 > | getInitialReferenceMomentum () const |
| virtual double | getEmissionTimeStep () const |
| Optional OPAL-like tracker time step while this sampler is still emitting. | |
| virtual void | testNumEmitParticles (size_t, double) |
| virtual void | testEmitParticles (size_t, double) |
| virtual void | initDomainDecomp (double) |
| virtual void | setWithDomainDecomp (bool) |
| size_t | computeLocalEmitCount (size_t totalToSample) const |
| Computes the number of particles this rank should emit so that the global total equals totalToSample and no rank exceeds its capacity (space left). | |
Protected Attributes | |
| std::shared_ptr< ParticleContainer_t > | pc_m |
| std::shared_ptr< FieldContainer_t > | fc_m |
| Distribution_t * | opalDist_m = nullptr |
| std::string | samplingMethod_m |
| Vector_t< double, 3 > | R0_m = 0.0 |
| Emission source offset: position R0, momentum P0, start time t0 (applied in sample step). | |
| Vector_t< double, 3 > | P0_m = 0.0 |
| double | t0_m = 0.0 |
| std::string | emissionModel_m = "NONE" |
| Vector_t< double, 3 > | initialPol_m = 0.0 |
| bool | hasEmittedOnce_m = false |
| For one-shot emitters (e.g. Gaussian at delayed t0): guard to avoid double sampling. | |
Definition at line 15 of file SamplingBase.hpp.
|
inline |
Definition at line 36 of file SamplingBase.hpp.
|
inline |
Definition at line 41 of file SamplingBase.hpp.
|
inline |
Definition at line 44 of file SamplingBase.hpp.
|
inlinevirtual |
Definition at line 46 of file SamplingBase.hpp.
| size_t SamplingBase::computeLocalEmitCount | ( | size_t | totalToSample | ) | const |
Computes the number of particles this rank should emit so that the global total equals totalToSample and no rank exceeds its capacity (space left).
| totalToSample | Global number of particles to emit this timestep. |
Definition at line 6 of file SamplingBase.cpp.
References pc_m.
Referenced by FlatTop::countEnteringParticlesPerRank(), FromFile::generateParticles(), Gaussian::generateParticles(), and MultiVariateGaussian::generateParticles().
|
inlinevirtual |
Reimplemented in EmittedFromFile, FlatTop, FromFile, Gaussian, MultiVariateGaussian, and OpalFlatTop.
Definition at line 82 of file SamplingBase.hpp.
|
inline |
Fill the Pol particle attribute with initialPol_m on the half-open range [startIdx, startIdx + count). No-op when the container does not store spin. Must be called after the particles have been created and before they are pushed downstream.
Definition at line 63 of file SamplingBase.hpp.
References initialPol_m, and pc_m.
Referenced by FlatTop::emitParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), and MultiVariateGaussian::generateParticles().
|
inlinevirtual |
Reimplemented in EmittedFromFile, FlatTop, FromFile, Gaussian, MultiVariateGaussian, and OpalFlatTop.
Definition at line 80 of file SamplingBase.hpp.
|
inline |
Definition at line 78 of file SamplingBase.hpp.
References R0_m.
|
inlinevirtual |
Optional OPAL-like tracker time step while this sampler is still emitting.
Reimplemented in EmittedFromFile, and OpalFlatTop.
Definition at line 102 of file SamplingBase.hpp.
|
inlinevirtual |
Optional tracker time shift needed before the first emitted particles are born.
Reimplemented in EmittedFromFile, and OpalFlatTop.
Definition at line 92 of file SamplingBase.hpp.
|
inlinevirtual |
Reimplemented in EmittedFromFile, and OpalFlatTop.
Definition at line 97 of file SamplingBase.hpp.
|
inlinevirtual |
Optional initial reference momentum in the source-local frame.
Reimplemented in EmittedFromFile, and OpalFlatTop.
Definition at line 95 of file SamplingBase.hpp.
|
inlinevirtual |
Reimplemented in FlatTop, and OpalFlatTop.
Definition at line 110 of file SamplingBase.hpp.
|
inlinevirtual |
Whether this sampler has finished all emission (no more particles will be created).
| t | Current simulation time (s). |
Reimplemented in FlatTop, EmittedFromFile, and OpalFlatTop.
Definition at line 86 of file SamplingBase.hpp.
References hasEmittedOnce_m.
|
inline |
|
inline |
Definition at line 57 of file SamplingBase.hpp.
References initialPol_m.
|
inlinevirtual |
Reimplemented in FlatTop, and OpalFlatTop.
Definition at line 112 of file SamplingBase.hpp.
|
inlinevirtual |
Definition at line 108 of file SamplingBase.hpp.
|
inlinevirtual |
Definition at line 105 of file SamplingBase.hpp.
|
protected |
Definition at line 25 of file SamplingBase.hpp.
Referenced by OpalFlatTop::generateLocalParticles(), EmittedFromFile::generateParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), MultiVariateGaussian::generateParticles(), FlatTop::generateUniformDisk(), OpalFlatTop::getInitialReferenceMomentum(), and setEmissionOffsets().
|
protected |
Definition at line 18 of file SamplingBase.hpp.
Referenced by FlatTop::initDomainDecomp(), OpalFlatTop::initDomainDecomp(), FlatTop::setParameters(), and OpalFlatTop::setParameters().
|
protected |
For one-shot emitters (e.g. Gaussian at delayed t0): guard to avoid double sampling.
Definition at line 33 of file SamplingBase.hpp.
Referenced by FromFile::emitParticles(), Gaussian::emitParticles(), MultiVariateGaussian::emitParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), MultiVariateGaussian::generateParticles(), and isEmissionDone().
|
protected |
Initial polarization vector P applied to every particle this sampler creates. Rest-frame Pauli expectations along lab-frame axes; |Pol| in [0, 1]. Ignored when the container does not have a spin attribute (hasSpin() == false).
Definition at line 30 of file SamplingBase.hpp.
Referenced by fillPolarization(), and setInitialPolarization().
|
protected |
Definition at line 19 of file SamplingBase.hpp.
Referenced by EmittedFromFile::buildInventory(), FromFile::emitParticles(), Gaussian::emitParticles(), MultiVariateGaussian::emitParticles(), EmittedFromFile::generateParticles(), MultiVariateGaussian::MultiVariateGaussian(), and FlatTop::setParameters().
|
protected |
Definition at line 23 of file SamplingBase.hpp.
Referenced by EmittedFromFile::buildInventory(), EmittedFromFile::generateLocalParticles(), OpalFlatTop::generateLocalParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), MultiVariateGaussian::generateParticles(), FlatTop::generateUniformDisk(), OpalFlatTop::getInitialReferenceMomentum(), and setEmissionOffsets().
|
protected |
Definition at line 17 of file SamplingBase.hpp.
Referenced by computeLocalEmitCount(), EmittedFromFile::computeLocalEmitRange(), OpalFlatTop::computeLocalEmitRange(), FlatTop::countEnteringParticlesPerRank(), EmittedFromFile::emitParticles(), FlatTop::emitParticles(), FromFile::emitParticles(), Gaussian::emitParticles(), MultiVariateGaussian::emitParticles(), OpalFlatTop::emitParticles(), fillPolarization(), EmittedFromFile::generateLocalParticles(), OpalFlatTop::generateLocalParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), MultiVariateGaussian::generateParticles(), FlatTop::generateUniformDisk(), FlatTop::initDomainDecomp(), OpalFlatTop::initDomainDecomp(), and FlatTop::testNumEmitParticles().
|
protected |
Emission source offset: position R0, momentum P0, start time t0 (applied in sample step).
Definition at line 22 of file SamplingBase.hpp.
Referenced by EmittedFromFile::generateLocalParticles(), OpalFlatTop::generateLocalParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), MultiVariateGaussian::generateParticles(), FlatTop::generateUniformDisk(), getEmissionR0(), and setEmissionOffsets().
|
protected |
Definition at line 20 of file SamplingBase.hpp.
|
protected |
Definition at line 24 of file SamplingBase.hpp.
Referenced by EmittedFromFile::buildInventory(), FlatTop::emitParticles(), FromFile::emitParticles(), Gaussian::emitParticles(), MultiVariateGaussian::emitParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), MultiVariateGaussian::generateParticles(), EmittedFromFile::getGlobalTimeShift(), OpalFlatTop::getGlobalTimeShift(), FlatTop::isEmissionDone(), setEmissionOffsets(), and OpalFlatTop::toBirthTime().