OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
ParallelCyclotronTracker Class Reference

#include <ParallelCyclotronTracker.h>

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

Classes

struct  settings
 

Public Types

enum  MODE { MODE::UNDEFINED = -1, MODE::SINGLE = 0, MODE::SEO = 1, MODE::BUNCH = 2 }
 
typedef std::vector< double > dvector_t
 
typedef std::vector< int > ivector_t
 
typedef std::pair< double[8],
Component * > 
element_pair
 
typedef std::pair
< ElementBase::ElementType,
element_pair
type_pair
 
typedef std::list< type_pair * > beamline_list
 
- Public Types inherited from AbstractTracker
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, int timeIntegrator, const int &numBunch, const double &mbEta, const double &mbPara, const std::string &mbMode, const std::string &mbBinning)
 Constructor. More...
 
virtual ~ParallelCyclotronTracker ()
 
virtual void visitRing (const Ring &ring)
 Apply the algorithm to an Ring. More...
 
virtual void visitCyclotron (const Cyclotron &cycl)
 Apply the algorithm to a Cyclotorn. More...
 
virtual void visitRFCavity (const RFCavity &)
 Apply the algorithm to a RFCavity. More...
 
virtual void visitBeamBeam (const BeamBeam &)
 Apply the algorithm to a BeamBeam. More...
 
virtual void visitBeamStripping (const BeamStripping &)
 Apply the algorithm to a Beam Stripping. More...
 
virtual void visitCCollimator (const CCollimator &)
 Apply the algorithm to a collimator. More...
 
virtual void visitCorrector (const Corrector &)
 Apply the algorithm to a Corrector. More...
 
virtual void visitDegrader (const Degrader &)
 Apply the algorithm to a Degrader. More...
 
virtual void visitDiagnostic (const Diagnostic &)
 Apply the algorithm to a Diagnostic. More...
 
virtual void visitDrift (const Drift &)
 Apply the algorithm to a Drift. More...
 
virtual void visitFlexibleCollimator (const FlexibleCollimator &)
 Apply the algorithm to a flexible collimator. More...
 
virtual void visitLambertson (const Lambertson &)
 Apply the algorithm to a Lambertson. More...
 
virtual void visitMarker (const Marker &)
 Apply the algorithm to a Marker. More...
 
virtual void visitMonitor (const Monitor &)
 Apply the algorithm to a Monitor. More...
 
virtual void visitMultipole (const Multipole &)
 Apply the algorithm to a Multipole. More...
 
virtual void visitMultipoleT (const MultipoleT &)
 Apply the algorithm to a MultipoleT. More...
 
virtual void visitMultipoleTStraight (const MultipoleTStraight &)
 Apply the algorithm to a MultipoleTStraight. More...
 
virtual void visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &)
 Apply the algorithm to a MultipoleTCurvedConstRadius. More...
 
virtual void visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &)
 Apply the algorithm to a MultipoleTCurvedVarRadius. More...
 
virtual void visitOffset (const Offset &)
 Apply the algorithm to a Offset. More...
 
virtual void visitProbe (const Probe &)
 Apply the algorithm to a Probe. More...
 
virtual void visitRBend (const RBend &)
 Apply the algorithm to a RBend. More...
 
virtual void visitRFQuadrupole (const RFQuadrupole &)
 Apply the algorithm to a RFQuadrupole. More...
 
virtual void visitSBend (const SBend &)
 Apply the algorithm to a SBend. More...
 
virtual void visitSBend3D (const SBend3D &)
 Apply the algorithm to a SBend3D. More...
 
virtual void visitScalingFFAMagnet (const ScalingFFAMagnet &bend)
 Apply the algorithm to a ScalingFFAMagnet. More...
 
virtual void visitSeparator (const Separator &)
 Apply the algorithm to a Separator. 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 visitStripper (const Stripper &)
 Apply the algorithm to a charge stripper. More...
 
virtual void visitParallelPlate (const ParallelPlate &)
 Apply the algorithm to a ParallelPlate, it is empty for cyclotrontracker . More...
 
virtual void visitCyclotronValley (const CyclotronValley &)
 Apply the algorithm to a CyclotronValley.it is empty for cyclotrontracker . More...
 
virtual void visitVariableRFCavity (const VariableRFCavity &cav)
 Apply the algorithm to a VariabelRFCavity. More...
 
virtual void visitVariableRFCavityFringeField (const VariableRFCavityFringeField &cav)
 Apply the algorithm to a VariabelRFCavity. More...
 
virtual void visitVerticalFFAMagnet (const VerticalFFAMagnet &bend)
 Apply the algorithm to a VerticalFFAMagnet. More...
 
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...
 
