OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
ParallelCyclotronTracker Class Reference

#include <ParallelCyclotronTracker.h>

Inheritance diagram for ParallelCyclotronTracker:
Collaboration diagram for ParallelCyclotronTracker:

Classes

struct  settings

Public Types

typedef std::vector< double > dvector_t
typedef std::vector< int > ivector_t
typedef std::pair< double[8], Component * > element_pair
typedef std::pair< ElementType, element_pairtype_pair
typedef std::list< type_pair * > beamline_list
enum  {
  X , PX , Y , PY ,
  T , PT
}

Public Member Functions

 ParallelCyclotronTracker (const Beamline &bl, PartBunchBase< double, 3 > *bunch, DataSink &ds, const PartData &data, bool revBeam, bool revTrack, int maxSTEPS, Steppers::TimeIntegrator timeintegrator, const int &numBunch, const double &mbEta, const double &mbPara, const std::string &mbMode, const std::string &mbBinning)
 Constructor.
virtual ~ParallelCyclotronTracker ()
virtual void execute ()
 Apply the algorithm to the top-level beamline.
bool computeExternalFields_m (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &Efield, Vector_t &Bfield)
 Calculate the field map at an arbitrary point.
virtual void visitBeamline (const Beamline &)
 Apply the algorithm to a beam line.
virtual void visitCCollimator (const CCollimator &)
 Apply the algorithm to a collimator.
virtual void visitCorrector (const Corrector &)
 Apply the algorithm to a closed orbit corrector.
virtual void visitCyclotron (const Cyclotron &cycl)
 Apply the algorithm to a cyclotron.
virtual void visitDegrader (const Degrader &)
 Apply the algorithm to a degrader.
virtual void visitDrift (const Drift &)
 Apply the algorithm to a drift space.
virtual void visitFlexibleCollimator (const FlexibleCollimator &)
 Apply the algorithm to a flexible collimator.
virtual void visitMarker (const Marker &)
 Apply the algorithm to a marker.
virtual void visitMonitor (const Monitor &)
 Apply the algorithm to a beam position monitor.
virtual void visitMultipole (const Multipole &)
 Apply the algorithm to a multipole.
virtual void visitMultipoleT (const MultipoleT &)
 Apply the algorithm to an arbitrary multipole.
virtual void visitOffset (const Offset &)
 Apply the algorithm to a offset (placement).
virtual void visitOutputPlane (const OutputPlane &)
 Apply the algorithm to a outputplane.
virtual void visitProbe (const Probe &)
 Apply the algorithm to a probe.
virtual void visitRBend (const RBend &)
 Apply the algorithm to a rectangular bend.
virtual void visitRFCavity (const RFCavity &)
 Apply the algorithm to a RF cavity.
virtual void visitRing (const Ring &ring)
 Apply the algorithm to a ring.
virtual void visitSBend (const SBend &)
 Apply the algorithm to a sector bend.
virtual void visitSBend3D (const SBend3D &)
 Apply the algorithm to a sector bend with 3D field map.
virtual void visitScalingFFAMagnet (const ScalingFFAMagnet &bend)
 Apply the algorithm to a scaling FFA magnet.
virtual void visitSeptum (const Septum &)
 Apply the algorithm to a septum.
virtual void visitSolenoid (const Solenoid &)
 Apply the algorithm to a solenoid.
virtual void visitStripper (const Stripper &)
 Apply the algorithm to a particle stripper.
virtual void visitVacuum (const Vacuum &)
 Apply the algorithm to a vacuum space.
virtual void visitVariableRFCavity (const VariableRFCavity &cav)
 Apply the algorithm to a variabel RF cavity.
virtual void visitVariableRFCavityFringeField (const VariableRFCavityFringeField &cav)
 Apply the algorithm to a variable RF cavity with Fringe Field.
virtual void visitVerticalFFAMagnet (const VerticalFFAMagnet &bend)
 Apply the algorithm to a vertical FFA magnet.
void setLastDumpedStep (const int para)
 set last dumped step
void bgf_main_collision_test ()
void initializeBoundaryGeometry ()
RinggetRing () const
const PartBunchBase< double, 3 > * getBunch () const
 Return the current bunch.
void addToBunch (const OpalParticle &)
 Add particle to bunch.
virtual void visitComponent (const Component &)
 Store the bunch.
virtual void setNumBunch (short)
 set total number of tracked bunches
virtual short getNumBunch ()
 get total number of tracked bunches
virtual void visitFlaggedElmPtr (const FlaggedElmPtr &)
 Apply the algorithm to a FlaggedElmPtr.
virtual void visitRBend3D (const RBend3D &)
 Apply the algorithm to a rectangular bend.
virtual void visitSource (const Source &)
 Apply the algorithm to a source.
virtual void visitTravelingWave (const TravelingWave &)
 Apply the algorithm to a traveling wave.
void setPr (double x)
 Method for restart.
void setPt (double x)
void setPz (double x)
void setR (double x)
void setTheta (double x)
void setZ (double x)
void setBeGa (double x)
void setPhi (double x)
void setPsi (double x)
void setPreviousH5Local (bool x)

Public Attributes

FieldList cavities_m
const BeamlineitsBeamline_m

Protected Member Functions

void applyDrift (double length)
 Apply a drift length.
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.
FTps< double, 2 > buildMultipoleVectorPotential2D (const BMultipoleField &)
 Construct vector potential for a Multipole.
FTps< double, 6 > buildMultipoleVectorPotential (const BMultipoleField &)
 Construct vector potential for a Multipole.
FTps< double, 2 > buildSBendVectorPotential2D (const BMultipoleField &, double h)
 Construct vector potential for a SBend.
FTps< double, 6 > buildSBendVectorPotential (const BMultipoleField &, double h)
 Construct vector potential for a SBend.

Protected Attributes

PartBunchBase< double, 3 > * itsBunch_m
 The bunch of particles to be tracked.
const PartData itsReference
 The reference information.
const BeamlineitsLine
bool back_beam
bool back_track
bool back_path
double flip_B
double flip_s

Private Types

enum class  TrackingMode : unsigned short { UNDEFINED , SINGLE , SEO , BUNCH }
typedef std::function< bool(const double &, const size_t &, Vector_t &, Vector_t &)> function_t

Private Member Functions

 ParallelCyclotronTracker ()
 ParallelCyclotronTracker (const ParallelCyclotronTracker &)
void operator= (const ParallelCyclotronTracker &)
void MtsTracker ()
void GenericTracker ()
bool getFieldsAtPoint (const double &t, const size_t &Pindex, Vector_t &Efield, Vector_t &Bfield)
void dumpAngle (const double &theta, double &prevAzimuth, double &azimuth, const short &bunchNr=0)
double computeRadius (const Vector_t &meanR) const
void computePathLengthUpdate (std::vector< double > &dl, const double &dt)
void openFiles (size_t numFiles, std::string fn)
 @ open / close output coordinate files
void closeFiles ()
void buildupFieldList (double BcParameter[], ElementType elementType, Component *elptr)
double calculateAngle (double x, double y)
double calculateAngle2 (double x, double y)
bool checkGapCross (Vector_t Rold, Vector_t Rnew, RFCavity *rfcavity, double &DistOld)
bool RFkick (RFCavity *rfcavity, const double t, const double dt, const int Pindex)
bool getTunes (dvector_t &t, dvector_t &r, dvector_t &z, int lastTurn, double &nur, double &nuz)
Vector_t calcMeanR (short bunchNr=-1) const
Vector_t calcMeanP () const
void repartition ()
void globalToLocal (ParticleAttrib< Vector_t > &vectorArray, double phi, Vector_t const translationToGlobal=0)
void localToGlobal (ParticleAttrib< Vector_t > &vectorArray, double phi, Vector_t const translationToGlobal=0)
void globalToLocal (ParticleAttrib< Vector_t > &vectorArray, Quaternion_t const quaternion, Vector_t const meanR=Vector_t(0.0))
void localToGlobal (ParticleAttrib< Vector_t > &vectorArray, Quaternion_t const quaternion, Vector_t const meanR=Vector_t(0.0))
void globalToLocal (ParticleAttrib< Vector_t > &particleVectors, double const phi, double const psi, Vector_t const meanR=Vector_t(0.0))
void localToGlobal (ParticleAttrib< Vector_t > &particleVectors, double const phi, double const psi, Vector_t const meanR=Vector_t(0.0))
void globalToLocal (Vector_t &myVector, double const phi, double const psi, Vector_t const meanR=Vector_t(0.0))
void localToGlobal (Vector_t &myVector, double const phi, double const psi, Vector_t const meanR=Vector_t(0.0))
void rotateWithQuaternion (ParticleAttrib< Vector_t > &vectorArray, Quaternion_t const quaternion)
void getQuaternionTwoVectors (Vector_t u, Vector_t v, Quaternion_t &quaternion)
void normalizeQuaternion (Quaternion_t &quaternion)
void normalizeVector (Vector_t &vector)
void rotateAroundZ (ParticleAttrib< Vector_t > &particleVectors, double const phi)
void rotateAroundX (ParticleAttrib< Vector_t > &particleVectors, double const psi)
void rotateAroundZ (Vector_t &myVector, double const phi)
void rotateAroundX (Vector_t &myVector, double const psi)
bool push (double h)
bool kick (double h)
void borisExternalFields (double h)
bool applyPluginElements (const double dt)
bool deleteParticle (bool=false)
void initTrackOrbitFile ()
void singleParticleDump ()
void bunchDumpStatData ()
void bunchDumpPhaseSpaceData ()
void evaluateSpaceChargeField ()
void initDistInGlobalFrame ()
void setTimeStep ()
void checkFileMomentum ()
void checkNumPart (std::string s)
double getHarmonicNumber () const
bool isTurnDone ()
 Check if turn done.
void update_m (double &t, const double &dt, const bool &finishedTurn)
 Update time and path length, write to output files.
