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

#include <ParallelTTracker.h>

Inheritance diagram for ParallelTTracker:
Inheritance graph
[legend]
Collaboration diagram for ParallelTTracker:
Collaboration graph
[legend]

Public Member Functions

 ParallelTTracker (const Beamline &bl, const PartData &data, bool revBeam, bool revTrack)
 Constructor. More...
 
 ParallelTTracker (const Beamline &bl, PartBunchBase< double, 3 > *bunch, DataSink &ds, const PartData &data, bool revBeam, bool revTrack, const std::vector< unsigned long long > &maxSTEPS, double zstart, const std::vector< double > &zstop, const std::vector< double > &dt)
 Constructor. More...
 
virtual ~ParallelTTracker ()
 
virtual void execute ()
 Apply the algorithm to the top-level beamline. More...
 
virtual void visitBeamline (const Beamline &)
 Apply the algorithm to a beam line. More...
 
virtual void visitCCollimator (const CCollimator &)
 Apply the algorithm to a collimator. More...
 
virtual void visitCorrector (const Corrector &)
 Apply the algorithm to a closed orbit corrector. More...
 
virtual void visitDegrader (const Degrader &)
 Apply the algorithm to a degrader. More...
 
virtual void visitDrift (const Drift &)
 Apply the algorithm to a drift space. More...
 
virtual void visitFlexibleCollimator (const FlexibleCollimator &)
 Apply the algorithm to a flexible collimator. More...
 
virtual void visitMarker (const Marker &)
 Apply the algorithm to a marker. More...
 
virtual void visitMonitor (const Monitor &)
 Apply the algorithm to a beam position monitor. More...
 
virtual void visitMultipole (const Multipole &)
 Apply the algorithm to a multipole. More...
 
virtual void visitMultipoleT (const MultipoleT &)
 Apply the algorithm to an arbitrary multipole. More...
 
virtual void visitProbe (const Probe &)
 Apply the algorithm to a probe. More...
 
virtual void visitRBend (const RBend &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitRBend3D (const RBend3D &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitRFCavity (const RFCavity &)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitSBend (const SBend &)
 Apply the algorithm to a sector bend. More...
 
virtual void visitSeptum (const Septum &)
 Apply the algorithm to a septum. More...
 
virtual void visitSolenoid (const Solenoid &)
 Apply the algorithm to a solenoid. More...
 
virtual void visitSource (const Source &)
 Apply the algorithm to a source. More...
 
virtual void visitTravelingWave (const TravelingWave &)
 Apply the algorithm to a traveling wave. More...
 
virtual void visitVacuum (const Vacuum &)
 Apply the algorithm to a vacuum space. More...
 
- Public Member Functions inherited from Tracker
 Tracker (const Beamline &, const PartData &, bool backBeam, bool backTrack)
 Constructor. More...
 
 Tracker (const Beamline &, PartBunchBase< double, 3 > *bunch, const PartData &, bool backBeam, bool backTrack)
 Constructor. More...
 
virtual ~Tracker ()
 
const PartBunchBase< double, 3 > * getBunch () const
 Return the current bunch. More...
 
void addToBunch (const OpalParticle &)
 Add particle to bunch. More...
 
virtual void visitComponent (const Component &)
 Store the bunch. More...
 
virtual void setNumBunch (short)
 set total number of tracked bunches More...
 
virtual short getNumBunch ()
 get total number of tracked bunches More...
 
- Public Member Functions inherited from AbstractTracker
 AbstractTracker (const Beamline &, const PartData &, bool backBeam, bool backTrack)
 Constructor. More...
 
virtual ~AbstractTracker ()
 
- Public Member Functions inherited from DefaultVisitor
 DefaultVisitor (const Beamline &beamline, bool backBeam, bool backTrack)
 Constructor. More...
 
virtual ~DefaultVisitor ()=0
 
virtual void execute ()
 Apply the algorithm to the top-level beamline. More...
 
virtual void visitBeamline (const Beamline &)
 Apply the algorithm to a beam line. More...
 
virtual void visitCCollimator (const CCollimator &)
 Apply the algorithm to a collimator. More...
 
virtual void visitComponent (const Component &)
 Apply the algorithm to an arbitrary component. More...
 
virtual void visitCorrector (const Corrector &)
 Apply the algorithm to a closed orbit corrector. More...
 
virtual void visitCyclotron (const Cyclotron &)
 Apply the algorithm to an cyclotron. More...
 
virtual void visitDegrader (const Degrader &)
 Apply the algorithm to a degrader. More...
 
virtual void visitDrift (const Drift &)
 Apply the algorithm to a drift space. More...
 
virtual void visitFlaggedElmPtr (const FlaggedElmPtr &)
 Apply the algorithm to a FlaggedElmPtr. More...
 
virtual void visitFlexibleCollimator (const FlexibleCollimator &)
 Apply the algorithm to a flexible collimator. More...
 
virtual void visitMarker (const Marker &)
 Apply the algorithm to a marker. More...
 
virtual void visitMonitor (const Monitor &)
 Apply the algorithm to a beam position monitor. More...
 
virtual void visitMultipole (const Multipole &)
 Apply the algorithm to a multipole. More...
 
virtual void visitMultipoleT (const MultipoleT &)
 Apply the algorithm to to an arbitrary multipole. More...
 
virtual void visitMultipoleTStraight (const MultipoleTStraight &)
 Apply the algorithm to an arbitrary straight multipole. More...
 
virtual void visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &)
 Apply the algorithm to an arbitrary curved multipole of constant radius. More...
 
virtual void visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &)
 Apply the algorithm to an arbitrary curved multipole of variable radius. More...
 
