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

#include <ParallelSliceTracker.h>

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

Public Member Functions

 ParallelSliceTracker (const Beamline &bl, const PartData &data, bool revBeam, bool revTrack)
 
 ParallelSliceTracker (const Beamline &bl, EnvelopeBunch &bunch, DataSink &ds, const PartData &data, bool revBeam, bool revTrack, const std::vector< unsigned long long > &maxSTEPS, double zstart, const std::vector< double > &zstop, const std::vector< double > &dt)
 
virtual ~ParallelSliceTracker ()
 
virtual void visitAlignWrapper (const AlignWrapper &)
 Apply the algorithm to an align wrapper. More...
 
virtual void visitBeamBeam (const BeamBeam &)
 Apply the algorithm to a beam-beam. 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 drift. 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 visitProbe (const Probe &)
 Apply the algorithm to a probe. More...
 
virtual void visitRBend (const RBend &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitRFCavity (const RFCavity &)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitTravelingWave (const TravelingWave &)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitRFQuadrupole (const RFQuadrupole &)
 Apply the algorithm to a RF quadrupole. More...
 
virtual void visitSBend (const SBend &)
 Apply the algorithm to a sector bend. 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 visitSource (const Source &)
 Apply the algorithm to a source. More...
 
virtual void visitParallelPlate (const ParallelPlate &)
 Apply the algorithm to a ParallelPlate. More...
 
virtual void visitCyclotronValley (const CyclotronValley &)
 Apply the algorithm to a CyclotronValley. 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...
 
- 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 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 visitBeamStripping (const BeamStripping &)
 Apply the algorithm to a beam stripping. More...
 
virtual void visitCyclotron (const Cyclotron &)
 Apply the algorithm to an cyclotron. More...
 
virtual void visitRing (const Ring &)
 Apply the algorithm to an opal ring.. 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 an Offset. More...
 
virtual void visitRBend3D (const RBend3D &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitVariableRFCavity (const VariableRFCavity &vcav)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitVariableRFCavityFringeField (const VariableRFCavityFringeField &vcav)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitSBend3D (const SBend3D &)
 Apply the algorithm to a sector bend. More...
 
virtual void visitScalingFFAMagnet (const ScalingFFAMagnet &)
 Apply the algorithm to a scaling FFA magnet. More...
 
virtual void visitVerticalFFAMagnet (const VerticalFFAMagnet &)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitStripper (const Stripper &)
 Apply the algorithm to a charge stripper. 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 Member Functions

 ParallelSliceTracker ()
 
 ParallelSliceTracker (const ParallelSliceTracker &)
 
void operator= (const ParallelSliceTracker &)
 
void saveCavityPhases ()
 
void restoreCavityPhases ()
 
void updateRFElement (std::string elName, double maxPhi)
 
void printRFPhases ()
 
void findStartPosition (const BorisPusher &pusher)
 
void autophaseCavities (const BorisPusher &pusher)
 
void applyEntranceFringe (double edge, double curve, const BMultipoleField &field, double scale)
 
void applyExitFringe (double edge, double curve, const BMultipoleField &field, double scale)
 
void FieldsOutput (double z, double Ex, double Ey, double Ez, double Bx, double By, double Bz)
 
void kickParticles ()
 
void updateReferenceParticle (const BorisPusher &pusher)
 
void updateSpaceOrientation (const bool &move=false)
 
void kickReferenceParticle (const Vector_t &externalE, const Vector_t &externalB)
 
void writePhaseSpace (const long long step, const double &sposRef)
 
void writeLastStepPhaseSpace (const long long step, const double &sposRef)
 
void prepareSections ()
 
void handleAutoPhasing ()
 
void timeIntegration ()
 
void computeExternalFields (OrbitThreader &oth)
 
void switchElements (double scaleMargin=3.0)
 
void computeSpaceChargeFields ()
 
void dumpStats (long long step)
 
bool hasEndOfLineReached ()
 
void handleRestartRun ()
 
void setTime ()
 
void setLastStep ()
 
unsigned long long getMaxSteps (std::queue< unsigned long long > numSteps)
 
void selectDT ()
 
void changeDT ()
 

Private Attributes

double currentSimulationTime_m
 
bool globalEOL_m
 
OpalBeamline itsOpalBeamline_m
 
EnvelopeBunchitsBunch_m
 
DataSinkitsDataSink_m
 
Vector_t RefPartR_m
 
Vector_t RefPartP_m
 
double pathLength_m
 
double zstart_m
 where to start More...
 
std::queue< double > zStop_m
 where to stop More...
 
double dtCurrentTrack_m
 
std::queue< double > dtAllTracks_m
 
std::queue< unsigned long long > localTrackSteps_m
 The maximal number of steps the system is integrated per TRACK. More...
 
CoordinateSystemTrafo referenceToLabCSTrafo_m
 
IpplTimings::TimerRef timeIntegrationTimer1_m
 
IpplTimings::TimerRef timeIntegrationTimer2_m
 
IpplTimings::TimerRef timeFieldEvaluation_m
 
IpplTimings::TimerRef BinRepartTimer_m
 
IpplTimings::TimerRef WakeFieldTimer_m
 

Additional Inherited Members

- Public Types inherited from AbstractTracker
enum  {
  X, PX, Y, PY,
  T, PT
}
 
- 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 46 of file ParallelSliceTracker.h.

Constructor & Destructor Documentation

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

Definition at line 20 of file ParallelSliceTracker.cpp.

References Beamline::getInitialDirection(), Beamline::getOrigin3D(), CoordinateSystemTrafo::inverted(), and referenceToLabCSTrafo_m.

Here is the call graph for this function:

ParallelSliceTracker::ParallelSliceTracker ( const Beamline bl,
EnvelopeBunch bunch,
DataSink ds,
const PartData data,
bool  revBeam,
bool  revTrack,
const std::vector< unsigned long long > &  maxSTEPS,
double  zstart,
const std::vector< double > &  zstop,
const std::vector< double > &  dt 
)
explicit
ParallelSliceTracker::~ParallelSliceTracker ( )
virtual

Definition at line 74 of file ParallelSliceTracker.cpp.

ParallelSliceTracker::ParallelSliceTracker ( )
private
ParallelSliceTracker::ParallelSliceTracker ( const ParallelSliceTracker )
private

Member Function Documentation

void ParallelSliceTracker::applyEntranceFringe ( double  edge,
double  curve,
const BMultipoleField field,
double  scale 
)
private

Definition at line 173 of file ParallelSliceTracker.cpp.

void ParallelSliceTracker::applyExitFringe ( double  edge,
double  curve,
const BMultipoleField field,
double  scale 
)
private

Definition at line 178 of file ParallelSliceTracker.cpp.

void ParallelSliceTracker::autophaseCavities ( const BorisPusher pusher)
private
void ParallelSliceTracker::changeDT ( )
private

Definition at line 670 of file ParallelSliceTracker.cpp.

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

Here is the call graph for this function:

void ParallelSliceTracker::computeExternalFields ( OrbitThreader oth)
private
void ParallelSliceTracker::computeSpaceChargeFields ( )
private

Definition at line 462 of file ParallelSliceTracker.cpp.

References EnvelopeBunch::computeSpaceCharge(), and itsBunch_m.

Referenced by execute().

Here is the call graph for this function:

void ParallelSliceTracker::dumpStats ( long long  step)
private

Definition at line 468 of file ParallelSliceTracker.cpp.

References EnvelopeBunch::get_sPos(), itsBunch_m, Options::psDumpFreq, Options::statDumpFreq, and writePhaseSpace().

Referenced by execute().

Here is the call graph for this function:

void ParallelSliceTracker::execute ( )
virtual

Apply the algorithm to the top-level beamline.

Reimplemented from DefaultVisitor.

Definition at line 183 of file ParallelSliceTracker.cpp.

References abs(), OpalBeamline::activateElements(), PartData::beta, Physics::c, ceil(), computeExternalFields(), computeSpaceChargeFields(), OpalBeamline::containsSource(), currentSimulationTime_m, PartBunchBase< T, Dim >::doEmission(), dtAllTracks_m, dtCurrentTrack_m, dumpStats(), Physics::e, EnvelopeBunch::Eavg(), endl(), euclidean_norm(), OrbitThreader::execute(), findStartPosition(), PartData::gamma, EnvelopeBunch::get_bounds(), PartBunchBase< T, Dim >::get_pmean_Distribution(), EnvelopeBunch::get_sPos(), IpplInfo::getComm(), PartBunchBase< T, Dim >::getdT(), OpalData::getGlobalPhaseShift(), PartBunchBase< T, Dim >::getGlobalTrackStep(), OpalData::getInstance(), Util::getLengthString(), PartData::getM(), PartBunchBase< T, Dim >::getM(), getMaxSteps(), PartData::getP(), PartData::getQ(), EnvelopeBunch::getT(), Util::getTimeString(), EnvelopeBunch::getTotalNum(), globalEOL_m, gmsg, handleAutoPhasing(), hasEndOfLineReached(), itsBunch_m, itsOpalBeamline_m, AbstractTracker::itsReference, level1(), level2(), level3(), localTrackSteps_m, Physics::m_e, pathLength_m, prepareSections(), referenceToLabCSTrafo_m, RefPartP_m, PartBunchBase< T, Dim >::RefPartP_m, RefPartR_m, PartBunchBase< T, Dim >::RefPartR_m, restoreCavityPhases(), CoordinateSystemTrafo::rotateFrom(), CoordinateSystemTrafo::rotateTo(), saveCavityPhases(), selectDT(), PartBunchBase< T, Dim >::set_sPos(), setLastStep(), OpalData::setLastStep(), PartBunchBase< T, Dim >::setT(), setTime(), sqrt(), switchElements(), OpalBeamline::switchElementsOff(), OPALTimer::Timer::time(), timeIntegration(), PartBunchBase< T, Dim >::toLabTrafo_m, CoordinateSystemTrafo::transformFrom(), CoordinateSystemTrafo::transformTo(), writeLastStepPhaseSpace(), EnvelopeBunch::zAvg(), zstart_m, and zStop_m.

void ParallelSliceTracker::FieldsOutput ( double  z,
double  Ex,
double  Ey,
double  Ez,
double  Bx,
double  By,
double  Bz 
)
private
void ParallelSliceTracker::findStartPosition ( const BorisPusher pusher)
private
unsigned long long ParallelSliceTracker::getMaxSteps ( std::queue< unsigned long long >  numSteps)
inlineprivate

Definition at line 368 of file ParallelSliceTracker.h.

Referenced by execute().

void ParallelSliceTracker::handleAutoPhasing ( )
private
void ParallelSliceTracker::handleRestartRun ( )
private
bool ParallelSliceTracker::hasEndOfLineReached ( )
private

Definition at line 515 of file ParallelSliceTracker.cpp.

References globalEOL_m, and reduce().

Referenced by execute().

Here is the call graph for this function:

void ParallelSliceTracker::kickParticles ( )
inlineprivate

Definition at line 293 of file ParallelSliceTracker.h.

void ParallelSliceTracker::kickReferenceParticle ( const Vector_t externalE,
const Vector_t externalB 
)
inlineprivate

Definition at line 300 of file ParallelSliceTracker.h.

void ParallelSliceTracker::operator= ( const ParallelSliceTracker )
private
void ParallelSliceTracker::prepareSections ( )
private
void ParallelSliceTracker::printRFPhases ( )
private

Definition at line 139 of file ParallelSliceTracker.cpp.

References Tracker::cavities_m, endl(), OpalData::getGlobalPhaseShift(), OpalData::getInstance(), name, Physics::pi, and ElementBase::TRAVELINGWAVE.

Referenced by handleAutoPhasing().

Here is the call graph for this function:

void ParallelSliceTracker::restoreCavityPhases ( )
private

Definition at line 98 of file ParallelSliceTracker.cpp.

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

Referenced by execute().

Here is the call graph for this function:

void ParallelSliceTracker::saveCavityPhases ( )
private

Definition at line 94 of file ParallelSliceTracker.cpp.

References itsDataSink_m, and DataSink::storeCavityInformation().

Referenced by execute().

Here is the call graph for this function:

void ParallelSliceTracker::selectDT ( )
private
void ParallelSliceTracker::setLastStep ( )
private

Definition at line 487 of file ParallelSliceTracker.cpp.

Referenced by execute().

void ParallelSliceTracker::setTime ( )
private

Definition at line 506 of file ParallelSliceTracker.cpp.

References currentSimulationTime_m, OpalData::getInstance(), EnvelopeBunch::getT(), and itsBunch_m.

Referenced by execute().

Here is the call graph for this function:

void ParallelSliceTracker::switchElements ( double  scaleMargin = 3.0)
private
void ParallelSliceTracker::timeIntegration ( )
private
void ParallelSliceTracker::updateReferenceParticle ( const BorisPusher pusher)
private
void ParallelSliceTracker::updateRFElement ( std::string  elName,
double  maxPhi 
)
private
void ParallelSliceTracker::updateSpaceOrientation ( const bool &  move = false)
inlineprivate

Definition at line 296 of file ParallelSliceTracker.h.

References EnvelopeBunch::calcBeamParameters(), and itsBunch_m.

Here is the call graph for this function:

void ParallelSliceTracker::visitAlignWrapper ( const AlignWrapper wrap)
inlinevirtual

Apply the algorithm to an align wrapper.

Reimplemented from Tracker.

Definition at line 185 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitBeamBeam ( const BeamBeam bb)
inlinevirtual

Apply the algorithm to a beam-beam.

Reimplemented from DefaultVisitor.

Definition at line 189 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitBeamline ( const Beamline bl)
virtual
void ParallelSliceTracker::visitCCollimator ( const CCollimator coll)
inlinevirtual

Apply the algorithm to a collimator.

Reimplemented from DefaultVisitor.

Definition at line 193 of file ParallelSliceTracker.h.

void ParallelSliceTracker::visitCorrector ( const Corrector corr)
inlinevirtual

Apply the algorithm to a corrector.

Reimplemented from DefaultVisitor.

Definition at line 201 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitCyclotronValley ( const CyclotronValley cv)
inlinevirtual

Apply the algorithm to a CyclotronValley.

Reimplemented from DefaultVisitor.

Definition at line 289 of file ParallelSliceTracker.h.

void ParallelSliceTracker::visitDegrader ( const Degrader deg)
inlinevirtual

Apply the algorithm to a drift.

Reimplemented from DefaultVisitor.

Definition at line 205 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitDiagnostic ( const Diagnostic diag)
inlinevirtual

Apply the algorithm to a diagnostic.

Reimplemented from DefaultVisitor.

Definition at line 209 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitDrift ( const Drift drf)
inlinevirtual

Apply the algorithm to a drift.

Reimplemented from DefaultVisitor.

Definition at line 214 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitFlexibleCollimator ( const FlexibleCollimator coll)
inlinevirtual

Apply the algorithm to a flexible collimator.

Reimplemented from DefaultVisitor.

Definition at line 197 of file ParallelSliceTracker.h.

void ParallelSliceTracker::visitLambertson ( const Lambertson lamb)
inlinevirtual

Apply the algorithm to a Lambertson.

Reimplemented from DefaultVisitor.

Definition at line 219 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitMarker ( const Marker mark)
inlinevirtual

Apply the algorithm to a marker.

Reimplemented from DefaultVisitor.

Definition at line 224 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitMonitor ( const Monitor mon)
inlinevirtual

Apply the algorithm to a monitor.

Reimplemented from DefaultVisitor.

Definition at line 229 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitMultipole ( const Multipole mult)
inlinevirtual

Apply the algorithm to a multipole.

Reimplemented from DefaultVisitor.

Definition at line 234 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitParallelPlate ( const ParallelPlate pplate)
inlinevirtual

Apply the algorithm to a ParallelPlate.

Reimplemented from DefaultVisitor.

Definition at line 285 of file ParallelSliceTracker.h.

void ParallelSliceTracker::visitProbe ( const Probe prob)
inlinevirtual

Apply the algorithm to a probe.

Reimplemented from DefaultVisitor.

Definition at line 239 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitRBend ( const RBend bend)
inlinevirtual

Apply the algorithm to a rectangular bend.

Reimplemented from DefaultVisitor.

Definition at line 244 of file ParallelSliceTracker.h.

void ParallelSliceTracker::visitRFCavity ( const RFCavity cav)
inlinevirtual

Apply the algorithm to a RF cavity.

Reimplemented from DefaultVisitor.

Definition at line 249 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitRFQuadrupole ( const RFQuadrupole quad)
inlinevirtual

Apply the algorithm to a RF quadrupole.

Reimplemented from DefaultVisitor.

Definition at line 258 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitSBend ( const SBend bend)
inlinevirtual

Apply the algorithm to a sector bend.

Reimplemented from DefaultVisitor.

Definition at line 262 of file ParallelSliceTracker.h.

void ParallelSliceTracker::visitSeparator ( const Separator sep)
inlinevirtual

Apply the algorithm to a separator.

Reimplemented from DefaultVisitor.

Definition at line 267 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitSeptum ( const Septum sept)
inlinevirtual

Apply the algorithm to a septum.

Reimplemented from DefaultVisitor.

Definition at line 272 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitSolenoid ( const Solenoid sol)
inlinevirtual

Apply the algorithm to a solenoid.

Reimplemented from DefaultVisitor.

Definition at line 277 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitSource ( const Source sou)
inlinevirtual

Apply the algorithm to a source.

Reimplemented from DefaultVisitor.

Definition at line 281 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::visitTravelingWave ( const TravelingWave trw)
inlinevirtual

Apply the algorithm to a RF cavity.

Reimplemented from DefaultVisitor.

Definition at line 253 of file ParallelSliceTracker.h.

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

Here is the call graph for this function:

void ParallelSliceTracker::writeLastStepPhaseSpace ( const long long  step,
const double &  sposRef 
)
inlineprivate

Definition at line 343 of file ParallelSliceTracker.h.

References DataSink::dumpSDDS(), Physics::e, endl(), EnvelopeBunch::get_bounds(), INFOMSG, EnvelopeBunch::isValid_m, itsBunch_m, and itsDataSink_m.

Referenced by execute().

Here is the call graph for this function:

void ParallelSliceTracker::writePhaseSpace ( const long long  step,
const double &  sposRef 
)
inlineprivate

Member Data Documentation

IpplTimings::TimerRef ParallelSliceTracker::BinRepartTimer_m
private

Definition at line 181 of file ParallelSliceTracker.h.

Referenced by ParallelSliceTracker().

double ParallelSliceTracker::currentSimulationTime_m
private

Definition at line 117 of file ParallelSliceTracker.h.

Referenced by execute(), setTime(), and switchElements().

std::queue<double> ParallelSliceTracker::dtAllTracks_m
private

Definition at line 138 of file ParallelSliceTracker.h.

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

double ParallelSliceTracker::dtCurrentTrack_m
private

Definition at line 137 of file ParallelSliceTracker.h.

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

bool ParallelSliceTracker::globalEOL_m
private
EnvelopeBunch* ParallelSliceTracker::itsBunch_m
private
DataSink* ParallelSliceTracker::itsDataSink_m
private
OpalBeamline ParallelSliceTracker::itsOpalBeamline_m
private
std::queue<unsigned long long> ParallelSliceTracker::localTrackSteps_m
private

The maximal number of steps the system is integrated per TRACK.

Definition at line 141 of file ParallelSliceTracker.h.

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

double ParallelSliceTracker::pathLength_m
private

Definition at line 129 of file ParallelSliceTracker.h.

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

CoordinateSystemTrafo ParallelSliceTracker::referenceToLabCSTrafo_m
private
Vector_t ParallelSliceTracker::RefPartP_m
private
Vector_t ParallelSliceTracker::RefPartR_m
private
IpplTimings::TimerRef ParallelSliceTracker::timeFieldEvaluation_m
private

Definition at line 180 of file ParallelSliceTracker.h.

Referenced by computeExternalFields(), and ParallelSliceTracker().

IpplTimings::TimerRef ParallelSliceTracker::timeIntegrationTimer1_m
private

Definition at line 178 of file ParallelSliceTracker.h.

Referenced by ParallelSliceTracker(), and timeIntegration().

IpplTimings::TimerRef ParallelSliceTracker::timeIntegrationTimer2_m
private

Definition at line 179 of file ParallelSliceTracker.h.

Referenced by ParallelSliceTracker().

IpplTimings::TimerRef ParallelSliceTracker::WakeFieldTimer_m
private

Definition at line 182 of file ParallelSliceTracker.h.

Referenced by ParallelSliceTracker().

double ParallelSliceTracker::zstart_m
private

where to start

Definition at line 132 of file ParallelSliceTracker.h.

Referenced by execute(), and findStartPosition().

std::queue<double> ParallelSliceTracker::zStop_m
private

where to stop

Definition at line 135 of file ParallelSliceTracker.h.

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


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