std::tuple< double, double, double > initializeTracking_m ()
void finalizeTracking_m (dvector_t &Ttime, dvector_t &Tdeltr, dvector_t &Tdeltz, ivector_t &TturnNumber)
void setTrackingMode ()
void seoMode_m (double &t, const double dt, bool &finishedTurn, dvector_t &Ttime, dvector_t &Tdeltr, dvector_t &Tdeltz, ivector_t &TturnNumber)
void singleMode_m (double &t, const double dt, bool &finishedTurn, double &oldReferenceTheta)
void bunchMode_m (double &t, const double dt, bool &finishedTurn)
void gapCrossKick_m (size_t i, double t, double dt, const Vector_t &Rold, const Vector_t &Pold)
void dumpAzimuthAngles_m (const double &t, const Vector_t &R, const Vector_t &P, const double &oldReferenceTheta, const double &temp_meanTheta)
void dumpThetaEachTurn_m (const double &t, const Vector_t &R, const Vector_t &P, const double &temp_meanTheta, bool &finishedTurn)
void computeSpaceChargeFields_m ()
bool computeExternalFields_m (const size_t &i, const double &t, Vector_t &Efield, Vector_t &Bfield)
void injectBunch (bool &flagTransition)
void saveInjectValues ()
bool isMultiBunch () const
bool hasMultiBunch () const
void updatePathLength (const double &dt)
void updateTime (const double &dt)
void updateAzimuthAndRadius ()
void initPathLength ()
virtual void applyDefault (const ElementBase &)

Private Attributes

beamline_list FieldDimensions
std::list< Component * > myElements
BeamlineitsBeamline
std::vector< PluginElement * > pluginElements_m
std::vector< CavityCrossDatacavCrossDatas_m
DataSinkitsDataSink
BoundaryGeometrybgf_m
Cyclotroncycl_m
int maxSteps_m
 The maximal number of steps the system is integrated.
double bega
 The reference variables.
double referenceR
double referenceTheta
double beamInitialRotation = 0.0
double referenceZ = 0.0
double referencePr
double referencePt
double referencePz = 0.0
double referencePtot
double referencePsi
double referencePhi
bool spiral_flag = false
Vector_t PreviousMeanP
bool previousH5Local
double sinRefTheta_m
double cosRefTheta_m
std::unique_ptr< MultiBunchHandlermbHandler_m
int lastDumpedStep_m
double pathLength_m
long long step_m
long long restartStep0_m
int turnnumber_m
double azimuth_m
double prevAzimuth_m
Vector_t FDext_m [2]
Vector_t extE_m
Vector_t extB_m
const int myNode_m
const size_t initialLocalNum_m
const size_t initialTotalNum_m
std::vector< std::unique_ptr< std::ofstream > > outfTheta_m
 output coordinates at different azimuthal angles and one after every turn
std::vector< double > azimuth_angle_m
 the different azimuthal angles for the outfTheta_m output files
std::ofstream outfTrackOrbit_m
IpplTimings::TimerRef IntegrationTimer_m
IpplTimings::TimerRef DumpTimer_m
IpplTimings::TimerRef TransformTimer_m
IpplTimings::TimerRef BinRepartTimer_m
IpplTimings::TimerRef PluginElemTimer_m
IpplTimings::TimerRef DelParticleTimer_m
RingopalRing_m
std::unique_ptr< LossDataSinklossDs_m
std::unique_ptr< Stepper< function_t > > itsStepper_mp
struct ParallelCyclotronTracker::settings setup_m
TrackingMode mode_m
Steppers::TimeIntegrator stepper_m
matrix_t rotation_m
bool local_flip

Static Private Attributes

static Vector_t const xaxis = Vector_t(1.0, 0.0, 0.0)
 The positive axes unit vectors.
static Vector_t const yaxis = Vector_t(0.0, 1.0, 0.0)
static Vector_t const zaxis = Vector_t(0.0, 0.0, 1.0)

Detailed Description

Definition at line 55 of file ParallelCyclotronTracker.h.


Class Documentation

◆ ParallelCyclotronTracker::settings

struct ParallelCyclotronTracker::settings

Definition at line 459 of file ParallelCyclotronTracker.h.

Collaboration diagram for ParallelCyclotronTracker::settings:
Class Members
double deltaTheta
int scSolveFreq
int stepsNextCheck
int stepsPerTurn

Member Typedef Documentation

◆ beamline_list

Definition at line 62 of file ParallelCyclotronTracker.h.

◆ dvector_t

typedef std::vector<double> ParallelCyclotronTracker::dvector_t

Definition at line 58 of file ParallelCyclotronTracker.h.

◆ element_pair

typedef std::pair<double[8], Component*> ParallelCyclotronTracker::element_pair

Definition at line 60 of file ParallelCyclotronTracker.h.

◆ function_t

typedef std::function<bool(const double&, const size_t&, Vector_t&, Vector_t&)> ParallelCyclotronTracker::function_t
private

Definition at line 455 of file ParallelCyclotronTracker.h.

◆ ivector_t

typedef std::vector<int> ParallelCyclotronTracker::ivector_t

Definition at line 59 of file ParallelCyclotronTracker.h.

◆ type_pair

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited
Enumerator
PX 
PY 
PT 

Definition at line 39 of file AbstractTracker.h.

◆ TrackingMode

enum class ParallelCyclotronTracker::TrackingMode : unsigned short
strongprivate
Enumerator
UNDEFINED 
SINGLE 
SEO 
BUNCH 

Definition at line 202 of file ParallelCyclotronTracker.h.

Constructor & Destructor Documentation

◆ ParallelCyclotronTracker() [1/3]

ParallelCyclotronTracker::ParallelCyclotronTracker ( const Beamline & beamline,
PartBunchBase< double, 3 > * bunch,
DataSink & ds,
const PartData & reference,
bool revBeam,
bool revTrack,
int maxSTEPS,
Steppers::TimeIntegrator timeintegrator,
const int & numBunch,
const double & mbEta,
const double & mbPara,
const std::string & mbMode,
const std::string & mbBinning )

Constructor.

Constructor ParallelCyclotronTracker

Parameters
beamline
bunch
ds
reference
revBeam
revTrack
maxSTEPS
timeIntegrator

Definition at line 110 of file ParallelCyclotronTracker.cpp.

References bgf_m, BinRepartTimer_m, ElementBase::clone(), DelParticleTimer_m, DumpTimer_m, IpplTimings::getTimer(), initialLocalNum_m, initialTotalNum_m, IntegrationTimer_m, itsBeamline, itsDataSink, itsStepper_mp, lastDumpedStep_m, maxSteps_m, mbHandler_m, mode_m, myNode_m, opalRing_m, PluginElemTimer_m, rotation_m, setTrackingMode(), stepper_m, Tracker::Tracker(), and TransformTimer_m.

Referenced by operator=(), and ParallelCyclotronTracker().

Here is the call graph for this function:

◆ ~ParallelCyclotronTracker()

ParallelCyclotronTracker::~ParallelCyclotronTracker ( )
virtual

Destructor ParallelCyclotronTracker

Definition at line 159 of file ParallelCyclotronTracker.cpp.

References FieldDimensions, itsBeamline, and myElements.

◆ ParallelCyclotronTracker() [2/3]

ParallelCyclotronTracker::ParallelCyclotronTracker ( )
private

◆ ParallelCyclotronTracker() [3/3]

ParallelCyclotronTracker::ParallelCyclotronTracker ( const ParallelCyclotronTracker & )
private

References ParallelCyclotronTracker().

Here is the call graph for this function:

Member Function Documentation

◆ addToBunch()

void Tracker::addToBunch ( const OpalParticle & part)
inherited

Add particle to bunch.

Definition at line 107 of file Tracker.cpp.

References itsBunch_m.

◆ applyDefault()

◆ applyDrift()

void Tracker::applyDrift ( double length)
protectedinherited

Apply a drift length.

Definition at line 122 of file Tracker.cpp.

References dot(), OpalParticle::getP(), OpalParticle::getX(), OpalParticle::getY(), OpalParticle::getZ(), itsBunch_m, AbstractTracker::itsReference, OpalParticle::setX(), OpalParticle::setY(), and OpalParticle::setZ().

Here is the call graph for this function:

◆ applyPluginElements()

bool ParallelCyclotronTracker::applyPluginElements ( const double dt)
private

Definition at line 2040 of file ParallelCyclotronTracker.cpp.

References Vacuum::checkVacuum(), cycl_m, endl(), FieldDimensions, gmsg, Tracker::itsBunch_m, pluginElements_m, PluginElemTimer_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), turnnumber_m, and VACUUM.

Referenced by borisExternalFields(), bunchMode_m(), GenericTracker(), and singleMode_m().

Here is the call graph for this function:

◆ applyThinMultipole()

void Tracker::applyThinMultipole ( const BMultipoleField & field,
double factor )
protectedinherited

Definition at line 140 of file Tracker.cpp.

References OpalParticle::getPx(), OpalParticle::getPy(), OpalParticle::getX(), OpalParticle::getY(), itsBunch_m, BMultipoleField::normal(), BMultipoleField::order(), OpalParticle::setPx(), OpalParticle::setPy(), and BMultipoleField::skew().

Here is the call graph for this function:

◆ applyThinSBend()

void Tracker::applyThinSBend ( const BMultipoleField & field,
double scale,
double h )
protectedinherited

Definition at line 169 of file Tracker.cpp.

References buildSBendVectorPotential2D(), FTps< T, N >::derivative(), FTps< T, N >::evaluate(), OpalParticle::getPx(), OpalParticle::getPy(), OpalParticle::getX(), OpalParticle::getY(), itsBunch_m, OpalParticle::setPx(), and OpalParticle::setPy().

Here is the call graph for this function:

◆ applyTransform()

void Tracker::applyTransform ( const Euclid3D & euclid,
double refLength = 0.0 )
protectedinherited

Apply a geometric transformation.

Definition at line 189 of file Tracker.cpp.

References OpalParticle::getPx(), OpalParticle::getPy(), OpalParticle::getPz(), Euclid3D::getX(), OpalParticle::getX(), Euclid3D::getY(), OpalParticle::getY(), Euclid3D::getZ(), OpalParticle::getZ(), Euclid3D::isIdentity(), itsBunch_m, AbstractTracker::itsReference, Euclid3D::M(), OpalParticle::setPx(), OpalParticle::setPy(), OpalParticle::setX(), OpalParticle::setY(), and OpalParticle::setZ().

Here is the call graph for this function:

◆ bgf_main_collision_test()

void ParallelCyclotronTracker::bgf_main_collision_test ( )

Here we check if a particle is outside the domain, flag it for deletion

Definition at line 171 of file ParallelCyclotronTracker.cpp.