void setLastDumpedStep (const int para)
 set last dumped step More...
 
void bgf_main_collision_test ()
 
void initializeBoundaryGeometry ()
 
void setPr (double x)
 Method for restart. More...
 
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 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 visitPatch (const Patch &pat)
 Apply the algorithm to a patch. More...
 
virtual void visitAlignWrapper (const AlignWrapper &)
 Apply the algorithm to an align wrapper. More...
 
virtual void visitTrackIntegrator (const TrackIntegrator &)
 Apply the algorithm to an integrator capable of tracking. More...
 
virtual void visitMapIntegrator (const MapIntegrator &)
 Apply the algorithm to an integrator capable of mapping. More...
 
virtual void setNumBunch (int)
 set total number of tracked bunches More...
 
virtual int 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 visitRBend3D (const RBend3D &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitTravelingWave (const TravelingWave &)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitSource (const Source &)
 Apply the algorithm to a source. More...
 
virtual void visitFlaggedElmPtr (const FlaggedElmPtr &)
 Apply the algorithm to a FlaggedElmPtr. More...
 
virtual void visitCorrectorWrapper (const CorrectorWrapper &)
 Apply the algorithm to an corrector wrapper.. More...
 
virtual void visitCyclotronWrapper (const CyclotronWrapper &)
 Apply the algorithm to an cyclotron wrapper.. More...
 
virtual void visitMultipoleWrapper (const MultipoleWrapper &)
 Apply the algorithm to an multipole wrapper.. More...
 
virtual void visitRBendWrapper (const RBendWrapper &)
 Apply the algorithm to an RBend wrapper.. More...
 
virtual void visitSBendWrapper (const SBendWrapper &)
 Apply the algorithm to an SBend wrapper.. More...
 
virtual void visitIntegrator (const Integrator &)
 Apply the algorithm to a generic integrator. More...
 
- Public Member Functions inherited from BeamlineVisitor
 BeamlineVisitor ()
 
virtual ~BeamlineVisitor ()
 

Private Types

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 More...
 
void closeFiles ()
 
void buildupFieldList (double BcParameter[], ElementBase::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 checkNumPart (std::string s)
 
double getHarmonicNumber () const
 
bool isTurnDone ()
 Check if turn done. More...
 
void update_m (double &t, const double &dt, const bool &finishedTurn)
 Update time and path length, write to output files. More...
 
std::tuple< double, double,
double > 
initializeTracking_m ()
 
void finalizeTracking_m (dvector_t &Ttime, dvector_t &Tdeltr, dvector_t &Tdeltz, ivector_t &TturnNumber)
 
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 ()
 

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. More...
 
double bega
 The reference variables. More...
 
double referenceR
 
double referenceTheta
 
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
< MultiBunchHandler
mbHandler_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 More...
 
std::vector< double > azimuth_angle_m
 the different azimuthal angles for the outfTheta_m output files More...
 
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
 
MODE mode_m
 
stepper::INTEGRATOR stepper_m
 

Static Private Attributes

static Vector_t const xaxis = Vector_t(1.0, 0.0, 0.0)
 The positive axes unit vectors. More...
 
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)
 

Additional Inherited Members

- Public Attributes inherited from Tracker
FieldList cavities_m
 set multipacting flag More...
 
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 47 of file ParallelCyclotronTracker.h.

Member Typedef Documentation

Definition at line 61 of file ParallelCyclotronTracker.h.

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

Definition at line 57 of file ParallelCyclotronTracker.h.

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

Definition at line 59 of file ParallelCyclotronTracker.h.

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

Definition at line 456 of file ParallelCyclotronTracker.h.

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

Definition at line 58 of file ParallelCyclotronTracker.h.

Definition at line 60 of file ParallelCyclotronTracker.h.

Member Enumeration Documentation

Enumerator
UNDEFINED 
SINGLE 
SEO 
BUNCH 

Definition at line 51 of file ParallelCyclotronTracker.h.

Constructor & Destructor Documentation

ParallelCyclotronTracker::ParallelCyclotronTracker ( const Beamline beamline,
PartBunchBase< double, 3 > *  bunch,
DataSink ds,
const PartData reference,
bool  revBeam,
bool  revTrack,
int  maxSTEPS,
int  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 BinRepartTimer_m, BUNCH, ElementBase::clone(), DelParticleTimer_m, DumpTimer_m, IpplTimings::getTimer(), initialTotalNum_m, IntegrationTimer_m, itsBeamline, itsDataSink, stepper::LF2, mbHandler_m, mode_m, stepper::MTS, PluginElemTimer_m, stepper::RK4, SEO, SINGLE, stepper_m, TransformTimer_m, stepper::UNDEFINED, and UNDEFINED.

Here is the call graph for this function:

ParallelCyclotronTracker::~ParallelCyclotronTracker ( )
virtual
ParallelCyclotronTracker::ParallelCyclotronTracker ( )
private
ParallelCyclotronTracker::ParallelCyclotronTracker ( const ParallelCyclotronTracker )
private

Member Function Documentation

bool ParallelCyclotronTracker::applyPluginElements ( const double  dt)
private
void ParallelCyclotronTracker::bgf_main_collision_test ( )
void ParallelCyclotronTracker::borisExternalFields ( double  h)
private
void ParallelCyclotronTracker::buildupFieldList ( double  BcParameter[],
ElementBase::ElementType  elementType,
Component elptr 
)
private
void ParallelCyclotronTracker::bunchDumpPhaseSpaceData ( )
private
void ParallelCyclotronTracker::bunchDumpStatData ( )
private
void ParallelCyclotronTracker::bunchMode_m ( double &  t,
const double  dt,
bool &  finishedTurn 
)
private
Vector_t ParallelCyclotronTracker::calcMeanP ( ) const
private
Vector_t ParallelCyclotronTracker::calcMeanR ( short  bunchNr = -1) const
private
double ParallelCyclotronTracker::calculateAngle ( double  x,
double  y 
)
inlineprivate
Parameters
x
y
Returns
angle range [0~2PI) degree

Definition at line 555 of file ParallelCyclotronTracker.h.

References atan2(), and Physics::two_pi.

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

Here is the call graph for this function:

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

Definition at line 569 of file ParallelCyclotronTracker.h.

References atan2().

Referenced by MtsTracker(), and singleMode_m().

Here is the call graph for this function:

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

Definition at line 1561 of file ParallelCyclotronTracker.cpp.

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

Referenced by gapCrossKick_m().

Here is the call graph for this function:

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

Definition at line 1195 of file ParallelCyclotronTracker.cpp.

References endl(), PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, and reduce().

Referenced by initDistInGlobalFrame().

Here is the call graph for this function:

void ParallelCyclotronTracker::closeFiles ( )
private

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

Definition at line 317 of file ParallelCyclotronTracker.cpp.

References outfTheta_m.

Referenced by finalizeTracking_m().

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

Definition at line 3466 of file ParallelCyclotronTracker.cpp.

References FieldDimensions.

Referenced by borisExternalFields(), and getFieldsAtPoint().

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

Definition at line 241 of file ParallelCyclotronTracker.cpp.

References sqrt().

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

Here is the call graph for this function:

void ParallelCyclotronTracker::computeSpaceChargeFields_m ( )
private
bool ParallelCyclotronTracker::deleteParticle ( bool  flagNeedUpdate = false)
private
void ParallelCyclotronTracker::dumpAngle ( const double &  theta,
double &  prevAzimuth,
double &  azimuth,
const short &  bunchNr = 0 
)
private

Definition at line 216 of file ParallelCyclotronTracker.cpp.

References OpalData::getInstance(), and turnnumber_m.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::dumpAzimuthAngles_m ( const double &  t,
const Vector_t R,
const Vector_t P,
const double &  oldReferenceTheta,
const double &  temp_meanTheta 
)
inlineprivate
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 3348 of file ParallelCyclotronTracker.cpp.

References cos(), Physics::deg2rad, endl(), isTurnDone(), outfTheta_m, Attrib::Distribution::R, sin(), sqrt(), and turnnumber_m.

Referenced by MtsTracker(), and singleMode_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::evaluateSpaceChargeField ( )
private
void ParallelCyclotronTracker::execute ( )
virtual
void ParallelCyclotronTracker::finalizeTracking_m ( dvector_t Ttime,
dvector_t Tdeltr,
dvector_t Tdeltz,
ivector_t TturnNumber 
)
private
void ParallelCyclotronTracker::gapCrossKick_m ( size_t  i,
double  t,
double  dt,
const Vector_t Rold,
const Vector_t Pold 
)
private
void ParallelCyclotronTracker::GenericTracker ( )
private
bool ParallelCyclotronTracker::getFieldsAtPoint ( const double &  t,
const size_t &  Pindex,
Vector_t Efield,
Vector_t Bfield 
)
private
double ParallelCyclotronTracker::getHarmonicNumber ( ) const
private

Definition at line 1686 of file ParallelCyclotronTracker.cpp.

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

Referenced by bgf_main_collision_test(), and initializeTracking_m().

Here is the call graph for this function:

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

Definition at line 1973 of file ParallelCyclotronTracker.cpp.

References cos(), cross(), dot(), fabs(), normalizeQuaternion(), normalizeVector(), pi, sin(), sqrt(), xaxis, and zaxis.

Referenced by bunchMode_m(), and computeSpaceChargeFields_m().

Here is the call graph for this function:

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 1619 of file ParallelCyclotronTracker.cpp.

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

Referenced by finalizeTracking_m().

Here is the call graph for this function:

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

Definition at line 1776 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

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 1805 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

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

Definition at line 1826 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

bool ParallelCyclotronTracker::hasMultiBunch ( ) const
inlineprivate

Definition at line 582 of file ParallelCyclotronTracker.h.

References isMultiBunch(), and mbHandler_m.

Referenced by computeSpaceChargeFields_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::initDistInGlobalFrame ( )
private
void ParallelCyclotronTracker::initializeBoundaryGeometry ( )
std::tuple< double, double, double > ParallelCyclotronTracker::initializeTracking_m ( )
private
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 3590 of file ParallelCyclotronTracker.cpp.

References isMultiBunch(), itsDataSink, mbHandler_m, and DataSink::setMultiBunchInitialPathLengh().

Referenced by initializeTracking_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::initTrackOrbitFile ( )
private
void ParallelCyclotronTracker::injectBunch ( bool &  flagTransition)
private
bool ParallelCyclotronTracker::isMultiBunch ( ) const
inlineprivate
bool ParallelCyclotronTracker::isTurnDone ( )
private
bool ParallelCyclotronTracker::kick ( double  h)
private
void ParallelCyclotronTracker::localToGlobal ( ParticleAttrib< Vector_t > &  vectorArray,
double  phi,
Vector_t const  translationToGlobal = 0 
)
private
void ParallelCyclotronTracker::localToGlobal ( ParticleAttrib< Vector_t > &  vectorArray,
Quaternion_t const  quaternion,
Vector_t const  meanR = Vector_t(0.0) 
)
inlineprivate

Definition at line 1789 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

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 1847 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

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

Definition at line 1868 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::MtsTracker ( )
private
void ParallelCyclotronTracker::normalizeQuaternion ( Quaternion_t quaternion)
inlineprivate

Definition at line 1903 of file ParallelCyclotronTracker.cpp.

References dot(), fabs(), and sqrt().

Referenced by getQuaternionTwoVectors().

Here is the call graph for this function:

void ParallelCyclotronTracker::normalizeVector ( Vector_t vector)
inlineprivate

Definition at line 1915 of file ParallelCyclotronTracker.cpp.

References dot(), fabs(), and sqrt().

Referenced by getQuaternionTwoVectors().

Here is the call graph for this function:

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

@ open / close output coordinate files

Parameters
fnBase file name

Definition at line 291 of file ParallelCyclotronTracker.cpp.

References endl(), and outfTheta_m.

Referenced by initializeTracking_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::operator= ( const ParallelCyclotronTracker )
private
bool ParallelCyclotronTracker::push ( double  h)
private
void ParallelCyclotronTracker::repartition ( )
private
bool ParallelCyclotronTracker::RFkick ( RFCavity rfcavity,
const double  t,
const double  dt,
const int  Pindex 
)
private
void ParallelCyclotronTracker::rotateAroundX ( ParticleAttrib< Vector_t > &  particleVectors,
double const  psi 
)
inlineprivate

Definition at line 1950 of file ParallelCyclotronTracker.cpp.

References cos(), dot(), PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, and sin().

Referenced by globalToLocal(), and localToGlobal().

Here is the call graph for this function:

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

Definition at line 1963 of file ParallelCyclotronTracker.cpp.

References cos(), dot(), and sin().

Here is the call graph for this function:

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

Definition at line 1927 of file ParallelCyclotronTracker.cpp.

References cos(), dot(), PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, and sin().

Referenced by globalToLocal(), and localToGlobal().

Here is the call graph for this function:

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

Definition at line 1940 of file ParallelCyclotronTracker.cpp.

References cos(), dot(), and sin().

Here is the call graph for this function:

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

Definition at line 1889 of file ParallelCyclotronTracker.cpp.

References cross(), dot(), PartBunchBase< T, Dim >::getLocalNum(), and Tracker::itsBunch_m.

Referenced by globalToLocal(), and localToGlobal().

Here is the call graph for this function:

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

Definition at line 205 of file ParallelCyclotronTracker.h.

References bega.

void ParallelCyclotronTracker::setLastDumpedStep ( const int  para)
inline

set last dumped step

Definition at line 196 of file ParallelCyclotronTracker.h.

References lastDumpedStep_m.

void ParallelCyclotronTracker::setPhi ( double  x)
inline

Definition at line 206 of file ParallelCyclotronTracker.h.

References referencePhi.

void ParallelCyclotronTracker::setPr ( double  x)
inline

Method for restart.

Definition at line 199 of file ParallelCyclotronTracker.h.

References referencePr.

void ParallelCyclotronTracker::setPreviousH5Local ( bool  x)
inline

Definition at line 208 of file ParallelCyclotronTracker.h.

References previousH5Local.

void ParallelCyclotronTracker::setPsi ( double  x)
inline

Definition at line 207 of file ParallelCyclotronTracker.h.

References referencePsi.

void ParallelCyclotronTracker::setPt ( double  x)
inline

Definition at line 200 of file ParallelCyclotronTracker.h.

References referencePt.

void ParallelCyclotronTracker::setPz ( double  x)
inline

Definition at line 201 of file ParallelCyclotronTracker.h.

References referencePz.

void ParallelCyclotronTracker::setR ( double  x)
inline

Definition at line 202 of file ParallelCyclotronTracker.h.

References referenceR.

void ParallelCyclotronTracker::setTheta ( double  x)
inline

Definition at line 203 of file ParallelCyclotronTracker.h.

References referenceTheta.

void ParallelCyclotronTracker::setZ ( double  x)
inline

Definition at line 204 of file ParallelCyclotronTracker.h.

References referenceZ.

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

Definition at line 3540 of file ParallelCyclotronTracker.cpp.

References computePathLengthUpdate(), isMultiBunch(), Tracker::itsBunch_m, mbHandler_m, pathLength_m, and PartBunchBase< T, Dim >::set_sPos().

Referenced by update_m().

Here is the call graph for this function:

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

Definition at line 3561 of file ParallelCyclotronTracker.cpp.

References Physics::e, PartBunchBase< T, Dim >::getT(), isMultiBunch(), Tracker::itsBunch_m, mbHandler_m, and PartBunchBase< T, Dim >::setT().

Referenced by update_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitBeamBeam ( const BeamBeam )
virtual

Apply the algorithm to a BeamBeam.

Not implemented and most probable never used

Reimplemented from DefaultVisitor.

Definition at line 559 of file ParallelCyclotronTracker.cpp.

References endl().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitBeamline ( const Beamline bl)
virtual

Apply the algorithm to a beam line.

Parameters
bl

Reimplemented from DefaultVisitor.

Definition at line 1190 of file ParallelCyclotronTracker.cpp.

References TBeamline< T >::iterate().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitBeamStripping ( const BeamStripping bstp)
virtual
void ParallelCyclotronTracker::visitCCollimator ( const CCollimator coll)
virtual
void ParallelCyclotronTracker::visitCorrector ( const Corrector corr)
virtual

Apply the algorithm to a Corrector.

Parameters
corr

Reimplemented from DefaultVisitor.

Definition at line 647 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitCyclotron ( const Cyclotron cycl)
virtual

Apply the algorithm to a Cyclotorn.

Parameters
cycl

To ease the initialise() function, set a integral parameter fieldflag internally. Its value is by the option "TYPE" of the element "CYCLOTRON" fieldflag = 1, readin PSI format measured field file (default) fieldflag = 2, readin carbon cyclotron field file created by Jianjun Yang, TYPE=CARBONCYCL fieldflag = 3, readin ANSYS format file for CYCIAE-100 created by Jianjun Yang, TYPE=CYCIAE fieldflag = 4, readin AVFEQ format file for Riken cyclotrons fieldflag = 5, readin FFA format file for MSU/FNAL FFA fieldflag = 6, readin both median plane B field map and 3D E field map of RF cavity for compact cyclotron fieldflag = 7, read in fields for Daniel's synchrocyclotron simulations

Reimplemented from DefaultVisitor.

Definition at line 385 of file ParallelCyclotronTracker.cpp.

References bega, buildupFieldList(), ElementBase::clone(), cos(), cosRefTheta_m, cycl_m, ElementBase::CYCLOTRON, Physics::deg2rad, Physics::e, endl(), PartData::getBeta(), Cyclotron::getBScale(), Cyclotron::getCyclHarm(), Cyclotron::getCyclotronType(), Cyclotron::getFieldFlag(), Cyclotron::getFieldMapFN(), PartData::getGamma(), OpalData::getInstance(), Cyclotron::getMaxR(), Cyclotron::getMaxZ(), Cyclotron::getMinR(), Cyclotron::getMinZ(), Cyclotron::getNumberOfTrimcoils(), Cyclotron::getPHIinit(), Cyclotron::getPRinit(), Cyclotron::getPZinit(), Cyclotron::getRinit(), Cyclotron::getRmax(), Cyclotron::getRmin(), Cyclotron::getSpiralFlag(), Cyclotron::getSymmetry(), Cyclotron::getZinit(), Options::GLOBAL, Cyclotron::initialise(), isMultiBunch(), Tracker::itsBunch_m, AbstractTracker::itsReference, mbHandler_m, myElements, previousH5Local, Options::psDumpFrame, referencePhi, referencePr, referencePsi, referencePt, referencePtot, referencePz, referenceR, referenceTheta, referenceZ, sin(), sinRefTheta_m, spiral_flag, and sqrt().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitCyclotronValley ( const CyclotronValley cv)
virtual

Apply the algorithm to a CyclotronValley.it is empty for cyclotrontracker .

Parameters
cv

Reimplemented from DefaultVisitor.

Definition at line 1102 of file ParallelCyclotronTracker.cpp.

void ParallelCyclotronTracker::visitDegrader ( const Degrader deg)
virtual

Apply the algorithm to a Degrader.

Parameters
degrader

Reimplemented from DefaultVisitor.

Definition at line 657 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitDiagnostic ( const Diagnostic diag)
virtual

Apply the algorithm to a Diagnostic.

Parameters
diag

Reimplemented from DefaultVisitor.

Definition at line 669 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitDrift ( const Drift drift)
virtual

Apply the algorithm to a Drift.

Parameters
drift

Reimplemented from DefaultVisitor.

Definition at line 679 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitFlexibleCollimator ( const FlexibleCollimator )
virtual

Apply the algorithm to a flexible collimator.

Parameters

Reimplemented from DefaultVisitor.

Definition at line 689 of file ParallelCyclotronTracker.cpp.

void ParallelCyclotronTracker::visitLambertson ( const Lambertson lamb)
virtual

Apply the algorithm to a Lambertson.

Parameters
lamb

Reimplemented from DefaultVisitor.

Definition at line 698 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMarker ( const Marker marker)
virtual

Apply the algorithm to a Marker.

Parameters
marker

Reimplemented from DefaultVisitor.

Definition at line 719 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMonitor ( const Monitor corr)
virtual

Apply the algorithm to a Monitor.

Parameters
corr

Reimplemented from DefaultVisitor.

Definition at line 730 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipole ( const Multipole mult)
virtual

Apply the algorithm to a Multipole.

Parameters
mult

Reimplemented from DefaultVisitor.

Definition at line 741 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipoleT ( const MultipoleT multT)
virtual

Apply the algorithm to a MultipoleT.

Parameters
multT

Reimplemented from DefaultVisitor.

Definition at line 751 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipoleTCurvedConstRadius ( const MultipoleTCurvedConstRadius multTccurv)
virtual

Apply the algorithm to a MultipoleTCurvedConstRadius.

Parameters
multTccurv

Reimplemented from DefaultVisitor.

Definition at line 783 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), MultipoleTCurvedConstRadius::clone(), endl(), myElements, and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipoleTCurvedVarRadius ( const MultipoleTCurvedVarRadius multTvcurv)
virtual

Apply the algorithm to a MultipoleTCurvedVarRadius.

Parameters
multTvcurv

Reimplemented from DefaultVisitor.

Definition at line 799 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), MultipoleTCurvedVarRadius::clone(), endl(), myElements, and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipoleTStraight ( const MultipoleTStraight multTstraight)
virtual

