OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
|
#include <ParallelTTracker.h>
Public Member Functions | |
ParallelTTracker (const Beamline &bl, const PartData &data, bool revBeam, bool revTrack) | |
Constructor. More... | |
ParallelTTracker (const Beamline &bl, PartBunchBase< double, 3 > *bunch, DataSink &ds, const PartData &data, bool revBeam, bool revTrack, const std::vector< unsigned long long > &maxSTEPS, double zstart, const std::vector< double > &zstop, const std::vector< double > &dt) | |
Constructor. More... | |
virtual | ~ParallelTTracker () |
virtual void | execute () |
Apply the algorithm to the top-level beamline. More... | |
virtual void | visitBeamline (const Beamline &) |
Apply the algorithm to a beam line. More... | |
virtual void | visitCCollimator (const CCollimator &) |
Apply the algorithm to a collimator. More... | |
virtual void | visitCorrector (const Corrector &) |
Apply the algorithm to a closed orbit corrector. More... | |
virtual void | visitDegrader (const Degrader &) |
Apply the algorithm to a degrader. More... | |
virtual void | visitDrift (const Drift &) |
Apply the algorithm to a drift space. More... | |
virtual void | visitFlexibleCollimator (const FlexibleCollimator &) |
Apply the algorithm to a flexible collimator. More... | |
virtual void | visitMarker (const Marker &) |
Apply the algorithm to a marker. More... | |
virtual void | visitMonitor (const Monitor &) |
Apply the algorithm to a beam position monitor. More... | |
virtual void | visitMultipole (const Multipole &) |
Apply the algorithm to a multipole. More... | |
virtual void | visitMultipoleT (const MultipoleT &) |
Apply the algorithm to an arbitrary multipole. More... | |
virtual void | visitProbe (const Probe &) |
Apply the algorithm to a probe. More... | |
virtual void | visitRBend (const RBend &) |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRBend3D (const RBend3D &) |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRFCavity (const RFCavity &) |
Apply the algorithm to a RF cavity. More... | |
virtual void | visitSBend (const SBend &) |
Apply the algorithm to a sector bend. More... | |
virtual void | visitSeptum (const Septum &) |
Apply the algorithm to a septum. More... | |
virtual void | visitSolenoid (const Solenoid &) |
Apply the algorithm to a solenoid. More... | |
virtual void | visitSource (const Source &) |
Apply the algorithm to a source. More... | |
virtual void | visitTravelingWave (const TravelingWave &) |
Apply the algorithm to a traveling wave. More... | |
virtual void | visitVacuum (const Vacuum &) |
Apply the algorithm to a vacuum space. More... | |
Public Member Functions inherited from Tracker | |
Tracker (const Beamline &, const PartData &, bool backBeam, bool backTrack) | |
Constructor. More... | |
Tracker (const Beamline &, PartBunchBase< double, 3 > *bunch, const PartData &, bool backBeam, bool backTrack) | |
Constructor. More... | |
virtual | ~Tracker () |
const PartBunchBase< double, 3 > * | getBunch () const |
Return the current bunch. More... | |
void | addToBunch (const OpalParticle &) |
Add particle to bunch. More... | |
virtual void | visitComponent (const Component &) |
Store the bunch. More... | |
virtual void | setNumBunch (short) |
set total number of tracked bunches More... | |
virtual short | getNumBunch () |
get total number of tracked bunches More... | |
Public Member Functions inherited from AbstractTracker | |
AbstractTracker (const Beamline &, const PartData &, bool backBeam, bool backTrack) | |
Constructor. More... | |
virtual | ~AbstractTracker () |
Public Member Functions inherited from DefaultVisitor | |
DefaultVisitor (const Beamline &beamline, bool backBeam, bool backTrack) | |
Constructor. More... | |
virtual | ~DefaultVisitor ()=0 |
virtual void | execute () |
Apply the algorithm to the top-level beamline. More... | |
virtual void | visitBeamline (const Beamline &) |
Apply the algorithm to a beam line. More... | |
virtual void | visitCCollimator (const CCollimator &) |
Apply the algorithm to a collimator. More... | |
virtual void | visitComponent (const Component &) |
Apply the algorithm to an arbitrary component. More... | |
virtual void | visitCorrector (const Corrector &) |
Apply the algorithm to a closed orbit corrector. More... | |
virtual void | visitCyclotron (const Cyclotron &) |
Apply the algorithm to an cyclotron. More... | |
virtual void | visitDegrader (const Degrader &) |
Apply the algorithm to a degrader. More... | |
virtual void | visitDrift (const Drift &) |
Apply the algorithm to a drift space. More... | |
virtual void | visitFlaggedElmPtr (const FlaggedElmPtr &) |
Apply the algorithm to a FlaggedElmPtr. More... | |
virtual void | visitFlexibleCollimator (const FlexibleCollimator &) |
Apply the algorithm to a flexible collimator. More... | |
virtual void | visitMarker (const Marker &) |
Apply the algorithm to a marker. More... | |
virtual void | visitMonitor (const Monitor &) |
Apply the algorithm to a beam position monitor. More... | |
virtual void | visitMultipole (const Multipole &) |
Apply the algorithm to a multipole. More... | |
virtual void | visitMultipoleT (const MultipoleT &) |
Apply the algorithm to to an arbitrary multipole. More... | |
virtual void | visitMultipoleTStraight (const MultipoleTStraight &) |
Apply the algorithm to an arbitrary straight multipole. More... | |
virtual void | visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &) |
Apply the algorithm to an arbitrary curved multipole of constant radius. More... | |
virtual void | visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &) |
Apply the algorithm to an arbitrary curved multipole of variable radius. More... | |
virtual void | visitOffset (const Offset &) |
Apply the algorithm to an offset (placement). More... | |
virtual void | visitProbe (const Probe &prob) |
Apply the algorithm to a probe. More... | |
virtual void | visitRBend (const RBend &) |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRBend3D (const RBend3D &) |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRFCavity (const RFCavity &) |
Apply the algorithm to a RF cavity. More... | |
virtual void | visitRing (const Ring &) |
Apply the algorithm to a ring. More... | |
virtual void | visitSBend (const SBend &) |
Apply the algorithm to a sector bend. More... | |
virtual void | visitSBend3D (const SBend3D &) |
Apply the algorithm to a sector bend with 3D field map. More... | |
virtual void | visitScalingFFAMagnet (const ScalingFFAMagnet &) |
Apply the algorithm to a scaling FFA magnet. More... | |
virtual void | visitSeptum (const Septum &) |
Apply the algorithm to a septum. More... | |
virtual void | visitSolenoid (const Solenoid &) |
Apply the algorithm to a solenoid. More... | |
virtual void | visitSource (const Source &) |
Apply the algorithm to a source. More... | |
virtual void | visitStripper (const Stripper &) |
Apply the algorithm to a particle stripper. More... | |
virtual void | visitTravelingWave (const TravelingWave &) |
Apply the algorithm to a traveling wave. More... | |
virtual void | visitVacuum (const Vacuum &) |
Apply the algorithm to a vacuum space. More... | |
virtual void | visitVariableRFCavity (const VariableRFCavity &vcav) |
Apply the algorithm to a a variable RF cavity. More... | |
virtual void | visitVariableRFCavityFringeField (const VariableRFCavityFringeField &vcav) |
Apply the algorithm to a a variable RF cavity with Fringe Field. More... | |
virtual void | visitVerticalFFAMagnet (const VerticalFFAMagnet &) |
Apply the algorithm to a vertical FFA magnet. More... | |
Public Member Functions inherited from BeamlineVisitor | |
BeamlineVisitor () | |
virtual | ~BeamlineVisitor () |
virtual void | execute ()=0 |
Execute the algorithm on the attached beam line. More... | |
virtual void | visitBeamline (const Beamline &)=0 |
Apply the algorithm to a beam line. More... | |
virtual void | visitCCollimator (const CCollimator &)=0 |
Apply the algorithm to a collimator. More... | |
virtual void | visitComponent (const Component &)=0 |
Apply the algorithm to an arbitrary component. More... | |
virtual void | visitCorrector (const Corrector &)=0 |
Apply the algorithm to a closed orbit corrector. More... | |
virtual void | visitCyclotron (const Cyclotron &)=0 |
Apply the algorithm to a cyclotron. More... | |
virtual void | visitDegrader (const Degrader &)=0 |
Apply the algorithm to a degrader. More... | |
virtual void | visitDrift (const Drift &)=0 |
Apply the algorithm to a drift space. More... | |
virtual void | visitFlaggedElmPtr (const FlaggedElmPtr &)=0 |
Apply the algorithm to a FlaggedElmPtr. More... | |
virtual void | visitFlexibleCollimator (const FlexibleCollimator &)=0 |
Apply the algorithm to a flexible collimator. More... | |
virtual void | visitMarker (const Marker &)=0 |
Apply the algorithm to a marker. More... | |
virtual void | visitMonitor (const Monitor &)=0 |
Apply the algorithm to a beam position monitor. More... | |
virtual void | visitMultipole (const Multipole &)=0 |
Apply the algorithm to a multipole. More... | |
virtual void | visitMultipoleT (const MultipoleT &)=0 |
Apply the algorithm to an arbitrary multipole. More... | |
virtual void | visitMultipoleTStraight (const MultipoleTStraight &)=0 |
Apply the algorithm to an arbitrary straight multipole. More... | |
virtual void | visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &)=0 |
Apply the algorithm to an arbitrary curved multipole of constant radius. More... | |
virtual void | visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &)=0 |
Apply the algorithm to an arbitrary curved multipole of variable radius. More... | |
virtual void | visitOffset (const Offset &)=0 |
Apply the algorithm to an offset (placement). More... | |
virtual void | visitProbe (const Probe &)=0 |
Apply the algorithm to a probe. More... | |
virtual void | visitRBend (const RBend &)=0 |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRBend3D (const RBend3D &) |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRFCavity (const RFCavity &)=0 |
Apply the algorithm to a RF cavity. More... | |
virtual void | visitRing (const Ring &)=0 |
Apply the algorithm to a ring. More... | |
virtual void | visitSBend (const SBend &)=0 |
Apply the algorithm to a sector bend. More... | |
virtual void | visitSBend3D (const SBend3D &)=0 |
Apply the algorithm to a sector bend with 3D field map. More... | |
virtual void | visitScalingFFAMagnet (const ScalingFFAMagnet &)=0 |
Apply the algorithm to a scaling FFA magnet. More... | |
virtual void | visitSeptum (const Septum &)=0 |
Apply the algorithm to a septum magnet. More... | |
virtual void | visitSolenoid (const Solenoid &)=0 |
Apply the algorithm to a solenoid. More... | |
virtual void | visitSource (const Source &)=0 |
Apply the algorithm to a source. More... | |
virtual void | visitStripper (const Stripper &)=0 |
Apply the algorithm to a particle stripper. More... | |
virtual void | visitTravelingWave (const TravelingWave &)=0 |
Apply the algorithm to a traveling wave. More... | |
virtual void | visitVacuum (const Vacuum &)=0 |
Apply the algorithm to a vacuum space. More... | |
virtual void | visitVariableRFCavity (const VariableRFCavity &)=0 |
Apply the algorithm to a variable RF cavity. More... | |
virtual void | visitVariableRFCavityFringeField (const VariableRFCavityFringeField &)=0 |
Apply the algorithm to a variable RF cavity with Fringe Field. More... | |
virtual void | visitVerticalFFAMagnet (const VerticalFFAMagnet &)=0 |
Apply the algorithm to a vertical FFA magnet. More... | |
Private Attributes | |
DataSink * | itsDataSink_m |
OpalBeamline | itsOpalBeamline_m |
bool | globalEOL_m |
bool | wakeStatus_m |
bool | deletedParticles_m |
WakeFunction * | wakeFunction_m |
double | pathLength_m |
double | zstart_m |
where to start More... | |
StepSizeConfig | stepSizes_m |
double | dtCurrentTrack_m |
int | minStepforReBin_m |
size_t | minBinEmitted_m |
unsigned int | repartFreq_m |
unsigned int | emissionSteps_m |
size_t | numParticlesInSimulation_m |
IpplTimings::TimerRef | timeIntegrationTimer1_m |
IpplTimings::TimerRef | timeIntegrationTimer2_m |
IpplTimings::TimerRef | fieldEvaluationTimer_m |
IpplTimings::TimerRef | BinRepartTimer_m |
IpplTimings::TimerRef | WakeFieldTimer_m |
std::set< ParticleMatterInteractionHandler * > | activeParticleMatterInteractionHandlers_m |
bool | particleMatterStatus_m |
Additional Inherited Members | |
Public Types inherited from AbstractTracker | |
enum | { X , PX , Y , PY , T , PT } |
Public Attributes inherited from Tracker | |
FieldList | cavities_m |
const Beamline & | itsBeamline_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 Beamline & | itsLine |
bool | back_beam |
bool | back_track |
bool | back_path |
double | flip_B |
double | flip_s |
Definition at line 69 of file ParallelTTracker.h.
|
explicit |
Constructor.
Definition at line 60 of file ParallelTTracker.cpp.
|
explicit |
Constructor.
Definition at line 86 of file ParallelTTracker.cpp.
References StepSizeConfig::push_back(), StepSizeConfig::resetIterator(), StepSizeConfig::sortAscendingZStop(), and stepSizes_m.
|
virtual |
Definition at line 125 of file ParallelTTracker.cpp.
|
private |
|
private |
|
private |
Definition at line 1173 of file ParallelTTracker.cpp.
References Physics::c, getQuaternion(), PartBunchBase< T, Dim >::getT(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, pathLength_m, BorisPusher::push(), Attrib::Distribution::R, PartBunchBase< T, Dim >::RefPartP_m, PartBunchBase< T, Dim >::RefPartR_m, CoordinateSystemTrafo::rotateFrom(), PartBunchBase< T, Dim >::setT(), PartBunchBase< T, Dim >::toLabTrafo_m, CoordinateSystemTrafo::transformFrom(), and zstart_m.
Referenced by findStartPosition().
|
private |
Definition at line 1250 of file ParallelTTracker.cpp.
References Physics::c, RFCavity::getAutophaseVeto(), PartBunchBase< T, Dim >::getdT(), OpalBeamline::getElements(), CavityAutophaser::getPhaseAtMaxEnergy(), PartBunchBase< T, Dim >::getT(), Tracker::itsBunch_m, itsOpalBeamline_m, AbstractTracker::itsReference, BorisPusher::push(), PartBunchBase< T, Dim >::RefPartP_m, PartBunchBase< T, Dim >::RefPartR_m, RFCAVITY, OpalBeamline::rotateToLocalCS(), OpalBeamline::transformToLocalCS(), and TRAVELINGWAVE.
Referenced by findStartPosition().
|
private |
Definition at line 437 of file ParallelTTracker.cpp.
References PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, and selectDT().
Referenced by execute(), and findStartPosition().
|
private |
Definition at line 527 of file ParallelTTracker.cpp.
References PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::Bin, PartBunchBase< T, Dim >::boundp_destroyT(), computeParticleMatterInteraction(), computeWakefield(), deletedParticles_m, PartBunchBase< T, Dim >::destroyT(), PartBunchBase< T, Dim >::dt, Physics::e, PartBunchBase< T, Dim >::Ef, end(), endl(), fieldEvaluationTimer_m, PartBunchBase< T, Dim >::get_bounds(), OpalBeamline::getCSTrafoLab2Local(), PartBunchBase< T, Dim >::getLocalNum(), OpalBeamline::getMisalignment(), PartBunchBase< T, Dim >::getT(), PartBunchBase< T, Dim >::getTotalNum(), globalEOL_m, gmsg, PartBunchBase< T, Dim >::hasFieldSolver(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, itsOpalBeamline_m, level1(), minBinEmitted_m, ne(), numParticlesInSimulation_m, PartBunchBase< T, Dim >::P, pathLength_m, OrbitThreader::query(), PartBunchBase< T, Dim >::R, reduce(), CoordinateSystemTrafo::rotateTo(), IpplTimings::startTimer(), IpplTimings::stopTimer(), PartBunchBase< T, Dim >::toLabTrafo_m, and CoordinateSystemTrafo::transformTo().
Referenced by execute().
|
private |
all particles in material if max per node is 2 and other degraders have 0 particles
Definition at line 706 of file ParallelTTracker.cpp.
References activeParticleMatterInteractionHandlers_m, IndexMap::Range::begin, PartBunchBase< T, Dim >::boundp(), ceil(), IndexMap::Range::end, endl(), ElementBase::getCSTrafoGlobal2Local(), PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalBoundingSphere(), PartBunchBase< T, Dim >::getLocalNum(), ElementBase::getMisalignment(), OrbitThreader::getRange(), PartBunchBase< T, Dim >::getT(), PartBunchBase< T, Dim >::getTotalNum(), OrbitThreader::getTouchingElements(), gmsg, PartBunchBase< T, Dim >::hasFieldSolver(), PartBunchBase< T, Dim >::incrementT(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, AbstractTracker::itsReference, level2(), max(), min(), minBinEmitted_m, PartBunchBase< T, Dim >::P, particleMatterStatus_m, pathLength_m, PartBunchBase< T, Dim >::R, reduce(), CoordinateSystemTrafo::rotateTo(), PartBunchBase< T, Dim >::setdT(), ParticleMatterInteractionHandler::setFlagAllParticlesIn(), PartBunchBase< T, Dim >::setT(), PartBunchBase< T, Dim >::toLabTrafo_m, CoordinateSystemTrafo::transformTo(), PartBunchBase< T, Dim >::updateNumTotal(), and updateReference().
Referenced by computeExternalFields().
|
private |
Definition at line 479 of file ParallelTTracker.cpp.
References PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::boundp(), PartBunchBase< T, Dim >::calcBeamParameters(), PartBunchBase< T, Dim >::calcGammas(), PartBunchBase< T, Dim >::computeSelfFields(), Quaternion::conjugate(), doBinaryRepartition(), PartBunchBase< T, Dim >::Ef, PartBunchBase< T, Dim >::get_centroid(), PartBunchBase< T, Dim >::get_pmean(), PartBunchBase< T, Dim >::getLastEmittedEnergyBin(), PartBunchBase< T, Dim >::getLocalNum(), getQuaternion(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, pathLength_m, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, repartFreq_m, PartBunchBase< T, Dim >::resetInterpolationCache(), CoordinateSystemTrafo::rotateTo(), PartBunchBase< T, Dim >::setBinCharge(), PartBunchBase< T, Dim >::setGlobalMeanR(), CoordinateSystemTrafo::transformTo(), and PartBunchBase< T, Dim >::weHaveEnergyBins().
Referenced by execute().
|
private |
Definition at line 635 of file ParallelTTracker.cpp.
References WakeFunction::apply(), PartBunchBase< T, Dim >::calcBeamParameters(), CSRIGFWakeFunction, CSRWakeFunction, PartBunchBase< T, Dim >::Ef, end(), endl(), PartBunchBase< T, Dim >::get_pmean(), PartBunchBase< T, Dim >::getLocalNum(), getQuaternion(), gmsg, PartBunchBase< T, Dim >::hasFieldSolver(), WakeFunction::initialize(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, level2(), PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::R, RBEND, CoordinateSystemTrafo::rotateTo(), SBEND, IpplTimings::startTimer(), IpplTimings::stopTimer(), CoordinateSystemTrafo::transformTo(), WakeFieldTimer_m, wakeFunction_m, and wakeStatus_m.
Referenced by computeExternalFields().
|
private |
Definition at line 876 of file ParallelTTracker.cpp.
References Communicate::barrier(), BinRepartTimer_m, IpplInfo::Comm, PartBunchBase< T, Dim >::do_binaryRepart(), endl(), PartBunchBase< T, Dim >::hasFieldSolver(), INFOMSG, Tracker::itsBunch_m, max(), minBinEmitted_m, numParticlesInSimulation_m, IpplTimings::startTimer(), and IpplTimings::stopTimer().
Referenced by computeSpaceChargeFields().
|
private |
Definition at line 893 of file ParallelTTracker.cpp.
References PartBunchBase< T, Dim >::calcEMean(), endl(), PartBunchBase< T, Dim >::get_meanKineticEnergy(), Util::getEnergyString(), PartBunchBase< T, Dim >::getGlobalTrackStep(), Util::getLengthString(), PartBunchBase< T, Dim >::getT(), Util::getTimeString(), gmsg, matheval::detail::math::isinf(), matheval::detail::math::isnan(), Tracker::itsBunch_m, level1(), level2(), level3(), minBinEmitted_m, numParticlesInSimulation_m, pathLength_m, OPALTimer::Timer::time(), and writePhaseSpace().
Referenced by execute().
|
private |
Definition at line 445 of file ParallelTTracker.cpp.
References PartBunchBase< T, Dim >::emitParticles(), OpalBeamline::getCSTrafoLab2Local(), PartBunchBase< T, Dim >::getdT(), OpalBeamline::getFieldAt(), PartBunchBase< T, Dim >::getIfBeamEmitting(), PartBunchBase< T, Dim >::getT(), PartBunchBase< T, Dim >::getTotalNum(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, itsOpalBeamline_m, minStepforReBin_m, numParticlesInSimulation_m, PartBunchBase< T, Dim >::Rebin(), PartBunchBase< T, Dim >::resetInterpolationCache(), CoordinateSystemTrafo::rotateTo(), PartBunchBase< T, Dim >::switchOffUnitlessPositions(), PartBunchBase< T, Dim >::switchToUnitlessPositions(), PartBunchBase< T, Dim >::toLabTrafo_m, transformBunch(), CoordinateSystemTrafo::transformTo(), PartBunchBase< T, Dim >::updateNumTotal(), and PartBunchBase< T, Dim >::weHaveEnergyBins().
Referenced by execute().
|
private |
Definition at line 1286 of file ParallelTTracker.cpp.
References allreduce(), IpplInfo::Comm, Communicate::COMM_ANY_NODE, PartBunchBase< T, Dim >::create(), PartBunchBase< T, Dim >::destroy(), PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::getLocalNum(), IpplInfo::getNodes(), PartBunchBase< T, Dim >::getTotalNum(), PartBunchBase< T, Dim >::hasFieldSolver(), DistributionInfo::howMany, PartBunchBase< T, Dim >::ID, Tracker::itsBunch_m, PartBunchBase< T, Dim >::M, min(), IpplInfo::myNode(), TagMaker::next_tag(), PartBunchBase< T, Dim >::P, P_LAYOUT_CYCLE, P_SPATIAL_TRANSFER_TAG, PartBunchBase< T, Dim >::POrigin, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, Communicate::raw_isend(), Communicate::raw_probe_receive(), PartBunchBase< T, Dim >::TriID, DistributionInfo::who, and DistributionInfo::whom.
Referenced by execute().
|
virtual |
Apply the algorithm to the top-level beamline.
Reimplemented from DefaultVisitor.
Definition at line 178 of file ParallelTTracker.cpp.
References abs(), OpalBeamline::activateElements(), StepSizeConfig::advanceToPos(), OpalData::APPEND, DefaultVisitor::back_track, PartData::beta, PartBunchBase< T, Dim >::Bf, Physics::c, changeDT(), computeExternalFields(), computeSpaceChargeFields(), OpalBeamline::containsSource(), deletedParticles_m, dtCurrentTrack_m, dumpStats(), PartBunchBase< T, Dim >::Ef, emitParticles(), endl(), euclidean_norm(), evenlyDistributeParticles(), OrbitThreader::execute(), findStartPosition(), PartBunchBase< T, Dim >::get_bounds(), PartBunchBase< T, Dim >::get_pmean_Distribution(), PartBunchBase< T, Dim >::get_sPos(), OrbitThreader::getBoundingBox(), OpalBeamline::getCSTrafoLab2Local(), StepSizeConfig::getdT(), PartBunchBase< T, Dim >::getdT(), Util::getGamma(), OpalData::getGlobalPhaseShift(), PartBunchBase< T, Dim >::getGlobalTrackStep(), OpalData::getInstance(), Util::getLengthString(), PartBunchBase< T, Dim >::getM(), StepSizeConfig::getMaxSteps(), StepSizeConfig::getMinTimeStep(), StepSizeConfig::getNumSteps(), PartData::getP(), PartBunchBase< T, Dim >::getT(), Util::getTimeString(), PartBunchBase< T, Dim >::getTotalNum(), StepSizeConfig::getZStop(), globalEOL_m, gmsg, hasEndOfLineReached(), PartBunchBase< T, Dim >::incrementT(), PartBunchBase< T, Dim >::incTrackSteps(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, itsOpalBeamline_m, AbstractTracker::itsReference, level1(), level2(), minBinEmitted_m, numParticlesInSimulation_m, pathLength_m, prepareEmission(), prepareSections(), Options::psDumpFreq, StepSizeConfig::reachedEnd(), PartBunchBase< T, Dim >::RefPartP_m, PartBunchBase< T, Dim >::RefPartR_m, restoreCavityPhases(), StepSizeConfig::reverseDirection(), CoordinateSystemTrafo::rotateTo(), saveCavityPhases(), selectDT(), PartBunchBase< T, Dim >::set_sPos(), PartBunchBase< T, Dim >::setdT(), OpalData::setGlobalPhaseShift(), OpalData::setInPrepState(), OpalData::setOpenMode(), setOptionalVariables(), OpalData::setPriorTrack(), PartBunchBase< T, Dim >::setT(), setTime(), Options::statDumpFreq, stepSizes_m, OpalBeamline::switchElementsOff(), OPALTimer::Timer::time(), timeIntegration1(), timeIntegration2(), PartBunchBase< T, Dim >::toLabTrafo_m, CoordinateSystemTrafo::transformTo(), updateReference(), wakeStatus_m, PartBunchBase< T, Dim >::weHaveEnergyBins(), writePhaseSpace(), Monitor::writeStatistics(), and zstart_m.
|
private |
Definition at line 1192 of file ParallelTTracker.cpp.
References abs(), applyFractionalStep(), autophaseCavities(), DefaultVisitor::back_track, PartData::beta, Physics::c, changeDT(), OpalBeamline::containsSource(), dtCurrentTrack_m, Physics::e, euclidean_norm(), PartData::gamma, StepSizeConfig::getdT(), PartBunchBase< T, Dim >::getdT(), Util::getGamma(), Util::getKineticEnergy(), PartBunchBase< T, Dim >::getM(), StepSizeConfig::getZStop(), Tracker::itsBunch_m, itsOpalBeamline_m, pathLength_m, pow(), StepSizeConfig::reachedEnd(), PartBunchBase< T, Dim >::RefPartP_m, PartBunchBase< T, Dim >::RefPartR_m, CoordinateSystemTrafo::rotateTo(), selectDT(), PartBunchBase< T, Dim >::setT(), StepSizeConfig::shiftZStopLeft(), sqrt(), stepSizes_m, PartBunchBase< T, Dim >::toLabTrafo_m, updateReferenceParticle(), and zstart_m.
Referenced by execute().
|
private |
|
private |
Definition at line 968 of file ParallelTTracker.cpp.
References globalEOL_m, BoundingBox::isOutside(), Tracker::itsBunch_m, reduce(), and PartBunchBase< T, Dim >::RefPartR_m.
Referenced by execute().
|
inlineprivate |
Definition at line 364 of file ParallelTTracker.h.
References PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::Ef, PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, BorisPusher::kick(), PartBunchBase< T, Dim >::P, and PartBunchBase< T, Dim >::R.
Referenced by timeIntegration2().
|
private |
|
private |
Definition at line 981 of file ParallelTTracker.cpp.
References PartBunchBase< T, Dim >::doEmission(), emissionSteps_m, endl(), PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getEmissionDeltaT(), PartBunchBase< T, Dim >::getNumberOfEmissionSteps(), PartBunchBase< T, Dim >::getNumberOfEnergyBins(), PartBunchBase< T, Dim >::getTEmission(), gmsg, Tracker::itsBunch_m, and level2().
Referenced by execute().
|
private |
Definition at line 372 of file ParallelTTracker.cpp.
References ElementBase::accept(), OpalBeamline::compute3DLattice(), Tracker::itsBeamline_m, itsOpalBeamline_m, OpalBeamline::prepareSections(), OpalBeamline::save3DInput(), and OpalBeamline::save3DLattice().
Referenced by execute().
|
private |
|
inlineprivate |
Definition at line 370 of file ParallelTTracker.h.
References PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, PartBunchBase< T, Dim >::P, BorisPusher::push(), PartBunchBase< T, Dim >::R, PartBunchBase< T, Dim >::switchOffUnitlessPositions(), and PartBunchBase< T, Dim >::switchToUnitlessPositions().
Referenced by timeIntegration1(), and timeIntegration2().
|
private |
Definition at line 165 of file ParallelTTracker.cpp.
References end(), OpalData::getFirstMaxPhases(), OpalData::getInstance(), OpalData::getLastMaxPhases(), and updateRFElement().
Referenced by execute().
|
private |
Definition at line 161 of file ParallelTTracker.cpp.
References itsDataSink_m, and DataSink::storeCavityInformation().
Referenced by execute().
|
private |
Definition at line 423 of file ParallelTTracker.cpp.
References abs(), dtCurrentTrack_m, PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getEmissionDeltaT(), PartBunchBase< T, Dim >::getIfBeamEmitting(), Tracker::itsBunch_m, and PartBunchBase< T, Dim >::setdT().
Referenced by changeDT(), execute(), and findStartPosition().
|
private |
Definition at line 940 of file ParallelTTracker.cpp.
References endl(), OpalData::find(), OpalData::getInstance(), IpplInfo::getNodes(), RealVariable::getReal(), gmsg, level2(), max(), Options::minBinEmitted, minBinEmitted_m, Options::minStepForRebin, minStepforReBin_m, Options::repartFreq, and repartFreq_m.
Referenced by execute().
|
private |
Definition at line 974 of file ParallelTTracker.cpp.
References PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalNum(), and Tracker::itsBunch_m.
Referenced by execute().
|
private |
Definition at line 383 of file ParallelTTracker.cpp.
References pushParticles(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and timeIntegrationTimer1_m.
Referenced by execute().
|
private |
Definition at line 391 of file ParallelTTracker.cpp.
References PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, kickParticles(), pushParticles(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and timeIntegrationTimer2_m.
Referenced by execute().
|
private |
Definition at line 1150 of file ParallelTTracker.cpp.
References PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::Ef, PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::R, CoordinateSystemTrafo::rotateTo(), and CoordinateSystemTrafo::transformTo().
Referenced by emitParticles(), and updateRefToLabCSTrafo().
|
private |
Definition at line 1103 of file ParallelTTracker.cpp.
References updateReferenceParticle(), and updateRefToLabCSTrafo().
Referenced by computeParticleMatterInteraction(), and execute().
|
private |
Definition at line 1108 of file ParallelTTracker.cpp.
References DefaultVisitor::back_track, Physics::c, end(), endl(), OpalBeamline::getCSTrafoLab2Local(), PartBunchBase< T, Dim >::getdT(), OpalBeamline::getElements(), PartBunchBase< T, Dim >::getT(), globalEOL_m, gmsg, Tracker::itsBunch_m, itsOpalBeamline_m, BorisPusher::kick(), level1(), min(), BorisPusher::push(), PartBunchBase< T, Dim >::RefPartP_m, PartBunchBase< T, Dim >::RefPartR_m, CoordinateSystemTrafo::rotateFrom(), CoordinateSystemTrafo::rotateTo(), and CoordinateSystemTrafo::transformTo().
Referenced by findStartPosition(), and updateReference().
|
private |
Definition at line 1160 of file ParallelTTracker.cpp.
References copysign(), euclidean_norm(), PartBunchBase< T, Dim >::getdT(), getQuaternion(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, pathLength_m, Attrib::Distribution::R, PartBunchBase< T, Dim >::RefPartP_m, PartBunchBase< T, Dim >::RefPartR_m, CoordinateSystemTrafo::rotateFrom(), PartBunchBase< T, Dim >::toLabTrafo_m, transformBunch(), and CoordinateSystemTrafo::transformFrom().
Referenced by updateReference().
|
private |
Definition at line 142 of file ParallelTTracker.cpp.
References endl(), OpalBeamline::getElementByType(), ElementBase::getName(), INFOMSG, itsOpalBeamline_m, RFCAVITY, RFCavity::setAutophaseVeto(), RFCavity::setPhasem(), and TRAVELINGWAVE.
Referenced by restoreCavityPhases().
|
virtual |
Apply the algorithm to a beam line.
Reimplemented from DefaultVisitor.
Definition at line 127 of file ParallelTTracker.cpp.
References OpalBeamline::compute3DLattice(), TBeamline< T >::getInitialDirection(), TBeamline< T >::getOrigin3D(), TBeamline< T >::getRelativeFlag(), TBeamline< T >::iterate(), itsOpalBeamline_m, OpalBeamline::merge(), OpalBeamline::prepareSections(), and OpalBeamline::swap().
|
inlinevirtual |
Apply the algorithm to a collimator.
Reimplemented from DefaultVisitor.
Definition at line 282 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a closed orbit corrector.
Reimplemented from DefaultVisitor.
Definition at line 286 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a degrader.
Reimplemented from DefaultVisitor.
Definition at line 290 of file ParallelTTracker.h.
References matheval::detail::math::deg(), Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a drift space.
Reimplemented from DefaultVisitor.
Definition at line 294 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a flexible collimator.
Reimplemented from DefaultVisitor.
Definition at line 298 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a marker.
Reimplemented from DefaultVisitor.
Definition at line 302 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a beam position monitor.
Reimplemented from DefaultVisitor.
Definition at line 306 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a multipole.
Reimplemented from DefaultVisitor.
Definition at line 310 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to an arbitrary multipole.
Reimplemented from DefaultVisitor.
Definition at line 314 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a probe.
Reimplemented from DefaultVisitor.
Definition at line 318 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a rectangular bend.
Reimplemented from DefaultVisitor.
Definition at line 322 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a rectangular bend.
Reimplemented from DefaultVisitor.
Definition at line 326 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a RF cavity.
Reimplemented from DefaultVisitor.
Definition at line 330 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a sector bend.
Reimplemented from DefaultVisitor.
Definition at line 334 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a septum.
Reimplemented from DefaultVisitor.
Definition at line 338 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a solenoid.
Reimplemented from DefaultVisitor.
Definition at line 342 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a source.
Reimplemented from DefaultVisitor.
Definition at line 346 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a traveling wave.
Reimplemented from DefaultVisitor.
Definition at line 350 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a vacuum space.
Reimplemented from DefaultVisitor.
Definition at line 360 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
private |
Definition at line 994 of file ParallelTTracker.cpp.
References a, abs(), PartData::beta, Physics::c, PartBunchBase< T, Dim >::calcBeamParameters(), CCOLLIMATOR, ParticleAttrib< T >::create(), ParticleAttrib< T >::destroy(), DataSink::dumpH5(), DataSink::dumpSDDS(), endl(), euclidean_norm(), PartBunchBase< T, Dim >::get_bounds(), PartBunchBase< T, Dim >::getdT(), OpalBeamline::getElementByType(), OpalBeamline::getFieldAt(), StepSizeConfig::getFinalZStop(), Util::getGamma(), PartBunchBase< T, Dim >::getLocalNum(), FlexibleCollimator::getLosses(), ElementBase::getName(), PartBunchBase< T, Dim >::getT(), PartBunchBase< T, Dim >::getTotalNum(), gmsg, CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, itsDataSink_m, itsOpalBeamline_m, level2(), level3(), name, PartBunchBase< T, Dim >::P, pathLength_m, PartBunchBase< T, Dim >::R, reduce(), PartBunchBase< T, Dim >::RefPartP_m, PartBunchBase< T, Dim >::RefPartR_m, CoordinateSystemTrafo::rotateFrom(), CoordinateSystemTrafo::rotateTo(), PartBunchBase< T, Dim >::set_sPos(), stepSizes_m, PartBunchBase< T, Dim >::toLabTrafo_m, and Units::Vpm2MVpm.
Referenced by dumpStats(), and execute().
|
private |
Definition at line 229 of file ParallelTTracker.h.
Referenced by computeParticleMatterInteraction().
|
private |
Definition at line 226 of file ParallelTTracker.h.
Referenced by doBinaryRepartition().
|
private |
Definition at line 190 of file ParallelTTracker.h.
Referenced by computeExternalFields(), and execute().
|
private |
Definition at line 205 of file ParallelTTracker.h.
Referenced by execute(), findStartPosition(), and selectDT().
|
private |
Definition at line 219 of file ParallelTTracker.h.
Referenced by prepareEmission().
|
private |
Definition at line 225 of file ParallelTTracker.h.
Referenced by computeExternalFields().
|
private |
Definition at line 186 of file ParallelTTracker.h.
Referenced by computeExternalFields(), execute(), hasEndOfLineReached(), and updateReferenceParticle().
|
private |
Definition at line 182 of file ParallelTTracker.h.
Referenced by saveCavityPhases(), and writePhaseSpace().
|
private |
Definition at line 184 of file ParallelTTracker.h.
Referenced by autophaseCavities(), computeExternalFields(), emitParticles(), execute(), findStartPosition(), prepareSections(), updateReferenceParticle(), updateRFElement(), visitBeamline(), visitCCollimator(), visitCorrector(), visitDegrader(), visitDrift(), visitFlexibleCollimator(), visitMarker(), visitMonitor(), visitMultipole(), visitMultipoleT(), visitProbe(), visitRBend(), visitRBend3D(), visitRFCavity(), visitSBend(), visitSeptum(), visitSolenoid(), visitSource(), visitTravelingWave(), visitVacuum(), and writePhaseSpace().
|
private |
Definition at line 214 of file ParallelTTracker.h.
Referenced by computeExternalFields(), computeParticleMatterInteraction(), doBinaryRepartition(), dumpStats(), execute(), and setOptionalVariables().
|
private |
Definition at line 209 of file ParallelTTracker.h.
Referenced by emitParticles(), and setOptionalVariables().
|
private |
Definition at line 221 of file ParallelTTracker.h.
Referenced by computeExternalFields(), doBinaryRepartition(), dumpStats(), emitParticles(), and execute().
|
private |
Definition at line 230 of file ParallelTTracker.h.
Referenced by computeParticleMatterInteraction().
|
private |
Definition at line 194 of file ParallelTTracker.h.
Referenced by applyFractionalStep(), computeExternalFields(), computeParticleMatterInteraction(), computeSpaceChargeFields(), dumpStats(), execute(), findStartPosition(), updateRefToLabCSTrafo(), and writePhaseSpace().
|
private |
Definition at line 217 of file ParallelTTracker.h.
Referenced by computeSpaceChargeFields(), and setOptionalVariables().
|
private |
stores informations where to change the time step and where to stop the simulation, the time step sizes and the number of time steps with each configuration
Definition at line 203 of file ParallelTTracker.h.
Referenced by execute(), findStartPosition(), ParallelTTracker(), and writePhaseSpace().
|
private |
Definition at line 223 of file ParallelTTracker.h.
Referenced by timeIntegration1().
|
private |
Definition at line 224 of file ParallelTTracker.h.
Referenced by timeIntegration2().
|
private |
Definition at line 227 of file ParallelTTracker.h.
Referenced by computeWakefield().
|
private |
Definition at line 192 of file ParallelTTracker.h.
Referenced by computeWakefield().
|
private |
Definition at line 188 of file ParallelTTracker.h.
Referenced by computeWakefield(), and execute().
|
private |
where to start
Definition at line 197 of file ParallelTTracker.h.
Referenced by applyFractionalStep(), execute(), and findStartPosition().