References bgf_m, endl(), getHarmonicNumber(), gmsgALL, Tracker::itsBunch_m, level4(), lossDs_m, and turnnumber_m.

Referenced by bunchMode_m(), and singleMode_m().

Here is the call graph for this function:

◆ borisExternalFields()

void ParallelCyclotronTracker::borisExternalFields ( double h)
private

Definition at line 2010 of file ParallelCyclotronTracker.cpp.

References applyPluginElements(), computeExternalFields_m(), deleteParticle(), IntegrationTimer_m, Tracker::itsBunch_m, kick(), push(), IpplTimings::startTimer(), and IpplTimings::stopTimer().

Referenced by MtsTracker().

Here is the call graph for this function:

◆ buildMultipoleVectorPotential()

Series Tracker::buildMultipoleVectorPotential ( const BMultipoleField & field)
protectedinherited

Construct vector potential for a Multipole.

Definition at line 252 of file Tracker.cpp.

References FTps< T, N >::getMaxOrder(), FTps< double, 6 >::makeVariable(), BMultipoleField::normal(), BMultipoleField::order(), FTps< T, N >::setTruncOrder(), BMultipoleField::skew(), AbstractTracker::X, and AbstractTracker::Y.

Here is the call graph for this function:

◆ buildMultipoleVectorPotential2D()

Series2 Tracker::buildMultipoleVectorPotential2D ( const BMultipoleField & field)
protectedinherited

Construct vector potential for a Multipole.

Definition at line 225 of file Tracker.cpp.

References FTps< T, N >::getMaxOrder(), FTps< double, 2 >::makeVariable(), BMultipoleField::normal(), BMultipoleField::order(), FTps< T, N >::setTruncOrder(), and BMultipoleField::skew().

Here is the call graph for this function:

◆ buildSBendVectorPotential()

Series Tracker::buildSBendVectorPotential ( const BMultipoleField & field,
double h )
protectedinherited

Construct vector potential for a SBend.

Definition at line 332 of file Tracker.cpp.

References FTps< T, N >::derivative(), FTps< T, N >::getMaxOrder(), FTps< double, 6 >::makeVariable(), BMultipoleField::normal(), BMultipoleField::order(), FTps< T, N >::setTruncOrder(), BMultipoleField::skew(), AbstractTracker::X, and AbstractTracker::Y.

Here is the call graph for this function:

◆ buildSBendVectorPotential2D()

Series2 Tracker::buildSBendVectorPotential2D ( const BMultipoleField & field,
double h )
protectedinherited

Construct vector potential for a SBend.

Definition at line 280 of file Tracker.cpp.

References FTps< T, N >::derivative(), FTps< T, N >::getMaxOrder(), FTps< double, 2 >::makeVariable(), BMultipoleField::normal(), BMultipoleField::order(), FTps< T, N >::setTruncOrder(), BMultipoleField::skew(), and AbstractTracker::X.

Referenced by applyThinSBend().

Here is the call graph for this function:

◆ buildupFieldList()

void ParallelCyclotronTracker::buildupFieldList ( double BcParameter[],
ElementType elementType,
Component * elptr )
private

◆ bunchDumpPhaseSpaceData()

void ParallelCyclotronTracker::bunchDumpPhaseSpaceData ( )
private

◆ bunchDumpStatData()

void ParallelCyclotronTracker::bunchDumpStatData ( )
private

◆ bunchMode_m()

void ParallelCyclotronTracker::bunchMode_m ( double & t,
const double dt,
bool & finishedTurn )
private

◆ calcMeanP()

Vector_t ParallelCyclotronTracker::calcMeanP ( ) const
private

Definition at line 1618 of file ParallelCyclotronTracker.cpp.

References Tracker::itsBunch_m, and reduce().

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), bunchMode_m(), computeSpaceChargeFields_m(), deleteParticle(), initDistInGlobalFrame(), and MtsTracker().

Here is the call graph for this function:

◆ calcMeanR()

Vector_t ParallelCyclotronTracker::calcMeanR ( short bunchNr = -1) const
private

Definition at line 1595 of file ParallelCyclotronTracker.cpp.

References Tracker::itsBunch_m, and reduce().

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), computeSpaceChargeFields_m(), deleteParticle(), initDistInGlobalFrame(), MtsTracker(), saveInjectValues(), and updateAzimuthAndRadius().

Here is the call graph for this function:

◆ calculateAngle()

double ParallelCyclotronTracker::calculateAngle ( double x,
double y )
inlineprivate

◆ calculateAngle2()

double ParallelCyclotronTracker::calculateAngle2 ( double x,
double y )
inlineprivate
Parameters
x
y
Returns
angle range [-PI~PI) degree

Definition at line 573 of file ParallelCyclotronTracker.h.

Referenced by MtsTracker(), and singleMode_m().

◆ checkFileMomentum()

void ParallelCyclotronTracker::checkFileMomentum ( )
private

Definition at line 2367 of file ParallelCyclotronTracker.cpp.

References allreduce(), euclidean_norm(), initialLocalNum_m, initialTotalNum_m, Tracker::itsBunch_m, and referencePtot.

Referenced by initDistInGlobalFrame().

Here is the call graph for this function:

◆ checkGapCross()

bool ParallelCyclotronTracker::checkGapCross ( Vector_t Rold,
Vector_t Rnew,
RFCavity * rfcavity,
double & Dold )
private
Parameters
Rold
Rnew
elptr
Dold
Returns

Definition at line 1459 of file ParallelCyclotronTracker.cpp.

References RFCavity::getCosAzimuth(), RFCavity::getPerpenDistance(), and RFCavity::getSinAzimuth().

Referenced by gapCrossKick_m().

Here is the call graph for this function:

◆ checkNumPart()

void ParallelCyclotronTracker::checkNumPart ( std::string s)
private

Definition at line 1108 of file ParallelCyclotronTracker.cpp.

References endl(), gmsg, Tracker::itsBunch_m, and reduce().

Referenced by initDistInGlobalFrame().

Here is the call graph for this function:

◆ closeFiles()

void ParallelCyclotronTracker::closeFiles ( )
private

Close all files related to special output in the Cyclotron mode.

Definition at line 301 of file ParallelCyclotronTracker.cpp.

References outfTheta_m.

Referenced by finalizeTracking_m().

◆ computeExternalFields_m() [1/2]

bool ParallelCyclotronTracker::computeExternalFields_m ( const size_t & i,
const double & t,
Vector_t & Efield,
Vector_t & Bfield )
private

Definition at line 3367 of file ParallelCyclotronTracker.cpp.

References FieldDimensions, Units::kG2T, Units::kV2V, and Units::mm2m.

◆ computeExternalFields_m() [2/2]

bool ParallelCyclotronTracker::computeExternalFields_m ( const Vector_t & R,
const Vector_t & P,
const double & t,
Vector_t & Efield,
Vector_t & Bfield )

Calculate the field map at an arbitrary point.

Definition at line 3381 of file ParallelCyclotronTracker.cpp.

References FieldDimensions, Units::kG2T, Units::kV2V, and Units::mm2m.

Referenced by borisExternalFields(), PyOpal::Field::get_field_value_cyclotron(), and getFieldsAtPoint().

◆ computePathLengthUpdate()

void ParallelCyclotronTracker::computePathLengthUpdate ( std::vector< double > & dl,
const double & dt )
private

Definition at line 232 of file ParallelCyclotronTracker.cpp.

References allreduce(), BUNCH_MEAN, Physics::c, dot(), isMultiBunch(), Tracker::itsBunch_m, Options::psDumpFrame, and sum().

Referenced by updatePathLength().

Here is the call graph for this function:

◆ computeRadius()

double ParallelCyclotronTracker::computeRadius ( const Vector_t & meanR) const
private

◆ computeSpaceChargeFields_m()

void ParallelCyclotronTracker::computeSpaceChargeFields_m ( )
private

Definition at line 3292 of file ParallelCyclotronTracker.cpp.

References Options::boundpDestroyFreq, calcMeanP(), calcMeanR(), Util::getGamma(), getQuaternionTwoVectors(), globalToLocal(), hasMultiBunch(), Tracker::itsBunch_m, localToGlobal(), PreviousMeanP, repartition(), SAAMG, spiral_flag, step_m, and yaxis.

Referenced by bunchMode_m(), and MtsTracker().

Here is the call graph for this function:

◆ deleteParticle()

bool ParallelCyclotronTracker::deleteParticle ( bool flagNeedUpdate = false)
private

Definition at line 2069 of file ParallelCyclotronTracker.cpp.

References allreduce(), calcMeanP(), calcMeanR(), calculateAngle(), Options::delPartFreq, DelParticleTimer_m, endl(), euclidean_norm(), globalToLocal(), gmsg, isMultiBunch(), Tracker::itsBunch_m, level3(), localToGlobal(), mbHandler_m, Physics::pi, reduce(), IpplTimings::startTimer(), step_m, IpplTimings::stopTimer(), and sum().

Referenced by borisExternalFields(), bunchMode_m(), GenericTracker(), and singleMode_m().

Here is the call graph for this function:

◆ dumpAngle()

void ParallelCyclotronTracker::dumpAngle ( const double & theta,
double & prevAzimuth,
double & azimuth,
const short & bunchNr = 0 )
private

Definition at line 203 of file ParallelCyclotronTracker.cpp.

References OpalData::getInstance(), and turnnumber_m.

Referenced by bunchDumpStatData(), saveInjectValues(), and updateAzimuthAndRadius().

Here is the call graph for this function:

◆ dumpAzimuthAngles_m()

void ParallelCyclotronTracker::dumpAzimuthAngles_m ( const double & t,
const Vector_t & R,
const Vector_t & P,
const double & oldReferenceTheta,
const double & temp_meanTheta )
inlineprivate

◆ dumpThetaEachTurn_m()

void ParallelCyclotronTracker::dumpThetaEachTurn_m ( const double & t,
const Vector_t & R,
const Vector_t & P,
const double & temp_meanTheta,
bool & finishedTurn )
inlineprivate

Definition at line 3267 of file ParallelCyclotronTracker.cpp.

References Units::deg2rad, endl(), gmsg, isTurnDone(), outfTheta_m, Units::s2ns, and turnnumber_m.

Referenced by MtsTracker(), and singleMode_m().

Here is the call graph for this function:

◆ evaluateSpaceChargeField()