Apply the algorithm to a MultipoleTStraight.

Parameters
multTstraight

Reimplemented from DefaultVisitor.

Definition at line 767 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), MultipoleTStraight::clone(), endl(), myElements, and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitOffset ( const Offset off)
virtual

Apply the algorithm to a Offset.

Reimplemented from DefaultVisitor.

Definition at line 703 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), Ring::getNextNormal(), Ring::getNextPosition(), opalRing_m, and Offset::updateGeometry().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitParallelPlate ( const ParallelPlate pplate)
virtual

Apply the algorithm to a ParallelPlate, it is empty for cyclotrontracker .

Parameters
pplate

Reimplemented from DefaultVisitor.

Definition at line 1089 of file ParallelCyclotronTracker.cpp.

void ParallelCyclotronTracker::visitProbe ( const Probe prob)
virtual
void ParallelCyclotronTracker::visitRBend ( const RBend bend)
virtual

Apply the algorithm to a RBend.

Parameters
bend

Reimplemented from DefaultVisitor.

Definition at line 854 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitRFCavity ( const RFCavity as)
virtual
void ParallelCyclotronTracker::visitRFQuadrupole ( const RFQuadrupole rfq)
virtual

Apply the algorithm to a RFQuadrupole.

Parameters
rfq

Reimplemented from DefaultVisitor.