virtual void visitOffset (const Offset &)
 Apply the algorithm to an offset (placement). More...
 
virtual void visitProbe (const Probe &prob)
 Apply the algorithm to a probe. More...
 
virtual void visitRBend (const RBend &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitRBend3D (const RBend3D &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitRFCavity (const RFCavity &)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitRing (const Ring &)
 Apply the algorithm to a ring. More...
 
virtual void visitSBend (const SBend &)
 Apply the algorithm to a sector bend. More...
 
virtual void visitSBend3D (const SBend3D &)
 Apply the algorithm to a sector bend with 3D field map. More...
 
virtual void visitScalingFFAMagnet (const ScalingFFAMagnet &)
 Apply the algorithm to a scaling FFA magnet. More...
 
virtual void visitSeptum (const Septum &)
 Apply the algorithm to a septum. More...
 
virtual void visitSolenoid (const Solenoid &)
 Apply the algorithm to a solenoid. More...
 
virtual void visitSource (const Source &)
 Apply the algorithm to a source. More...
 
virtual void visitStripper (const Stripper &)
 Apply the algorithm to a particle stripper. More...
 
virtual void visitTravelingWave (const TravelingWave &)
 Apply the algorithm to a traveling wave. More...
 
virtual void visitVacuum (const Vacuum &)
 Apply the algorithm to a vacuum space. More...
 
virtual void visitVariableRFCavity (const VariableRFCavity &vcav)
 Apply the algorithm to a a variable RF cavity. More...
 
virtual void visitVariableRFCavityFringeField (const VariableRFCavityFringeField &vcav)
 Apply the algorithm to a a variable RF cavity with Fringe Field. More...
 
virtual void visitVerticalFFAMagnet (const VerticalFFAMagnet &)
 Apply the algorithm to a vertical FFA magnet. More...
 
- Public Member Functions inherited from BeamlineVisitor
 BeamlineVisitor ()
 
virtual ~BeamlineVisitor ()
 
virtual void execute ()=0
 Execute the algorithm on the attached beam line. More...
 
virtual void visitBeamline (const Beamline &)=0
 Apply the algorithm to a beam line. More...
 
virtual void visitCCollimator (const CCollimator &)=0
 Apply the algorithm to a collimator. More...
 
virtual void visitComponent (const Component &)=0
 Apply the algorithm to an arbitrary component. More...
 
virtual void visitCorrector (const Corrector &)=0
 Apply the algorithm to a closed orbit corrector. More...
 
virtual void visitCyclotron (const Cyclotron &)=0
 Apply the algorithm to a cyclotron. More...
 
virtual void visitDegrader (const Degrader &)=0
 Apply the algorithm to a degrader. More...
 
virtual void visitDrift (const Drift &)=0
 Apply the algorithm to a drift space. More...
 
virtual void visitFlaggedElmPtr (const FlaggedElmPtr &)=0
 Apply the algorithm to a FlaggedElmPtr. More...
 
virtual void visitFlexibleCollimator (const FlexibleCollimator &)=0
 Apply the algorithm to a flexible collimator. More...
 
virtual void visitMarker (const Marker &)=0
 Apply the algorithm to a marker. More...
 
virtual void visitMonitor (const Monitor &)=0
 Apply the algorithm to a beam position monitor. More...
 
virtual void visitMultipole (const Multipole &)=0
 Apply the algorithm to a multipole. More...
 
virtual void visitMultipoleT (const MultipoleT &)=0
 Apply the algorithm to an arbitrary multipole. More...
 
virtual void visitMultipoleTStraight (const MultipoleTStraight &)=0
 Apply the algorithm to an arbitrary straight multipole. More...
 
virtual void visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &)=0
 Apply the algorithm to an arbitrary curved multipole of constant radius. More...
 
virtual void visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &)=0
 Apply the algorithm to an arbitrary curved multipole of variable radius. More...
 