void ParallelCyclotronTracker::evaluateSpaceChargeField ( )
private

◆ execute()

◆ finalizeTracking_m()

void ParallelCyclotronTracker::finalizeTracking_m ( dvector_t & Ttime,
dvector_t & Tdeltr,
dvector_t & Tdeltz,
ivector_t & TturnNumber )
private

Definition at line 2920 of file ParallelCyclotronTracker.cpp.

References BUNCH, closeFiles(), IpplInfo::Comm, endl(), Units::eV2MeV, getTunes(), gmsg, isMultiBunch(), Tracker::itsBunch_m, lastDumpedStep_m, mode_m, myNode_m, outfTrackOrbit_m, SEO, SINGLE, turnnumber_m, and UNDEFINED.

Referenced by GenericTracker(), and MtsTracker().

Here is the call graph for this function:

◆ gapCrossKick_m()

void ParallelCyclotronTracker::gapCrossKick_m ( size_t i,
double t,
double dt,
const Vector_t & Rold,
const Vector_t & Pold )
private

Definition at line 3198 of file ParallelCyclotronTracker.cpp.

References Physics::c, checkGapCross(), euclidean_norm(), FieldDimensions, Util::getBeta(), Tracker::itsBunch_m, itsStepper_mp, RFCAVITY, and RFkick().

Referenced by bunchMode_m(), and singleMode_m().

Here is the call graph for this function:

◆ GenericTracker()

void ParallelCyclotronTracker::GenericTracker ( )
private

Definition at line 1351 of file ParallelCyclotronTracker.cpp.

References applyPluginElements(), BUNCH, bunchMode_m(), deleteParticle(), endl(), finalizeTracking_m(), gmsg, initializeTracking_m(), Tracker::itsBunch_m, maxSteps_m, mode_m, SEO, seoMode_m(), SINGLE, singleMode_m(), step_m, UNDEFINED, and update_m().

Referenced by execute().

Here is the call graph for this function:

◆ getBunch()

const PartBunchBase< double, 3 > * Tracker::getBunch ( ) const
inherited

Return the current bunch.

Definition at line 102 of file Tracker.cpp.

References itsBunch_m.

◆ getFieldsAtPoint()

bool ParallelCyclotronTracker::getFieldsAtPoint ( const double & t,
const size_t & Pindex,
Vector_t & Efield,
Vector_t & Bfield )
private

Definition at line 1429 of file ParallelCyclotronTracker.cpp.

References computeExternalFields_m(), and Tracker::itsBunch_m.

Referenced by execute().

Here is the call graph for this function:

◆ getHarmonicNumber()

double ParallelCyclotronTracker::getHarmonicNumber ( ) const
private

Definition at line 1583 of file ParallelCyclotronTracker.cpp.

References FieldDimensions, Cyclotron::getCyclHarm(), and opalRing_m.

Referenced by bgf_main_collision_test(), and initializeTracking_m().

Here is the call graph for this function:

◆ getNumBunch()

virtual short Tracker::getNumBunch ( )
inlinevirtualinherited

get total number of tracked bunches

Definition at line 117 of file Tracker.h.

◆ getQuaternionTwoVectors()

void ParallelCyclotronTracker::getQuaternionTwoVectors ( Vector_t u,
Vector_t v,
Quaternion_t & quaternion )
inlineprivate

Definition at line 1903 of file ParallelCyclotronTracker.cpp.

References cross(), dot(), normalizeQuaternion(), normalizeVector(), Physics::pi, xaxis, and zaxis.

Referenced by bunchMode_m(), and computeSpaceChargeFields_m().

Here is the call graph for this function:

◆ getRing()

Ring * ParallelCyclotronTracker::getRing ( ) const
inline

Definition at line 200 of file ParallelCyclotronTracker.h.

References opalRing_m.

Referenced by PyOpal::Field::getRing().

◆ getTunes()

bool ParallelCyclotronTracker::getTunes ( dvector_t & t,
dvector_t & r,
dvector_t & z,
int lastTurn,
double & nur,
double & nuz )
private
Parameters
t
r
z
lastTurn
nur
nuz
Returns

Definition at line 1516 of file ParallelCyclotronTracker.cpp.

References endl(), for_each(), gmsg, TUNE_class::lombAnalysis(), and AbstractTracker::T.

Referenced by finalizeTracking_m().

Here is the call graph for this function:

◆ globalToLocal() [1/4]

void ParallelCyclotronTracker::globalToLocal ( ParticleAttrib< Vector_t > & particleVectors,
double const phi,
double const psi,
Vector_t const meanR = Vector_t(0.0) )
inlineprivate

Definition at line 1713 of file ParallelCyclotronTracker.cpp.

References rotateAroundX(), rotateAroundZ(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

◆ globalToLocal() [2/4]

void ParallelCyclotronTracker::globalToLocal ( ParticleAttrib< Vector_t > & vectorArray,
double phi,
Vector_t const translationToGlobal = 0 )
private

Definition at line 1640 of file ParallelCyclotronTracker.cpp.

References Tracker::itsBunch_m, prod_boost_vector(), rotation_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), bunchMode_m(), computeSpaceChargeFields_m(), deleteParticle(), initDistInGlobalFrame(), and MtsTracker().

Here is the call graph for this function:

◆ globalToLocal() [3/4]

void ParallelCyclotronTracker::globalToLocal ( ParticleAttrib< Vector_t > & vectorArray,
Quaternion_t const quaternion,
Vector_t const meanR = Vector_t(0.0) )
inlineprivate

Definition at line 1684 of file ParallelCyclotronTracker.cpp.