Definition at line 1002 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitRing ( const Ring ring)
virtual
void ParallelCyclotronTracker::visitSBend ( const SBend bend)
virtual

Apply the algorithm to a SBend.

Parameters
bend

Reimplemented from DefaultVisitor.

Definition at line 1012 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitSBend3D ( const SBend3D bend)
virtual

Apply the algorithm to a SBend3D.

Reimplemented from DefaultVisitor.

Definition at line 859 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), endl(), and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitScalingFFAMagnet ( const ScalingFFAMagnet bend)
virtual

Apply the algorithm to a ScalingFFAMagnet.

Reimplemented from DefaultVisitor.

Definition at line 868 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), endl(), and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitSeparator ( const Separator sep)
virtual

Apply the algorithm to a Separator.

Parameters
sep

Reimplemented from DefaultVisitor.

Definition at line 1022 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitSeptum ( const Septum sept)
virtual
void ParallelCyclotronTracker::visitSolenoid ( const Solenoid solenoid)
virtual

Apply the algorithm to a Solenoid.

Parameters
solenoid

Reimplemented from DefaultVisitor.

Definition at line 1075 of file ParallelCyclotronTracker.cpp.

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

Here is the call graph for this function:

void ParallelCyclotronTracker::visitStripper ( const Stripper stripper)
virtual
void ParallelCyclotronTracker::visitVariableRFCavity ( const VariableRFCavity cav)
virtual