virtual void visitOffset (const Offset &)=0
 Apply the algorithm to an offset (placement). More...
 
virtual void visitProbe (const Probe &)=0
 Apply the algorithm to a probe. More...
 
virtual void visitRBend (const RBend &)=0
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitRBend3D (const RBend3D &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitRFCavity (const RFCavity &)=0
 Apply the algorithm to a RF cavity. More...
 
virtual void visitRing (const Ring &)=0
 Apply the algorithm to a ring. More...
 
virtual void visitSBend (const SBend &)=0
 Apply the algorithm to a sector bend. More...
 
virtual void visitSBend3D (const SBend3D &)=0
 Apply the algorithm to a sector bend with 3D field map. More...
 
virtual void visitScalingFFAMagnet (const ScalingFFAMagnet &)=0
 Apply the algorithm to a scaling FFA magnet. More...
 
virtual void visitSeptum (const Septum &)=0
 Apply the algorithm to a septum magnet. More...
 
virtual void visitSolenoid (const Solenoid &)=0
 Apply the algorithm to a solenoid. More...
 
virtual void visitSource (const Source &)=0
 Apply the algorithm to a source. More...
 
virtual void visitStripper (const Stripper &)=0
 Apply the algorithm to a particle stripper. More...
 
virtual void visitTravelingWave (const TravelingWave &)=0
 Apply the algorithm to a traveling wave. More...
 
virtual void visitVacuum (const Vacuum &)=0
 Apply the algorithm to a vacuum space. More...
 
virtual void visitVariableRFCavity (const VariableRFCavity &)=0
 Apply the algorithm to a variable RF cavity. More...
 
virtual void visitVariableRFCavityFringeField (const VariableRFCavityFringeField &)=0
 Apply the algorithm to a variable RF cavity with Fringe Field. More...
 
virtual void visitVerticalFFAMagnet (const VerticalFFAMagnet &)=0
 Apply the algorithm to a vertical FFA magnet. More...
 

Private Member Functions

 ParallelTTracker ()
 
 ParallelTTracker (const ParallelTTracker &)
 
void operator= (const ParallelTTracker &)
 
void kickParticles (const BorisPusher &pusher)
 
void pushParticles (const BorisPusher &pusher)
 
void updateReferenceParticle (const BorisPusher &pusher)
 
void writePhaseSpace (const long long step, bool psDump, bool statDump)
 
void updateRFElement (std::string elName, double maxPhi)
 
void printRFPhases ()
 
void saveCavityPhases ()
 
void restoreCavityPhases ()
 
void prepareSections ()
 
void timeIntegration1 (BorisPusher &pusher)
 
void timeIntegration2 (BorisPusher &pusher)
 
void selectDT (bool backTrack=false)
 
void changeDT (bool backTrack=false)
 
void emitParticles (long long step)
 
void computeExternalFields (OrbitThreader &oth)
 
void computeWakefield (IndexMap::value_t &elements)
 
void computeParticleMatterInteraction (IndexMap::value_t elements, OrbitThreader &oth)
 
void computeSpaceChargeFields (unsigned long long step)
 
void dumpStats (long long step, bool psDump, bool statDump)
 
void setOptionalVariables ()
 
bool hasEndOfLineReached (const BoundingBox &globalBoundingBox)
 
void handleRestartRun ()
 
void prepareEmission ()
 
void setTime ()
 
void doBinaryRepartition ()
 
void transformBunch (const CoordinateSystemTrafo &trafo)
 
void updateReference (const BorisPusher &pusher)
 
void updateRefToLabCSTrafo ()
 
void applyFractionalStep (const BorisPusher &pusher, double tau)
 
void findStartPosition (const BorisPusher &pusher)
 
void autophaseCavities (const BorisPusher &pusher)
 
void evenlyDistributeParticles ()
 

Private Attributes

DataSinkitsDataSink_m
 
OpalBeamline itsOpalBeamline_m
 
bool globalEOL_m
 
bool wakeStatus_m
 
bool deletedParticles_m
 
WakeFunctionwakeFunction_m
 
double pathLength_m
 
double zstart_m
 where to start More...
 
StepSizeConfig stepSizes_m
 
double dtCurrentTrack_m
 
int minStepforReBin_m
 
size_t minBinEmitted_m
 
unsigned int repartFreq_m
 
unsigned int emissionSteps_m
 
size_t numParticlesInSimulation_m
 
IpplTimings::TimerRef timeIntegrationTimer1_m
 
IpplTimings::TimerRef timeIntegrationTimer2_m
 
IpplTimings::TimerRef fieldEvaluationTimer_m
 
IpplTimings::TimerRef BinRepartTimer_m
 
IpplTimings::TimerRef WakeFieldTimer_m
 
std::set< ParticleMatterInteractionHandler * > activeParticleMatterInteractionHandlers_m
 
bool particleMatterStatus_m
 

Additional Inherited Members

- Public Types inherited from AbstractTracker
enum  {
  X , PX , Y , PY ,
  T , PT
}
 
- Public Attributes inherited from Tracker
FieldList cavities_m
 
const BeamlineitsBeamline_m
 
- Protected Member Functions inherited from Tracker
void applyDrift (double length)
 Apply a drift length. More...
 
void applyThinMultipole (const BMultipoleField &field, double factor)
 
void applyThinSBend (const BMultipoleField &field, double scale, double h)
 
void applyTransform (const Euclid3D &, double refLength=0.0)
 Apply a geometric transformation. More...
 
FTps< double, 2 > buildMultipoleVectorPotential2D (const BMultipoleField &)
 Construct vector potential for a Multipole. More...
 
FTps< double, 6 > buildMultipoleVectorPotential (const BMultipoleField &)
 Construct vector potential for a Multipole. More...
 
FTps< double, 2 > buildSBendVectorPotential2D (const BMultipoleField &, double h)
 Construct vector potential for a SBend. More...
 
FTps< double, 6 > buildSBendVectorPotential (const BMultipoleField &, double h)
 Construct vector potential for a SBend. More...
 
- Protected Attributes inherited from Tracker
PartBunchBase< double, 3 > * itsBunch_m
 The bunch of particles to be tracked. More...
 
- Protected Attributes inherited from AbstractTracker
const PartData itsReference
 The reference information. More...
 
- Protected Attributes inherited from DefaultVisitor
const BeamlineitsLine
 
bool back_beam
 
bool back_track
 
bool back_path
 
double flip_B
 
double flip_s
 

Detailed Description

Definition at line 69 of file ParallelTTracker.h.

Constructor & Destructor Documentation

◆ ParallelTTracker() [1/4]

ParallelTTracker::ParallelTTracker ( const Beamline bl,
const PartData data,
bool  revBeam,
bool  revTrack 
)
explicit

Constructor.

Definition at line 60 of file ParallelTTracker.cpp.

◆ ParallelTTracker() [2/4]

ParallelTTracker::ParallelTTracker ( const Beamline bl,
PartBunchBase< double, 3 > *  bunch,
DataSink ds,
const PartData data,
bool  revBeam,
bool  revTrack,
const std::vector< unsigned long long > &  maxSTEPS,
double  zstart,
const std::vector< double > &  zstop,
const std::vector< double > &  dt 
)
explicit

Constructor.

Definition at line 86 of file ParallelTTracker.cpp.

References StepSizeConfig::push_back(), StepSizeConfig::resetIterator(), StepSizeConfig::sortAscendingZStop(), and stepSizes_m.

Here is the call graph for this function:

◆ ~ParallelTTracker()

ParallelTTracker::~ParallelTTracker ( )
virtual

Definition at line 125 of file ParallelTTracker.cpp.

◆ ParallelTTracker() [3/4]

ParallelTTracker::ParallelTTracker ( )
private

◆ ParallelTTracker() [4/4]

ParallelTTracker::ParallelTTracker ( const ParallelTTracker )
private

Member Function Documentation

◆ applyFractionalStep()

void ParallelTTracker::applyFractionalStep ( const BorisPusher pusher,
double  tau 
)
private

◆ autophaseCavities()

void ParallelTTracker::autophaseCavities ( const BorisPusher pusher)
private

◆ changeDT()

void ParallelTTracker::changeDT ( bool  backTrack = false)
private

Definition at line 437 of file ParallelTTracker.cpp.

References PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, and selectDT().

Referenced by execute(), and findStartPosition().

Here is the call graph for this function:

◆ computeExternalFields()

void ParallelTTracker::computeExternalFields ( OrbitThreader oth)
private

◆ computeParticleMatterInteraction()

void ParallelTTracker::computeParticleMatterInteraction ( IndexMap::value_t  elements,
OrbitThreader oth 
)
private

◆ computeSpaceChargeFields()

void ParallelTTracker::computeSpaceChargeFields ( unsigned long long  step)
private

◆ computeWakefield()

void ParallelTTracker::computeWakefield ( IndexMap::value_t elements)
private

◆ doBinaryRepartition()

void ParallelTTracker::doBinaryRepartition ( )
private

◆ dumpStats()

void ParallelTTracker::dumpStats ( long long  step,
bool  psDump,
bool  statDump 
)
private

◆ emitParticles()

void ParallelTTracker::emitParticles ( long long  step)
private

◆ evenlyDistributeParticles()

void ParallelTTracker::evenlyDistributeParticles ( )
private

◆ execute()

void ParallelTTracker::execute ( )
virtual

Apply the algorithm to the top-level beamline.

Reimplemented from DefaultVisitor.

Definition at line 178 of file ParallelTTracker.cpp.

References abs(), OpalBeamline::activateElements(), StepSizeConfig::advanceToPos(), OpalData::APPEND, DefaultVisitor::back_track, PartData::beta, PartBunchBase< T, Dim >::Bf, Physics::c, changeDT(), computeExternalFields(), computeSpaceChargeFields(), OpalBeamline::containsSource(), deletedParticles_m, dtCurrentTrack_m, dumpStats(), PartBunchBase< T, Dim >::Ef, emitParticles(), endl(), euclidean_norm(), evenlyDistributeParticles(), OrbitThreader::execute(), findStartPosition(), PartBunchBase< T, Dim >::get_bounds(), PartBunchBase< T, Dim >::get_pmean_Distribution(), PartBunchBase< T, Dim >::get_sPos(), OrbitThreader::getBoundingBox(), OpalBeamline::getCSTrafoLab2Local(), StepSizeConfig::getdT(), PartBunchBase< T, Dim >::getdT(), Util::getGamma(), OpalData::getGlobalPhaseShift(), PartBunchBase< T, Dim >::getGlobalTrackStep(), OpalData::getInstance(), Util::getLengthString(), PartBunchBase< T, Dim >::getM(), StepSizeConfig::getMaxSteps(), StepSizeConfig::getMinTimeStep(), StepSizeConfig::getNumSteps(), PartData::getP(), PartBunchBase< T, Dim >::getT(), Util::getTimeString(), PartBunchBase< T, Dim >::getTotalNum(), StepSizeConfig::getZStop(), globalEOL_m, gmsg, hasEndOfLineReached(), PartBunchBase< T, Dim >::incrementT(), PartBunchBase< T, Dim >::incTrackSteps(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, itsOpalBeamline_m, AbstractTracker::itsReference, level1(), level2(), minBinEmitted_m, numParticlesInSimulation_m, pathLength_m, prepareEmission(), prepareSections(), Options::psDumpFreq, StepSizeConfig::reachedEnd(), PartBunchBase< T, Dim >::RefPartP_m, PartBunchBase< T, Dim >::RefPartR_m, restoreCavityPhases(), StepSizeConfig::reverseDirection(), CoordinateSystemTrafo::rotateTo(), saveCavityPhases(), selectDT(), PartBunchBase< T, Dim >::set_sPos(), PartBunchBase< T, Dim >::setdT(), OpalData::setGlobalPhaseShift(), OpalData::setInPrepState(), OpalData::setOpenMode(), setOptionalVariables(), OpalData::setPriorTrack(), PartBunchBase< T, Dim >::setT(), setTime(), Options::statDumpFreq, stepSizes_m, OpalBeamline::switchElementsOff(), OPALTimer::Timer::time(), timeIntegration1(), timeIntegration2(), PartBunchBase< T, Dim >::toLabTrafo_m, CoordinateSystemTrafo::transformTo(), updateReference(), wakeStatus_m, PartBunchBase< T, Dim >::weHaveEnergyBins(), writePhaseSpace(), Monitor::writeStatistics(), and zstart_m.

◆ findStartPosition()

void ParallelTTracker::findStartPosition ( const BorisPusher pusher)
private

◆ handleRestartRun()

void ParallelTTracker::handleRestartRun ( )
private

◆ hasEndOfLineReached()

bool ParallelTTracker::hasEndOfLineReached ( const BoundingBox globalBoundingBox)
private

Definition at line 968 of file ParallelTTracker.cpp.

References globalEOL_m, BoundingBox::isOutside(), Tracker::itsBunch_m, reduce(), and PartBunchBase< T, Dim >::RefPartR_m.

Referenced by execute().

Here is the call graph for this function:

◆ kickParticles()

void ParallelTTracker::kickParticles ( const BorisPusher pusher)
inlineprivate

◆ operator=()

void ParallelTTracker::operator= ( const ParallelTTracker )
private

◆ prepareEmission()

void ParallelTTracker::prepareEmission ( )
private

◆ prepareSections()

void ParallelTTracker::prepareSections ( )
private

◆ printRFPhases()

void ParallelTTracker::printRFPhases ( )
private

◆ pushParticles()

void ParallelTTracker::pushParticles ( const BorisPusher pusher)
inlineprivate

◆ restoreCavityPhases()

void ParallelTTracker::restoreCavityPhases ( )
private

Definition at line 165 of file ParallelTTracker.cpp.

References end(), OpalData::getFirstMaxPhases(), OpalData::getInstance(), OpalData::getLastMaxPhases(), and updateRFElement().

Referenced by execute().

Here is the call graph for this function:

◆ saveCavityPhases()

void ParallelTTracker::saveCavityPhases ( )
private

Definition at line 161 of file ParallelTTracker.cpp.

References itsDataSink_m, and DataSink::storeCavityInformation().

Referenced by execute().

Here is the call graph for this function:

◆ selectDT()

void ParallelTTracker::selectDT ( bool  backTrack = false)
private

◆ setOptionalVariables()

void ParallelTTracker::setOptionalVariables ( )
private

◆ setTime()

void ParallelTTracker::setTime ( )
private

Definition at line 974 of file ParallelTTracker.cpp.

References PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalNum(), and Tracker::itsBunch_m.

Referenced by execute().

Here is the call graph for this function:

◆ timeIntegration1()

void ParallelTTracker::timeIntegration1 ( BorisPusher pusher)
private

Definition at line 383 of file ParallelTTracker.cpp.

References pushParticles(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and timeIntegrationTimer1_m.

Referenced by execute().

Here is the call graph for this function:

◆ timeIntegration2()

void ParallelTTracker::timeIntegration2 ( BorisPusher pusher)
private

◆ transformBunch()

void ParallelTTracker::transformBunch ( const CoordinateSystemTrafo trafo)
private

◆ updateReference()

void ParallelTTracker::updateReference ( const BorisPusher pusher)
private

Definition at line 1103 of file ParallelTTracker.cpp.

References updateReferenceParticle(), and updateRefToLabCSTrafo().

Referenced by computeParticleMatterInteraction(), and execute().

Here is the call graph for this function:

◆ updateReferenceParticle()

void ParallelTTracker::updateReferenceParticle ( const BorisPusher pusher)
private

◆ updateRefToLabCSTrafo()

void ParallelTTracker::updateRefToLabCSTrafo ( )
private

◆ updateRFElement()

void ParallelTTracker::updateRFElement ( std::string  elName,
double  maxPhi 
)
private

◆ visitBeamline()

void ParallelTTracker::visitBeamline ( const Beamline bl)
virtual

◆ visitCCollimator()

void ParallelTTracker::visitCCollimator ( const CCollimator coll)
inlinevirtual

Apply the algorithm to a collimator.

Reimplemented from DefaultVisitor.

Definition at line 282 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitCorrector()

void ParallelTTracker::visitCorrector ( const Corrector corr)
inlinevirtual

Apply the algorithm to a closed orbit corrector.

Reimplemented from DefaultVisitor.

Definition at line 286 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitDegrader()

void ParallelTTracker::visitDegrader ( const Degrader deg)
inlinevirtual

Apply the algorithm to a degrader.

Reimplemented from DefaultVisitor.

Definition at line 290 of file ParallelTTracker.h.

References matheval::detail::math::deg(), Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitDrift()

void ParallelTTracker::visitDrift ( const Drift drift)
inlinevirtual

Apply the algorithm to a drift space.

Reimplemented from DefaultVisitor.

Definition at line 294 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitFlexibleCollimator()

void ParallelTTracker::visitFlexibleCollimator ( const FlexibleCollimator coll)
inlinevirtual

Apply the algorithm to a flexible collimator.

Reimplemented from DefaultVisitor.

Definition at line 298 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitMarker()

void ParallelTTracker::visitMarker ( const Marker marker)
inlinevirtual

Apply the algorithm to a marker.

Reimplemented from DefaultVisitor.

Definition at line 302 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitMonitor()

void ParallelTTracker::visitMonitor ( const Monitor mon)
inlinevirtual

Apply the algorithm to a beam position monitor.

Reimplemented from DefaultVisitor.

Definition at line 306 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitMultipole()

void ParallelTTracker::visitMultipole ( const Multipole mult)
inlinevirtual

Apply the algorithm to a multipole.

Reimplemented from DefaultVisitor.

Definition at line 310 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitMultipoleT()

void ParallelTTracker::visitMultipoleT ( const MultipoleT mult)
inlinevirtual

Apply the algorithm to an arbitrary multipole.

Reimplemented from DefaultVisitor.

Definition at line 314 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitProbe()

void ParallelTTracker::visitProbe ( const Probe prob)
inlinevirtual

Apply the algorithm to a probe.

Reimplemented from DefaultVisitor.

Definition at line 318 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitRBend()

void ParallelTTracker::visitRBend ( const RBend bend)
inlinevirtual

Apply the algorithm to a rectangular bend.

Reimplemented from DefaultVisitor.

Definition at line 322 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitRBend3D()

void ParallelTTracker::visitRBend3D ( const RBend3D bend)
inlinevirtual

Apply the algorithm to a rectangular bend.

Reimplemented from DefaultVisitor.

Definition at line 326 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitRFCavity()

void ParallelTTracker::visitRFCavity ( const RFCavity as)
inlinevirtual

Apply the algorithm to a RF cavity.

Reimplemented from DefaultVisitor.

Definition at line 330 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitSBend()

void ParallelTTracker::visitSBend ( const SBend bend)
inlinevirtual

Apply the algorithm to a sector bend.

Reimplemented from DefaultVisitor.

Definition at line 334 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitSeptum()

void ParallelTTracker::visitSeptum ( const Septum sept)
inlinevirtual

Apply the algorithm to a septum.

Reimplemented from DefaultVisitor.

Definition at line 338 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitSolenoid()

void ParallelTTracker::visitSolenoid ( const Solenoid solenoid)
inlinevirtual

Apply the algorithm to a solenoid.

Reimplemented from DefaultVisitor.

Definition at line 342 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitSource()

void ParallelTTracker::visitSource ( const Source source)
inlinevirtual

Apply the algorithm to a source.

Reimplemented from DefaultVisitor.

Definition at line 346 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitTravelingWave()

void ParallelTTracker::visitTravelingWave ( const TravelingWave as)
inlinevirtual

Apply the algorithm to a traveling wave.

Reimplemented from DefaultVisitor.

Definition at line 350 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ visitVacuum()

void ParallelTTracker::visitVacuum ( const Vacuum vac)
inlinevirtual

Apply the algorithm to a vacuum space.

Reimplemented from DefaultVisitor.

Definition at line 360 of file ParallelTTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

◆ writePhaseSpace()

void ParallelTTracker::writePhaseSpace ( const long long  step,
bool  psDump,
bool  statDump 
)
private

Member Data Documentation

◆ activeParticleMatterInteractionHandlers_m

std::set<ParticleMatterInteractionHandler*> ParallelTTracker::activeParticleMatterInteractionHandlers_m
private

Definition at line 229 of file ParallelTTracker.h.

Referenced by computeParticleMatterInteraction().

◆ BinRepartTimer_m

IpplTimings::TimerRef ParallelTTracker::BinRepartTimer_m
private

Definition at line 226 of file ParallelTTracker.h.

Referenced by doBinaryRepartition().

◆ deletedParticles_m

bool ParallelTTracker::deletedParticles_m
private

Definition at line 190 of file ParallelTTracker.h.

Referenced by computeExternalFields(), and execute().

◆ dtCurrentTrack_m

double ParallelTTracker::dtCurrentTrack_m
private

Definition at line 205 of file ParallelTTracker.h.

Referenced by execute(), findStartPosition(), and selectDT().

◆ emissionSteps_m

unsigned int ParallelTTracker::emissionSteps_m
private

Definition at line 219 of file ParallelTTracker.h.

Referenced by prepareEmission().

◆ fieldEvaluationTimer_m

IpplTimings::TimerRef ParallelTTracker::fieldEvaluationTimer_m
private

Definition at line 225 of file ParallelTTracker.h.

Referenced by computeExternalFields().

◆ globalEOL_m

bool ParallelTTracker::globalEOL_m
private

◆ itsDataSink_m

DataSink* ParallelTTracker::itsDataSink_m
private

Definition at line 182 of file ParallelTTracker.h.

Referenced by saveCavityPhases(), and writePhaseSpace().

◆ itsOpalBeamline_m

OpalBeamline ParallelTTracker::itsOpalBeamline_m
private

◆ minBinEmitted_m

size_t ParallelTTracker::minBinEmitted_m
private

◆ minStepforReBin_m

int ParallelTTracker::minStepforReBin_m
private

Definition at line 209 of file ParallelTTracker.h.

Referenced by emitParticles(), and setOptionalVariables().

◆ numParticlesInSimulation_m

size_t ParallelTTracker::numParticlesInSimulation_m
private

◆ particleMatterStatus_m

bool ParallelTTracker::particleMatterStatus_m
private

Definition at line 230 of file ParallelTTracker.h.

Referenced by computeParticleMatterInteraction().

◆ pathLength_m

double ParallelTTracker::pathLength_m
private

◆ repartFreq_m

unsigned int ParallelTTracker::repartFreq_m
private

Definition at line 217 of file ParallelTTracker.h.

Referenced by computeSpaceChargeFields(), and setOptionalVariables().

◆ stepSizes_m

StepSizeConfig ParallelTTracker::stepSizes_m
private

stores informations where to change the time step and where to stop the simulation, the time step sizes and the number of time steps with each configuration

Definition at line 203 of file ParallelTTracker.h.

Referenced by execute(), findStartPosition(), ParallelTTracker(), and writePhaseSpace().

◆ timeIntegrationTimer1_m

IpplTimings::TimerRef ParallelTTracker::timeIntegrationTimer1_m
private

Definition at line 223 of file ParallelTTracker.h.

Referenced by timeIntegration1().

◆ timeIntegrationTimer2_m

IpplTimings::TimerRef ParallelTTracker::timeIntegrationTimer2_m
private

Definition at line 224 of file ParallelTTracker.h.

Referenced by timeIntegration2().

◆ WakeFieldTimer_m

IpplTimings::TimerRef ParallelTTracker::WakeFieldTimer_m
private

Definition at line 227 of file ParallelTTracker.h.

Referenced by computeWakefield().

◆ wakeFunction_m

WakeFunction* ParallelTTracker::wakeFunction_m
private

Definition at line 192 of file ParallelTTracker.h.

Referenced by computeWakefield().

◆ wakeStatus_m

bool ParallelTTracker::wakeStatus_m
private

Definition at line 188 of file ParallelTTracker.h.

Referenced by computeWakefield(), and execute().

◆ zstart_m

double ParallelTTracker::zstart_m
private

where to start

Definition at line 197 of file ParallelTTracker.h.

Referenced by applyFractionalStep(), execute(), and findStartPosition().


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