References rotateWithQuaternion(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

◆ globalToLocal() [4/4]

void ParallelCyclotronTracker::globalToLocal ( Vector_t & myVector,
double const phi,
double const psi,
Vector_t const meanR = Vector_t(0.0) )
inlineprivate

Definition at line 1734 of file ParallelCyclotronTracker.cpp.

References rotateAroundX(), rotateAroundZ(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

◆ hasMultiBunch()

bool ParallelCyclotronTracker::hasMultiBunch ( ) const
inlineprivate

Definition at line 585 of file ParallelCyclotronTracker.h.

References isMultiBunch(), and mbHandler_m.

Referenced by computeSpaceChargeFields_m().

Here is the call graph for this function:

◆ initDistInGlobalFrame()

◆ initializeBoundaryGeometry()

void ParallelCyclotronTracker::initializeBoundaryGeometry ( )

◆ initializeTracking_m()

std::tuple< double, double, double > ParallelCyclotronTracker::initializeTracking_m ( )
private
Returns
the time t [s], time step dt [s] and the azimuth angle [rad]

Definition at line 2809 of file ParallelCyclotronTracker.cpp.

References azimuth_angle_m, BUNCH, Units::deg2rad, endl(), getHarmonicNumber(), OpalData::getInstance(), IpplInfo::getNodes(), gmsg, initDistInGlobalFrame(), initPathLength(), initTrackOrbitFile(), isMultiBunch(), Tracker::itsBunch_m, mbHandler_m, mode_m, openFiles(), Physics::pi, Options::rebinFreq, referenceTheta, Options::repartFreq, restartStep0_m, Units::s2ns, Options::scSolveFreq, SEO, setup_m, SINGLE, spiral_flag, Options::sptDumpFreq, step_m, turnnumber_m, and UNDEFINED.

Referenced by GenericTracker(), and MtsTracker().

Here is the call graph for this function:

◆ initPathLength()

void ParallelCyclotronTracker::initPathLength ( )
private

multi-bunch mode: set the path length of each bunch in case of restart mode

At creation of DataSink the lines are rewinded properly --> the last entry of the path length is therefore the initial path length at restart.

Precondition
In order to work properly in restart mode, the lines in the multi-bunch *.smb files need to be rewinded first.

Definition at line 3504 of file ParallelCyclotronTracker.cpp.

References isMultiBunch(), itsDataSink, and mbHandler_m.

Referenced by initializeTracking_m().

Here is the call graph for this function:

◆ initTrackOrbitFile()

void ParallelCyclotronTracker::initTrackOrbitFile ( )
private

Definition at line 2197 of file ParallelCyclotronTracker.cpp.

References OpalData::getInputBasename(), OpalData::getInstance(), Tracker::itsBunch_m, myNode_m, and outfTrackOrbit_m.

Referenced by initializeTracking_m().

Here is the call graph for this function:

◆ injectBunch()

void ParallelCyclotronTracker::injectBunch ( bool & flagTransition)
private

Definition at line 3396 of file ParallelCyclotronTracker.cpp.

References endl(), gmsg, isMultiBunch(), Tracker::itsBunch_m, AbstractTracker::itsReference, mbHandler_m, saveInjectValues(), setup_m, step_m, and turnnumber_m.

Referenced by bunchMode_m(), and MtsTracker().

Here is the call graph for this function:

◆ isMultiBunch()

◆ isTurnDone()

bool ParallelCyclotronTracker::isTurnDone ( )
private

Check if turn done.

Definition at line 2762 of file ParallelCyclotronTracker.cpp.

References setup_m, and step_m.

Referenced by bunchMode_m(), dumpThetaEachTurn_m(), MtsTracker(), and seoMode_m().

◆ kick()

bool ParallelCyclotronTracker::kick ( double h)
private

Definition at line 1990 of file ParallelCyclotronTracker.cpp.

References Units::GeV2eV, IntegrationTimer_m, Tracker::itsBunch_m, BorisPusher::kick(), Physics::q_e, IpplTimings::startTimer(), and IpplTimings::stopTimer().

Referenced by borisExternalFields(), and MtsTracker().

Here is the call graph for this function:

◆ localToGlobal() [1/4]

void ParallelCyclotronTracker::localToGlobal ( ParticleAttrib< Vector_t > & particleVectors,
double const phi,
double const psi,
Vector_t const meanR = Vector_t(0.0) )
inlineprivate

Definition at line 1755 of file ParallelCyclotronTracker.cpp.

References rotateAroundX(), rotateAroundZ(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

◆ localToGlobal() [2/4]

void ParallelCyclotronTracker::localToGlobal ( ParticleAttrib< Vector_t > & vectorArray,
double phi,
Vector_t const translationToGlobal = 0 )
private

Definition at line 1661 of file ParallelCyclotronTracker.cpp.

References Tracker::itsBunch_m, prod_boost_vector(), rotation_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), computeSpaceChargeFields_m(), deleteParticle(), initDistInGlobalFrame(), and MtsTracker().

Here is the call graph for this function:

◆ localToGlobal() [3/4]

void ParallelCyclotronTracker::localToGlobal ( ParticleAttrib< Vector_t > & vectorArray,
Quaternion_t const quaternion,
Vector_t const meanR = Vector_t(0.0) )
inlineprivate

Definition at line 1697 of file ParallelCyclotronTracker.cpp.

References rotateWithQuaternion(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

◆ localToGlobal() [4/4]

void ParallelCyclotronTracker::localToGlobal ( Vector_t & myVector,
double const phi,
double const psi,
Vector_t const meanR = Vector_t(0.0) )
inlineprivate

Definition at line 1776 of file ParallelCyclotronTracker.cpp.

References rotateAroundX(), rotateAroundZ(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

◆ MtsTracker()

◆ normalizeQuaternion()

void ParallelCyclotronTracker::normalizeQuaternion ( Quaternion_t & quaternion)
inlineprivate

Definition at line 1811 of file ParallelCyclotronTracker.cpp.

References dot().

Referenced by getQuaternionTwoVectors().

Here is the call graph for this function:

◆ normalizeVector()

void ParallelCyclotronTracker::normalizeVector ( Vector_t & vector)
inlineprivate

Definition at line 1823 of file ParallelCyclotronTracker.cpp.

References dot().

Referenced by getQuaternionTwoVectors().

Here is the call graph for this function:

◆ openFiles()

void ParallelCyclotronTracker::openFiles ( size_t numFiles,
std::string SfileName )
private

@ open / close output coordinate files

Parameters
fnBase file name

Definition at line 275 of file ParallelCyclotronTracker.cpp.

References outfTheta_m.

Referenced by initializeTracking_m().

◆ operator=()

void ParallelCyclotronTracker::operator= ( const ParallelCyclotronTracker & )
private

References ParallelCyclotronTracker().

Here is the call graph for this function:

◆ push()

bool ParallelCyclotronTracker::push ( double h)
private

Definition at line 1947 of file ParallelCyclotronTracker.cpp.

References Physics::c, cavCrossDatas_m, euclidean_norm(), Util::getGamma(), IntegrationTimer_m, Tracker::itsBunch_m, RFkick(), IpplTimings::startTimer(), and IpplTimings::stopTimer().

Referenced by borisExternalFields().

Here is the call graph for this function:

◆ repartition()

void ParallelCyclotronTracker::repartition ( )
private

Definition at line 1631 of file ParallelCyclotronTracker.cpp.

References BinRepartTimer_m, IpplInfo::Comm, Tracker::itsBunch_m, Options::repartFreq, IpplTimings::startTimer(), step_m, and IpplTimings::stopTimer().

Referenced by computeSpaceChargeFields_m(), initDistInGlobalFrame(), and MtsTracker().

Here is the call graph for this function:

◆ RFkick()

bool ParallelCyclotronTracker::RFkick ( RFCavity * rfcavity,
const double t,
const double dt,
const int Pindex )
private

Definition at line 1474 of file ParallelCyclotronTracker.cpp.

References RFCavity::getMomentaKick(), RFCavity::getPerpenDistance(), RFCavity::getRmax(), RFCavity::getRmin(), and Tracker::itsBunch_m.

Referenced by gapCrossKick_m(), and push().

Here is the call graph for this function:

◆ rotateAroundX() [1/2]

void ParallelCyclotronTracker::rotateAroundX ( ParticleAttrib< Vector_t > & particleVectors,
double const psi )
inlineprivate

Definition at line 1869 of file ParallelCyclotronTracker.cpp.

References Tracker::itsBunch_m, prod_boost_vector(), and rotation_m.

Referenced by globalToLocal(), globalToLocal(), localToGlobal(), and localToGlobal().

Here is the call graph for this function:

◆ rotateAroundX() [2/2]

void ParallelCyclotronTracker::rotateAroundX ( Vector_t & myVector,
double const psi )
inlineprivate

Definition at line 1887 of file ParallelCyclotronTracker.cpp.

References prod_boost_vector(), and rotation_m.

Here is the call graph for this function:

◆ rotateAroundZ() [1/2]

void ParallelCyclotronTracker::rotateAroundZ ( ParticleAttrib< Vector_t > & particleVectors,
double const phi )
inlineprivate

Definition at line 1835 of file ParallelCyclotronTracker.cpp.

References Tracker::itsBunch_m, prod_boost_vector(), and rotation_m.

Referenced by globalToLocal(), globalToLocal(), localToGlobal(), and localToGlobal().

Here is the call graph for this function:

◆ rotateAroundZ() [2/2]

void ParallelCyclotronTracker::rotateAroundZ ( Vector_t & myVector,
double const phi )
inlineprivate

Definition at line 1853 of file ParallelCyclotronTracker.cpp.

References prod_boost_vector(), and rotation_m.

Here is the call graph for this function:

◆ rotateWithQuaternion()

void ParallelCyclotronTracker::rotateWithQuaternion ( ParticleAttrib< Vector_t > & vectorArray,
Quaternion_t const quaternion )
inlineprivate

Definition at line 1797 of file ParallelCyclotronTracker.cpp.

References cross(), dot(), and Tracker::itsBunch_m.

Referenced by globalToLocal(), and localToGlobal().

Here is the call graph for this function:

◆ saveInjectValues()

void ParallelCyclotronTracker::saveInjectValues ( )
private

◆ seoMode_m()

void ParallelCyclotronTracker::seoMode_m ( double & t,
const double dt,
bool & finishedTurn,
dvector_t & Ttime,
dvector_t & Tdeltr,
dvector_t & Tdeltz,
ivector_t & TturnNumber )
private

Definition at line 2991 of file ParallelCyclotronTracker.cpp.

References calculateAngle(), IntegrationTimer_m, isTurnDone(), Tracker::itsBunch_m, itsStepper_mp, outfTrackOrbit_m, Options::sptDumpFreq, IpplTimings::startTimer(), step_m, IpplTimings::stopTimer(), and turnnumber_m.

Referenced by GenericTracker().

Here is the call graph for this function:

◆ setBeGa()

void ParallelCyclotronTracker::setBeGa ( double x)
inline

Definition at line 192 of file ParallelCyclotronTracker.h.

References bega.

Referenced by TrackRun::setupCyclotronTracker().

◆ setLastDumpedStep()

void ParallelCyclotronTracker::setLastDumpedStep ( const int para)
inline

set last dumped step

Definition at line 183 of file ParallelCyclotronTracker.h.

References lastDumpedStep_m.

Referenced by TrackRun::setupCyclotronTracker().

◆ setNumBunch()

virtual void Tracker::setNumBunch ( short )
inlinevirtualinherited

set total number of tracked bunches

Definition at line 114 of file Tracker.h.

◆ setPhi()

void ParallelCyclotronTracker::setPhi ( double x)
inline

Definition at line 193 of file ParallelCyclotronTracker.h.

References referencePhi.

Referenced by TrackRun::setupCyclotronTracker().

◆ setPr()

void ParallelCyclotronTracker::setPr ( double x)
inline

Method for restart.

Definition at line 186 of file ParallelCyclotronTracker.h.

References referencePr.

Referenced by TrackRun::setupCyclotronTracker().

◆ setPreviousH5Local()

void ParallelCyclotronTracker::setPreviousH5Local ( bool x)
inline

Definition at line 195 of file ParallelCyclotronTracker.h.

References previousH5Local.

Referenced by TrackRun::setupCyclotronTracker().

◆ setPsi()

void ParallelCyclotronTracker::setPsi ( double x)
inline

Definition at line 194 of file ParallelCyclotronTracker.h.

References referencePsi.

Referenced by TrackRun::setupCyclotronTracker().

◆ setPt()

void ParallelCyclotronTracker::setPt ( double x)
inline

Definition at line 187 of file ParallelCyclotronTracker.h.

References referencePt.

Referenced by TrackRun::setupCyclotronTracker().

◆ setPz()

void ParallelCyclotronTracker::setPz ( double x)
inline

Definition at line 188 of file ParallelCyclotronTracker.h.

References referencePz.

Referenced by TrackRun::setupCyclotronTracker().

◆ setR()

void ParallelCyclotronTracker::setR ( double x)
inline

Definition at line 189 of file ParallelCyclotronTracker.h.

References referenceR.

Referenced by TrackRun::setupCyclotronTracker().

◆ setTheta()

void ParallelCyclotronTracker::setTheta ( double x)
inline

Definition at line 190 of file ParallelCyclotronTracker.h.

References referenceTheta.

Referenced by TrackRun::setupCyclotronTracker().

◆ setTimeStep()

void ParallelCyclotronTracker::setTimeStep ( )
private

Definition at line 2361 of file ParallelCyclotronTracker.cpp.

References initialLocalNum_m, and Tracker::itsBunch_m.

Referenced by initDistInGlobalFrame().

◆ setTrackingMode()

void ParallelCyclotronTracker::setTrackingMode ( )
private

Definition at line 2979 of file ParallelCyclotronTracker.cpp.

References BUNCH, initialTotalNum_m, mode_m, SEO, SINGLE, and UNDEFINED.

Referenced by ParallelCyclotronTracker().

◆ setZ()

void ParallelCyclotronTracker::setZ ( double x)
inline

Definition at line 191 of file ParallelCyclotronTracker.h.

References referenceZ.

Referenced by TrackRun::setupCyclotronTracker().

◆ singleMode_m()

void ParallelCyclotronTracker::singleMode_m ( double & t,
const double dt,
bool & finishedTurn,
double & oldReferenceTheta )
private

Definition at line 3039 of file ParallelCyclotronTracker.cpp.

References applyPluginElements(), bgf_main_collision_test(), calculateAngle2(), deleteParticle(), dumpAzimuthAngles_m(), dumpThetaEachTurn_m(), gapCrossKick_m(), IntegrationTimer_m, Tracker::itsBunch_m, itsStepper_mp, outfTrackOrbit_m, Options::sptDumpFreq, IpplTimings::startTimer(), step_m, and IpplTimings::stopTimer().

Referenced by GenericTracker().

Here is the call graph for this function:

◆ singleParticleDump()

void ParallelCyclotronTracker::singleParticleDump ( )
private

Definition at line 2398 of file ParallelCyclotronTracker.cpp.

References IpplInfo::Comm, COMM_ANY_NODE, DumpTimer_m, endl(), ERRORMSG, Message::get(), IpplInfo::getNodes(), IPPL_APP_CYCLE, IPPL_APP_TAG4, Tracker::itsBunch_m, myNode_m, outfTrackOrbit_m, Message::put(), IpplTimings::startTimer(), and IpplTimings::stopTimer().

Referenced by bunchMode_m(), and MtsTracker().

Here is the call graph for this function:

◆ update_m()

void ParallelCyclotronTracker::update_m ( double & t,
const double & dt,
const bool & finishedTurn )
private

Update time and path length, write to output files.

Definition at line 2766 of file ParallelCyclotronTracker.cpp.

References bunchDumpPhaseSpaceData(), bunchDumpStatData(), endl(), gmsg, Tracker::itsBunch_m, mode_m, pluginElements_m, Options::psDumpEachTurn, Options::psDumpFreq, SEO, Options::statDumpFreq, step_m, updatePathLength(), and updateTime().

Referenced by GenericTracker(), and MtsTracker().

Here is the call graph for this function:

◆ updateAzimuthAndRadius()

void ParallelCyclotronTracker::updateAzimuthAndRadius ( )
private

Definition at line 3488 of file ParallelCyclotronTracker.cpp.

References MultiBunchHandler::beaminfo_t::azimuth, calcMeanR(), calculateAngle(), computeRadius(), dumpAngle(), isMultiBunch(), mbHandler_m, MultiBunchHandler::beaminfo_t::prevAzimuth, Units::rad2deg, and MultiBunchHandler::beaminfo_t::radius.

Referenced by bunchDumpStatData().

Here is the call graph for this function:

◆ updatePathLength()

void ParallelCyclotronTracker::updatePathLength ( const double & dt)
private

Definition at line 3456 of file ParallelCyclotronTracker.cpp.

References computePathLengthUpdate(), isMultiBunch(), Tracker::itsBunch_m, mbHandler_m, and pathLength_m.

Referenced by update_m().

Here is the call graph for this function:

◆ updateTime()

void ParallelCyclotronTracker::updateTime ( const double & dt)
private

Definition at line 3477 of file ParallelCyclotronTracker.cpp.

References isMultiBunch(), Tracker::itsBunch_m, and mbHandler_m.

Referenced by update_m().

Here is the call graph for this function:

◆ visitBeamline()

void ParallelCyclotronTracker::visitBeamline ( const Beamline & bl)
virtual

Apply the algorithm to a beam line.

Parameters
bl

Reimplemented from DefaultVisitor.

Definition at line 1103 of file ParallelCyclotronTracker.cpp.

References TBeamline< T >::iterate().

Here is the call graph for this function:

◆ visitCCollimator()

void ParallelCyclotronTracker::visitCCollimator ( const CCollimator & coll)
virtual

Apply the algorithm to a collimator.

Parameters
coll

Reimplemented from DefaultVisitor.

Definition at line 477 of file ParallelCyclotronTracker.cpp.

References buildupFieldList(), CCOLLIMATOR, ElementBase::clone(), endl(), ElementBase::getName(), CCollimator::getWidth(), PluginElement::getXEnd(), PluginElement::getXStart(), PluginElement::getYEnd(), PluginElement::getYStart(), CCollimator::getZEnd(), CCollimator::getZStart(), gmsg, PluginElement::initialise(), Tracker::itsBunch_m, and myElements.

Here is the call graph for this function:

◆ visitComponent()

void Tracker::visitComponent ( const Component & comp)
virtualinherited

Store the bunch.

Apply the algorithm to an arbitrary component.

Reimplemented from DefaultVisitor.

Definition at line 117 of file Tracker.cpp.

References DefaultVisitor::back_beam, DefaultVisitor::back_track, itsBunch_m, AbstractTracker::itsReference, and Component::trackBunch().

Here is the call graph for this function:

◆ visitCorrector()

void ParallelCyclotronTracker::visitCorrector ( const Corrector & corr)
virtual

Apply the algorithm to a closed orbit corrector.

Parameters
corr

Reimplemented from DefaultVisitor.

Definition at line 524 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), gmsg, and myElements.

Here is the call graph for this function:

◆ visitCyclotron()

void ParallelCyclotronTracker::visitCyclotron ( const Cyclotron & cycl)
virtual

◆ visitDegrader()

void ParallelCyclotronTracker::visitDegrader ( const Degrader & deg)
virtual

Apply the algorithm to a degrader.

Parameters
degrader

Reimplemented from DefaultVisitor.

Definition at line 534 of file ParallelCyclotronTracker.cpp.

References endl(), gmsg, and myElements.

Here is the call graph for this function:

◆ visitDrift()

void ParallelCyclotronTracker::visitDrift ( const Drift & drift)
virtual

Apply the algorithm to a drift space.

Parameters
drift

Reimplemented from DefaultVisitor.

Definition at line 545 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), gmsg, and myElements.

Here is the call graph for this function:

◆ visitFlaggedElmPtr()

void DefaultVisitor::visitFlaggedElmPtr ( const FlaggedElmPtr & fep)
virtualinherited

Apply the algorithm to a FlaggedElmPtr.

Implements BeamlineVisitor.

Reimplemented in Flagger, RangeSelector, and Replacer.

Definition at line 220 of file DefaultVisitor.cpp.

References ElementBase::accept(), ElmPtr::getElement(), FlaggedElmPtr::getReflectionFlag(), and local_flip.

Referenced by RangeSelector::handleBeamline(), RangeSelector::handleElement(), Flagger::visitFlaggedElmPtr(), and Replacer::visitFlaggedElmPtr().

Here is the call graph for this function:

◆ visitFlexibleCollimator()

void ParallelCyclotronTracker::visitFlexibleCollimator ( const FlexibleCollimator & )
virtual

Apply the algorithm to a flexible collimator.

Parameters

Reimplemented from DefaultVisitor.

Definition at line 555 of file ParallelCyclotronTracker.cpp.

◆ visitMarker()

void ParallelCyclotronTracker::visitMarker ( const Marker & marker)
virtual

Apply the algorithm to a marker.

Parameters
marker

Reimplemented from DefaultVisitor.

Definition at line 577 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), and myElements.

Here is the call graph for this function:

◆ visitMonitor()

void ParallelCyclotronTracker::visitMonitor ( const Monitor & corr)
virtual

Apply the algorithm to a beam position monitor.

Parameters
corr

Reimplemented from DefaultVisitor.

Definition at line 588 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), and myElements.