Apply the algorithm to a VariabelRFCavity.

Reimplemented from DefaultVisitor.

Definition at line 878 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), endl(), and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitVariableRFCavityFringeField ( const VariableRFCavityFringeField cav)
virtual

Apply the algorithm to a VariabelRFCavity.

Reimplemented from DefaultVisitor.

Definition at line 888 of file ParallelCyclotronTracker.cpp.

References endl().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitVerticalFFAMagnet ( const VerticalFFAMagnet bend)
virtual

Apply the algorithm to a VerticalFFAMagnet.

Reimplemented from DefaultVisitor.

Definition at line 897 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), endl(), and opalRing_m.

Here is the call graph for this function:

Member Data Documentation

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

the different azimuthal angles for the outfTheta_m output files

Definition at line 314 of file ParallelCyclotronTracker.h.

Referenced by dumpAzimuthAngles_m(), and initializeTracking_m().

double ParallelCyclotronTracker::azimuth_m
private

Definition at line 286 of file ParallelCyclotronTracker.h.

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

double ParallelCyclotronTracker::bega
private

The reference variables.

Definition at line 241 of file ParallelCyclotronTracker.h.

Referenced by setBeGa(), and visitCyclotron().

BoundaryGeometry* ParallelCyclotronTracker::bgf_m
private
IpplTimings::TimerRef ParallelCyclotronTracker::BinRepartTimer_m
private

Definition at line 337 of file ParallelCyclotronTracker.h.

Referenced by ParallelCyclotronTracker(), and repartition().

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

Definition at line 224 of file ParallelCyclotronTracker.h.

Referenced by execute(), and push().

double ParallelCyclotronTracker::cosRefTheta_m
private

Definition at line 261 of file ParallelCyclotronTracker.h.

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

Cyclotron* ParallelCyclotronTracker::cycl_m
private

Definition at line 230 of file ParallelCyclotronTracker.h.

Referenced by applyPluginElements(), and visitCyclotron().

IpplTimings::TimerRef ParallelCyclotronTracker::DelParticleTimer_m
private

Definition at line 339 of file ParallelCyclotronTracker.h.

Referenced by deleteParticle(), and ParallelCyclotronTracker().

IpplTimings::TimerRef ParallelCyclotronTracker::DumpTimer_m
private
Vector_t ParallelCyclotronTracker::extB_m
private

Definition at line 305 of file ParallelCyclotronTracker.h.

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

Vector_t ParallelCyclotronTracker::extE_m
private

Definition at line 305 of file ParallelCyclotronTracker.h.

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

Vector_t ParallelCyclotronTracker::FDext_m[2]
private

Definition at line 305 of file ParallelCyclotronTracker.h.

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