Here is the call graph for this function:

◆ visitMultipole()

void ParallelCyclotronTracker::visitMultipole ( const Multipole & mult)
virtual

Apply the algorithm to a multipole.

Parameters
mult

Reimplemented from DefaultVisitor.

Definition at line 599 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), gmsg, and myElements.

Here is the call graph for this function:

◆ visitMultipoleT()

void ParallelCyclotronTracker::visitMultipoleT ( const MultipoleT & multT)
virtual

Apply the algorithm to an arbitrary multipole.

Parameters
multT

Reimplemented from DefaultVisitor.

Definition at line 609 of file ParallelCyclotronTracker.cpp.

References MultipoleT::clone(), endl(), gmsg, myElements, and opalRing_m.

Here is the call graph for this function:

◆ visitOffset()

void ParallelCyclotronTracker::visitOffset ( const Offset & off)
virtual

Apply the algorithm to a offset (placement).

Parameters
off

Reimplemented from DefaultVisitor.

Definition at line 564 of file ParallelCyclotronTracker.cpp.

References opalRing_m.

◆ visitOutputPlane()

void ParallelCyclotronTracker::visitOutputPlane ( const OutputPlane & plane)
virtual

Apply the algorithm to a outputplane.

Parameters
plane

Reimplemented from DefaultVisitor.

Definition at line 625 of file ParallelCyclotronTracker.cpp.

References buildupFieldList(), OutputPlane::clone(), OutputPlane::getCentre(), OutputPlane::getHorizontalExtent(), OutputPlane::getNormal(), PluginElement::initialise(), Tracker::itsBunch_m, Units::mm2m, myElements, opalRing_m, OUTPUTPLANE, and OutputPlane::setGlobalFieldMap().

Here is the call graph for this function:

◆ visitProbe()

void ParallelCyclotronTracker::visitProbe ( const Probe & prob)
virtual

Apply the algorithm to a probe.

Parameters
prob

Reimplemented from DefaultVisitor.

Definition at line 655 of file ParallelCyclotronTracker.cpp.

References buildupFieldList(), ElementBase::clone(), endl(), ElementBase::getName(), PluginElement::getXEnd(), PluginElement::getXStart(), PluginElement::getYEnd(), PluginElement::getYStart(), gmsg, PluginElement::initialise(), Tracker::itsBunch_m, myElements, and PROBE.

Here is the call graph for this function:

◆ visitRBend()

void ParallelCyclotronTracker::visitRBend ( const RBend & bend)
virtual

Apply the algorithm to a rectangular bend.

Parameters
bend

Reimplemented from DefaultVisitor.

Definition at line 694 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), gmsg, and myElements.

Here is the call graph for this function:

◆ visitRBend3D()

void DefaultVisitor::visitRBend3D ( const RBend3D & bend)
virtualinherited

Apply the algorithm to a rectangular bend.

Reimplemented from BeamlineVisitor.

Reimplemented in ParallelTTracker.

Definition at line 145 of file DefaultVisitor.cpp.

References applyDefault().

Here is the call graph for this function:

◆ visitRFCavity()

◆ visitRing()

void ParallelCyclotronTracker::visitRing ( const Ring & ring)
virtual

Apply the algorithm to a ring.

Parameters
ring

Reimplemented from DefaultVisitor.

Definition at line 798 of file ParallelCyclotronTracker.cpp.

References Util::angleBetweenAngles(), beamInitialRotation, buildupFieldList(), Ring::clone(), cosRefTheta_m, endl(), gmsg, Tracker::itsBunch_m, AbstractTracker::itsReference, myElements, opalRing_m, Physics::pi, referencePr, referencePt, referencePtot, referencePz, referenceR, referenceTheta, referenceZ, RING, and sinRefTheta_m.

Here is the call graph for this function:

◆ visitSBend()

void ParallelCyclotronTracker::visitSBend ( const SBend & bend)
virtual