beamline_list ParallelCyclotronTracker::FieldDimensions
private
const size_t ParallelCyclotronTracker::initialLocalNum_m
private

Definition at line 308 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame().

const size_t ParallelCyclotronTracker::initialTotalNum_m
private

Definition at line 309 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), and ParallelCyclotronTracker().

IpplTimings::TimerRef ParallelCyclotronTracker::IntegrationTimer_m
private
Beamline* ParallelCyclotronTracker::itsBeamline
private
DataSink* ParallelCyclotronTracker::itsDataSink
private
std::unique_ptr< Stepper<function_t> > ParallelCyclotronTracker::itsStepper_mp
private
int ParallelCyclotronTracker::lastDumpedStep_m
private
std::unique_ptr<LossDataSink> ParallelCyclotronTracker::lossDs_m
private
int ParallelCyclotronTracker::maxSteps_m
private

The maximal number of steps the system is integrated.

Definition at line 233 of file ParallelCyclotronTracker.h.

Referenced by GenericTracker(), and MtsTracker().

std::unique_ptr<MultiBunchHandler> ParallelCyclotronTracker::mbHandler_m
private
MODE ParallelCyclotronTracker::mode_m
private
std::list<Component *> ParallelCyclotronTracker::myElements
private
const int ParallelCyclotronTracker::myNode_m
private
Ring* ParallelCyclotronTracker::opalRing_m
private
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 312 of file ParallelCyclotronTracker.h.

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

std::ofstream ParallelCyclotronTracker::outfTrackOrbit_m
private

output file for six dimensional phase space

Definition at line 320 of file ParallelCyclotronTracker.h.

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

double ParallelCyclotronTracker::pathLength_m
private

Definition at line 269 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), and updatePathLength().

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

Definition at line 223 of file ParallelCyclotronTracker.h.

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

IpplTimings::TimerRef ParallelCyclotronTracker::PluginElemTimer_m
private

Definition at line 338 of file ParallelCyclotronTracker.h.

Referenced by applyPluginElements(), and ParallelCyclotronTracker().

double ParallelCyclotronTracker::prevAzimuth_m
private

Definition at line 287 of file ParallelCyclotronTracker.h.

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

bool ParallelCyclotronTracker::previousH5Local
private

Definition at line 258 of file ParallelCyclotronTracker.h.

Referenced by setPreviousH5Local(), and visitCyclotron().

Vector_t ParallelCyclotronTracker::PreviousMeanP
private

Definition at line 256 of file ParallelCyclotronTracker.h.

Referenced by bunchMode_m(), and computeSpaceChargeFields_m().

double ParallelCyclotronTracker::referencePhi
private

Definition at line 252 of file ParallelCyclotronTracker.h.

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

double ParallelCyclotronTracker::referencePr
private
double ParallelCyclotronTracker::referencePsi
private

Definition at line 251 of file ParallelCyclotronTracker.h.

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

double ParallelCyclotronTracker::referencePt
private
double ParallelCyclotronTracker::referencePtot
private

Definition at line 249 of file ParallelCyclotronTracker.h.

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

double ParallelCyclotronTracker::referencePz = 0.0
private
double ParallelCyclotronTracker::referenceR
private
double ParallelCyclotronTracker::referenceTheta
private
double ParallelCyclotronTracker::referenceZ = 0.0
private
long long ParallelCyclotronTracker::restartStep0_m
private

Definition at line 281 of file ParallelCyclotronTracker.h.

Referenced by execute(), and initializeTracking_m().

struct ParallelCyclotronTracker::settings ParallelCyclotronTracker::setup_m
private
double ParallelCyclotronTracker::sinRefTheta_m
private

Definition at line 260 of file ParallelCyclotronTracker.h.

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

bool ParallelCyclotronTracker::spiral_flag = false
private
long long ParallelCyclotronTracker::step_m
private
stepper::INTEGRATOR ParallelCyclotronTracker::stepper_m
private

Definition at line 469 of file ParallelCyclotronTracker.h.

Referenced by execute(), and ParallelCyclotronTracker().

IpplTimings::TimerRef ParallelCyclotronTracker::TransformTimer_m
private
int ParallelCyclotronTracker::turnnumber_m
private
Vector_t const ParallelCyclotronTracker::xaxis = Vector_t(1.0, 0.0, 0.0)
staticprivate

The positive axes unit vectors.

Definition at line 236 of file ParallelCyclotronTracker.h.

Referenced by getQuaternionTwoVectors().

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

Definition at line 237 of file ParallelCyclotronTracker.h.

Referenced by computeSpaceChargeFields_m().

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

Definition at line 238 of file ParallelCyclotronTracker.h.

Referenced by getQuaternionTwoVectors().


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