Apply the algorithm to a sector bend.

Parameters
bend

Reimplemented from DefaultVisitor.

Definition at line 851 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), gmsg, and myElements.

Here is the call graph for this function:

◆ visitSBend3D()

void ParallelCyclotronTracker::visitSBend3D ( const SBend3D & bend)
virtual

Apply the algorithm to a sector bend with 3D field map.

Reimplemented from DefaultVisitor.

Definition at line 856 of file ParallelCyclotronTracker.cpp.

References endl(), gmsg, and opalRing_m.

Here is the call graph for this function:

◆ visitScalingFFAMagnet()

void ParallelCyclotronTracker::visitScalingFFAMagnet ( const ScalingFFAMagnet & bend)
virtual

Apply the algorithm to a scaling FFA magnet.

Reimplemented from DefaultVisitor.

Definition at line 865 of file ParallelCyclotronTracker.cpp.

References ScalingFFAMagnet::clone(), endl(), gmsg, opalRing_m, and ScalingFFAMagnet::setupEndField().

Here is the call graph for this function:

◆ visitSeptum()

void ParallelCyclotronTracker::visitSeptum ( const Septum & sept)
virtual

Apply the algorithm to a septum.

Parameters
sept

Reimplemented from DefaultVisitor.

Definition at line 882 of file ParallelCyclotronTracker.cpp.

References buildupFieldList(), ElementBase::clone(), endl(), ElementBase::getName(), Septum::getWidth(), PluginElement::getXEnd(), PluginElement::getXStart(), PluginElement::getYEnd(), PluginElement::getYStart(), gmsg, Septum::initialise(), Tracker::itsBunch_m, myElements, and SEPTUM.

Here is the call graph for this function:

◆ visitSolenoid()

void ParallelCyclotronTracker::visitSolenoid ( const Solenoid & solenoid)
virtual

Apply the algorithm to a solenoid.

Parameters
solenoid

Reimplemented from DefaultVisitor.

Definition at line 924 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), gmsg, ElementBase::hasAttribute(), and myElements.

Here is the call graph for this function:

◆ visitSource()

void DefaultVisitor::visitSource ( const Source & sou)
virtualinherited

Apply the algorithm to a source.

Implements BeamlineVisitor.

Reimplemented in ParallelTTracker.

Definition at line 177 of file DefaultVisitor.cpp.

References applyDefault().

Here is the call graph for this function:

◆ visitStripper()

void ParallelCyclotronTracker::visitStripper ( const Stripper & stripper)
virtual

Apply the algorithm to a particle stripper.

Parameters
stripper

Reimplemented from DefaultVisitor.

Definition at line 938 of file ParallelCyclotronTracker.cpp.

References buildupFieldList(), ElementBase::clone(), endl(), ElementBase::getName(), Stripper::getOPCharge(), Stripper::getOPMass(), Stripper::getStop(), PluginElement::getXEnd(), PluginElement::getXStart(), PluginElement::getYEnd(), PluginElement::getYStart(), gmsg, PluginElement::initialise(), Tracker::itsBunch_m, myElements, and STRIPPER.

Here is the call graph for this function:

◆ visitTravelingWave()

void DefaultVisitor::visitTravelingWave ( const TravelingWave & trw)
virtualinherited

Apply the algorithm to a traveling wave.

Implements BeamlineVisitor.

Reimplemented in ParallelTTracker, and ThickTracker.

Definition at line 185 of file DefaultVisitor.cpp.

References applyDefault().

Here is the call graph for this function:

◆ visitVacuum()

void ParallelCyclotronTracker::visitVacuum ( const Vacuum & vac)
virtual

Apply the algorithm to a vacuum space.

Parameters
vac

Reimplemented from DefaultVisitor.

Definition at line 989 of file ParallelCyclotronTracker.cpp.

References buildupFieldList(), ElementBase::clone(), endl(), Vacuum::getPressure(), Vacuum::getPressureMapFN(), Vacuum::getPScale(), Vacuum::getResidualGasName(), Vacuum::getStop(), Vacuum::getTemperature(), gmsg, Vacuum::initialise(), Tracker::itsBunch_m, myElements, and VACUUM.

Here is the call graph for this function:

◆ visitVariableRFCavity()

void ParallelCyclotronTracker::visitVariableRFCavity ( const VariableRFCavity & cav)
virtual

Apply the algorithm to a variabel RF cavity.

Parameters
cav

Reimplemented from DefaultVisitor.

Definition at line 1032 of file ParallelCyclotronTracker.cpp.

References endl(), gmsg, and opalRing_m.

Here is the call graph for this function:

◆ visitVariableRFCavityFringeField()

void ParallelCyclotronTracker::visitVariableRFCavityFringeField ( const VariableRFCavityFringeField & cav)
virtual

Apply the algorithm to a variable RF cavity with Fringe Field.

Parameters
cav

Reimplemented from DefaultVisitor.

Definition at line 1046 of file ParallelCyclotronTracker.cpp.

References endl(), gmsg, and opalRing_m.

Here is the call graph for this function:

◆ visitVerticalFFAMagnet()

void ParallelCyclotronTracker::visitVerticalFFAMagnet ( const VerticalFFAMagnet & mag)
virtual

Apply the algorithm to a vertical FFA magnet.

Parameters
mag

Reimplemented from DefaultVisitor.

Definition at line 1061 of file ParallelCyclotronTracker.cpp.

References endl(), gmsg, and opalRing_m.

Here is the call graph for this function:

Member Data Documentation

◆ azimuth_angle_m

std::vector<double> ParallelCyclotronTracker::azimuth_angle_m
private

the different azimuthal angles for the outfTheta_m output files

Definition at line 309 of file ParallelCyclotronTracker.h.

Referenced by dumpAzimuthAngles_m(), and initializeTracking_m().

◆ azimuth_m

double ParallelCyclotronTracker::azimuth_m
private

Definition at line 281 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpStatData(), execute(), and saveInjectValues().

◆ back_beam

bool DefaultVisitor::back_beam
protectedinherited

Definition at line 155 of file DefaultVisitor.h.

Referenced by DefaultVisitor(), execute(), and Tracker::visitComponent().

◆ back_path

bool DefaultVisitor::back_path
protectedinherited

Definition at line 157 of file DefaultVisitor.h.

Referenced by DefaultVisitor().

◆ back_track

◆ beamInitialRotation

double ParallelCyclotronTracker::beamInitialRotation = 0.0
private

Definition at line 238 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), and visitRing().

◆ bega

double ParallelCyclotronTracker::bega
private

The reference variables.

Definition at line 235 of file ParallelCyclotronTracker.h.

Referenced by setBeGa(), and visitCyclotron().

◆ bgf_m

BoundaryGeometry* ParallelCyclotronTracker::bgf_m
private

◆ BinRepartTimer_m

IpplTimings::TimerRef ParallelCyclotronTracker::BinRepartTimer_m
private

Definition at line 332 of file ParallelCyclotronTracker.h.

Referenced by ParallelCyclotronTracker(), and repartition().

◆ cavCrossDatas_m

std::vector<CavityCrossData> ParallelCyclotronTracker::cavCrossDatas_m
private

Definition at line 218 of file ParallelCyclotronTracker.h.

Referenced by execute(), and push().

◆ cavities_m

FieldList Tracker::cavities_m
inherited

Definition at line 120 of file Tracker.h.

◆ cosRefTheta_m

double ParallelCyclotronTracker::cosRefTheta_m
private

Definition at line 256 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), visitCyclotron(), and visitRing().

◆ cycl_m

Cyclotron* ParallelCyclotronTracker::cycl_m
private

Definition at line 224 of file ParallelCyclotronTracker.h.

Referenced by applyPluginElements(), and visitCyclotron().

◆ DelParticleTimer_m

IpplTimings::TimerRef ParallelCyclotronTracker::DelParticleTimer_m
private

Definition at line 334 of file ParallelCyclotronTracker.h.

Referenced by deleteParticle(), and ParallelCyclotronTracker().

◆ DumpTimer_m

IpplTimings::TimerRef ParallelCyclotronTracker::DumpTimer_m
private

◆ extB_m

Vector_t ParallelCyclotronTracker::extB_m
private

Definition at line 300 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), and execute().

◆ extE_m

Vector_t ParallelCyclotronTracker::extE_m
private

Definition at line 300 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), and execute().

◆ FDext_m

Vector_t ParallelCyclotronTracker::FDext_m[2]
private

Definition at line 300 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), and execute().

◆ FieldDimensions

◆ flip_B

double DefaultVisitor::flip_B
protectedinherited

Definition at line 160 of file DefaultVisitor.h.

Referenced by DefaultVisitor().

◆ flip_s

double DefaultVisitor::flip_s
protectedinherited

Definition at line 161 of file DefaultVisitor.h.

Referenced by DefaultVisitor().

◆ initialLocalNum_m

const size_t ParallelCyclotronTracker::initialLocalNum_m
private

◆ initialTotalNum_m

const size_t ParallelCyclotronTracker::initialTotalNum_m
private

◆ IntegrationTimer_m

IpplTimings::TimerRef ParallelCyclotronTracker::IntegrationTimer_m
private

◆ itsBeamline

Beamline* ParallelCyclotronTracker::itsBeamline
private

◆ itsBeamline_m

const Beamline& Tracker::itsBeamline_m
inherited

◆ itsBunch_m

PartBunchBase<double, 3>* Tracker::itsBunch_m
protectedinherited

The bunch of particles to be tracked.

Definition at line 151 of file Tracker.h.

Referenced by addToBunch(), ThickTracker::advanceDispersion_m(), ThickTracker::advanceParticles_m(), applyDrift(), ParallelTTracker::applyFractionalStep(), ParallelCyclotronTracker::applyPluginElements(), applyThinMultipole(), applyThinSBend(), applyTransform(), ParallelTTracker::autophaseCavities(), ParallelCyclotronTracker::bgf_main_collision_test(), ParallelCyclotronTracker::borisExternalFields(), ParallelCyclotronTracker::bunchDumpPhaseSpaceData(), ParallelCyclotronTracker::bunchDumpStatData(), ParallelCyclotronTracker::bunchMode_m(), ParallelCyclotronTracker::calcMeanP(), ParallelCyclotronTracker::calcMeanR(), ParallelTTracker::changeDT(), ParallelCyclotronTracker::checkFileMomentum(), ParallelCyclotronTracker::checkNumPart(), ParallelTTracker::computeExternalFields(), ParallelTTracker::computeParticleMatterInteraction(), ParallelCyclotronTracker::computePathLengthUpdate(), ParallelTTracker::computeSpaceChargeFields(), ParallelCyclotronTracker::computeSpaceChargeFields_m(), ParallelTTracker::computeWakefield(), ParallelCyclotronTracker::deleteParticle(), ParallelTTracker::doBinaryRepartition(), ThickTracker::dump_m(), ParallelTTracker::dumpStats(), ParallelTTracker::emitParticles(), ParallelTTracker::evenlyDistributeParticles(), ParallelCyclotronTracker::execute(), ParallelTTracker::execute(), ThickTracker::execute(), ParallelCyclotronTracker::finalizeTracking_m(), ParallelTTracker::findStartPosition(), ParallelCyclotronTracker::gapCrossKick_m(), ParallelCyclotronTracker::GenericTracker(), getBunch(), ParallelCyclotronTracker::getFieldsAtPoint(), ParallelCyclotronTracker::globalToLocal(), ParallelTTracker::hasEndOfLineReached(), ParallelCyclotronTracker::initDistInGlobalFrame(), ParallelCyclotronTracker::initializeTracking_m(), ParallelCyclotronTracker::initTrackOrbitFile(), ParallelCyclotronTracker::injectBunch(), ParallelCyclotronTracker::isMultiBunch(), ParallelCyclotronTracker::kick(), ParallelTTracker::kickParticles(), ParallelCyclotronTracker::localToGlobal(), ParallelCyclotronTracker::MtsTracker(), ParallelTTracker::prepareEmission(), ParallelCyclotronTracker::push(), ParallelTTracker::pushParticles(), ParallelCyclotronTracker::repartition(), ParallelCyclotronTracker::RFkick(), ParallelCyclotronTracker::rotateAroundX(), ParallelCyclotronTracker::rotateAroundZ(), ParallelCyclotronTracker::rotateWithQuaternion(), ParallelCyclotronTracker::saveInjectValues(), ParallelTTracker::selectDT(), ParallelCyclotronTracker::seoMode_m(), ParallelTTracker::setTime(), ParallelCyclotronTracker::setTimeStep(), ParallelCyclotronTracker::singleMode_m(), ParallelCyclotronTracker::singleParticleDump(), ParallelTTracker::timeIntegration2(), ThickTracker::track_m(), Tracker(), ParallelTTracker::transformBunch(), ParallelCyclotronTracker::update_m(), ThickTracker::update_m(), ThickTracker::updateParticle_m(), ParallelCyclotronTracker::updatePathLength(), ParallelTTracker::updateReferenceParticle(), ParallelTTracker::updateRefToLabCSTrafo(), ParallelCyclotronTracker::updateTime(), ParallelCyclotronTracker::visitCCollimator(), ParallelTTracker::visitCCollimator(), visitComponent(), ParallelTTracker::visitCorrector(), ParallelCyclotronTracker::visitCyclotron(), ParallelTTracker::visitDegrader(), ParallelTTracker::visitDrift(), ThickTracker::visitDrift(), ParallelTTracker::visitFlexibleCollimator(), ParallelTTracker::visitMarker(), ParallelTTracker::visitMonitor(), ParallelTTracker::visitMultipole(), ThickTracker::visitMultipole(), ParallelTTracker::visitMultipoleT(), ParallelCyclotronTracker::visitOutputPlane(), ParallelCyclotronTracker::visitProbe(), ParallelTTracker::visitProbe(), ParallelTTracker::visitRBend(), ParallelTTracker::visitRBend3D(), ParallelCyclotronTracker::visitRFCavity(), ParallelTTracker::visitRFCavity(), ParallelCyclotronTracker::visitRing(), ParallelTTracker::visitSBend(), ThickTracker::visitSBend(), ParallelCyclotronTracker::visitSeptum(), ParallelTTracker::visitSeptum(), ParallelTTracker::visitSolenoid(), ParallelTTracker::visitSource(), ParallelCyclotronTracker::visitStripper(), ParallelTTracker::visitTravelingWave(), ParallelCyclotronTracker::visitVacuum(), ParallelTTracker::visitVacuum(), and ParallelTTracker::writePhaseSpace().

◆ itsDataSink

DataSink* ParallelCyclotronTracker::itsDataSink
private

◆ itsLine

const Beamline& DefaultVisitor::itsLine
protectedinherited

Definition at line 152 of file DefaultVisitor.h.

Referenced by DefaultVisitor(), and execute().

◆ itsReference

◆ itsStepper_mp

std::unique_ptr< Stepper<function_t> > ParallelCyclotronTracker::itsStepper_mp
private

◆ lastDumpedStep_m

int ParallelCyclotronTracker::lastDumpedStep_m
private

◆ local_flip

bool DefaultVisitor::local_flip
privateinherited

Definition at line 176 of file DefaultVisitor.h.

Referenced by DefaultVisitor(), execute(), visitBeamline(), and visitFlaggedElmPtr().

◆ lossDs_m

std::unique_ptr<LossDataSink> ParallelCyclotronTracker::lossDs_m
private

Definition at line 446 of file ParallelCyclotronTracker.h.

Referenced by bgf_main_collision_test(), and execute().

◆ maxSteps_m

int ParallelCyclotronTracker::maxSteps_m
private

The maximal number of steps the system is integrated.

Definition at line 227 of file ParallelCyclotronTracker.h.

Referenced by GenericTracker(), MtsTracker(), and ParallelCyclotronTracker().

◆ mbHandler_m

◆ mode_m

◆ myElements

◆ myNode_m

const int ParallelCyclotronTracker::myNode_m
private

◆ opalRing_m

◆ outfTheta_m

std::vector<std::unique_ptr<std::ofstream> > ParallelCyclotronTracker::outfTheta_m
private

output coordinates at different azimuthal angles and one after every turn

Definition at line 307 of file ParallelCyclotronTracker.h.

Referenced by closeFiles(), dumpAzimuthAngles_m(), dumpThetaEachTurn_m(), and openFiles().

◆ outfTrackOrbit_m

std::ofstream ParallelCyclotronTracker::outfTrackOrbit_m
private

output file for six dimensional phase space

Definition at line 315 of file ParallelCyclotronTracker.h.

Referenced by finalizeTracking_m(), initTrackOrbitFile(), seoMode_m(), singleMode_m(), and singleParticleDump().

◆ pathLength_m

double ParallelCyclotronTracker::pathLength_m
private

Definition at line 264 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), and updatePathLength().

◆ pluginElements_m

std::vector<PluginElement*> ParallelCyclotronTracker::pluginElements_m
private

Definition at line 217 of file ParallelCyclotronTracker.h.

Referenced by applyPluginElements(), execute(), and update_m().

◆ PluginElemTimer_m

IpplTimings::TimerRef ParallelCyclotronTracker::PluginElemTimer_m
private

Definition at line 333 of file ParallelCyclotronTracker.h.

Referenced by applyPluginElements(), and ParallelCyclotronTracker().

◆ prevAzimuth_m

double ParallelCyclotronTracker::prevAzimuth_m
private

Definition at line 282 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpStatData(), execute(), and saveInjectValues().

◆ previousH5Local

bool ParallelCyclotronTracker::previousH5Local
private

Definition at line 253 of file ParallelCyclotronTracker.h.

Referenced by setPreviousH5Local(), and visitCyclotron().

◆ PreviousMeanP

Vector_t ParallelCyclotronTracker::PreviousMeanP
private

Definition at line 251 of file ParallelCyclotronTracker.h.

Referenced by bunchMode_m(), and computeSpaceChargeFields_m().

◆ referencePhi

double ParallelCyclotronTracker::referencePhi
private

Definition at line 247 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), setPhi(), and visitCyclotron().

◆ referencePr

double ParallelCyclotronTracker::referencePr
private

◆ referencePsi

double ParallelCyclotronTracker::referencePsi
private

Definition at line 246 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), setPsi(), and visitCyclotron().

◆ referencePt

double ParallelCyclotronTracker::referencePt
private

◆ referencePtot

double ParallelCyclotronTracker::referencePtot
private

◆ referencePz

double ParallelCyclotronTracker::referencePz = 0.0
private

◆ referenceR

double ParallelCyclotronTracker::referenceR
private

◆ referenceTheta

double ParallelCyclotronTracker::referenceTheta
private

◆ referenceZ

double ParallelCyclotronTracker::referenceZ = 0.0
private

◆ restartStep0_m

long long ParallelCyclotronTracker::restartStep0_m
private

Definition at line 276 of file ParallelCyclotronTracker.h.

Referenced by execute(), and initializeTracking_m().

◆ rotation_m

matrix_t ParallelCyclotronTracker::rotation_m
private

◆ setup_m

struct ParallelCyclotronTracker::settings ParallelCyclotronTracker::setup_m
private

◆ sinRefTheta_m

double ParallelCyclotronTracker::sinRefTheta_m
private

Definition at line 255 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), visitCyclotron(), and visitRing().

◆ spiral_flag

bool ParallelCyclotronTracker::spiral_flag = false
private

◆ step_m

◆ stepper_m

Steppers::TimeIntegrator ParallelCyclotronTracker::stepper_m
private

Definition at line 468 of file ParallelCyclotronTracker.h.

Referenced by execute(), and ParallelCyclotronTracker().

◆ TransformTimer_m

◆ turnnumber_m

◆ xaxis

Vector_t const ParallelCyclotronTracker::xaxis = Vector_t(1.0, 0.0, 0.0)
staticprivate

The positive axes unit vectors.

Definition at line 230 of file ParallelCyclotronTracker.h.

Referenced by getQuaternionTwoVectors().

◆ yaxis

Vector_t const ParallelCyclotronTracker::yaxis = Vector_t(0.0, 1.0, 0.0)
staticprivate

Definition at line 231 of file ParallelCyclotronTracker.h.

Referenced by computeSpaceChargeFields_m().

◆ zaxis

Vector_t const ParallelCyclotronTracker::zaxis = Vector_t(0.0, 0.0, 1.0)
staticprivate

Definition at line 232 of file ParallelCyclotronTracker.h.

Referenced by getQuaternionTwoVectors().


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