OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
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 | visitAlignWrapper (const AlignWrapper &) |
Apply the algorithm to an align wrapper. More... | |
virtual void | visitBeamBeam (const BeamBeam &) |
Apply the algorithm to a BeamBeam. More... | |
virtual void | visitBeamStripping (const BeamStripping &) |
Apply the algorithm to a BeamStripping. 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 | visitProbe (const Probe &) |
Apply the algorithm to a Probe. More... | |
virtual void | visitRBend (const RBend &) |
Apply the algorithm to a RBend. More... | |
virtual void | visitRBend3D (const RBend3D &) |
Apply the algorithm to a RBend. More... | |
virtual void | visitRFCavity (const RFCavity &) |
Apply the algorithm to a RFCavity. More... | |
virtual void | visitTravelingWave (const TravelingWave &) |
Apply the algorithm to a RFCavity. 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 | 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 Solenoid. 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 | visitBeamline (const Beamline &) |
Apply the algorithm to a beam line. More... | |
virtual void | execute () |
Apply the algorithm to the top-level beamline. More... | |
![]() | |
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... | |
![]() | |
AbstractTracker (const Beamline &, const PartData &, bool backBeam, bool backTrack) | |
Constructor. More... | |
virtual | ~AbstractTracker () |
![]() | |
DefaultVisitor (const Beamline &beamline, bool backBeam, bool backTrack) | |
Constructor. More... | |
virtual | ~DefaultVisitor ()=0 |
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 | 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 | 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... | |
![]() | |
BeamlineVisitor () | |
virtual | ~BeamlineVisitor () |
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 |
unsigned long | totalParticlesInSimulation_m |
Additional Inherited Members | |
![]() | |
enum | { X, PX, Y, PY, T, PT } |
![]() | |
FieldList | cavities_m |
set multipacting flag More... | |
const Beamline & | itsBeamline_m |
![]() | |
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... | |
![]() | |
PartBunchBase< double, 3 > * | itsBunch_m |
The bunch of particles to be tracked. More... | |
![]() | |
const PartData | itsReference |
The reference information. More... | |
![]() | |
const Beamline & | itsLine |
bool | back_beam |
bool | back_track |
bool | back_path |
double | flip_B |
double | flip_s |
Definition at line 70 of file ParallelTTracker.h.
|
explicit |
Constructor.
Definition at line 88 of file ParallelTTracker.cpp.
References IpplInfo::DKSEnabled, StepSizeConfig::push_back(), StepSizeConfig::resetIterator(), StepSizeConfig::sortAscendingZStop(), and stepSizes_m.
|
virtual |
Definition at line 133 of file ParallelTTracker.cpp.
References IpplInfo::DKSEnabled.
|
private |
|
private |
|
private |
Definition at line 1177 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 1254 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, ElementBase::RFCAVITY, OpalBeamline::rotateToLocalCS(), OpalBeamline::transformToLocalCS(), and ElementBase::TRAVELINGWAVE.
Referenced by findStartPosition().
|
private |
Definition at line 478 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 569 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, 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, totalParticlesInSimulation_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 722 of file ParallelTTracker.cpp.
References activeParticleMatterInteractionHandlers_m, PartBunchBase< T, Dim >::boundp(), ceil(), 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, totalParticlesInSimulation_m, CoordinateSystemTrafo::transformTo(), PartBunchBase< T, Dim >::updateNumTotal(), and updateReference().
Referenced by computeExternalFields().
|
private |
Definition at line 520 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(), PartBunchBase< T, Dim >::getNumberOfEnergyBins(), getQuaternion(), PartBunchBase< T, Dim >::hasFieldSolver(), CoordinateSystemTrafo::inverted(), Tracker::itsBunch_m, minBinEmitted_m, numParticlesInSimulation_m, pathLength_m, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, repartFreq_m, PartBunchBase< T, Dim >::resetInterpolationCache(), PartBunchBase< T, Dim >::setBinCharge(), PartBunchBase< T, Dim >::setGlobalMeanR(), and PartBunchBase< T, Dim >::weHaveEnergyBins().
Referenced by execute().
|
private |
Definition at line 651 of file ParallelTTracker.cpp.
References WakeFunction::apply(), PartBunchBase< T, Dim >::calcBeamParameters(), PartBunchBase< T, Dim >::Ef, 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, ElementBase::RBEND, CoordinateSystemTrafo::rotateTo(), ElementBase::SBEND, IpplTimings::startTimer(), IpplTimings::stopTimer(), CoordinateSystemTrafo::transformTo(), WakeFieldTimer_m, wakeFunction_m, and wakeStatus_m.
Referenced by computeExternalFields().
|
private |
Definition at line 881 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 898 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 486 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 1290 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 >::PType, 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 191 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, IpplInfo::DKSEnabled, 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(), OpalBeamline::getCSTrafoLab2Local(), StepSizeConfig::getdT(), PartBunchBase< T, Dim >::getdT(), StepSizeConfig::getFinalZStop(), Util::getGamma(), OpalData::getGlobalPhaseShift(), PartBunchBase< T, Dim >::getGlobalTrackStep(), OpalData::getInstance(), Util::getLengthString(), PartBunchBase< T, Dim >::getM(), StepSizeConfig::getMaxSteps(), StepSizeConfig::getMinTimeStep(), StepSizeConfig::getNumSteps(), StepSizeConfig::getNumStepsFinestResolution(), 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(), 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, totalParticlesInSimulation_m, updateReference(), wakeStatus_m, PartBunchBase< T, Dim >::weHaveEnergyBins(), writePhaseSpace(), Monitor::writeStatistics(), and zstart_m.
|
private |
Definition at line 1196 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::getEnergy(), Util::getGamma(), 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 973 of file ParallelTTracker.cpp.
References globalEOL_m, and reduce().
Referenced by execute().
|
inlineprivate |
Definition at line 447 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 985 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 395 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 453 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 178 of file ParallelTTracker.cpp.
References OpalData::getFirstMaxPhases(), OpalData::getInstance(), OpalData::getLastMaxPhases(), and updateRFElement().
Referenced by execute().
|
private |
Definition at line 174 of file ParallelTTracker.cpp.
References itsDataSink_m, and DataSink::storeCavityInformation().
Referenced by execute().
|
private |
Definition at line 464 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 945 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 978 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 405 of file ParallelTTracker.cpp.
References IpplInfo::DKSEnabled, pushParticles(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and timeIntegrationTimer1_m.
Referenced by execute().
|
private |
Definition at line 421 of file ParallelTTracker.cpp.
References IpplInfo::DKSEnabled, 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 1154 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 1107 of file ParallelTTracker.cpp.
References updateReferenceParticle(), and updateRefToLabCSTrafo().
Referenced by computeParticleMatterInteraction(), and execute().
|
private |
Definition at line 1112 of file ParallelTTracker.cpp.
References DefaultVisitor::back_track, Physics::c, 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 1164 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 155 of file ParallelTTracker.cpp.
References endl(), OpalBeamline::getElementByType(), ElementBase::getName(), INFOMSG, itsOpalBeamline_m, ElementBase::RFCAVITY, RFCavity::setAutophaseVeto(), RFCavity::setPhasem(), and ElementBase::TRAVELINGWAVE.
Referenced by restoreCavityPhases().
|
inlinevirtual |
Apply the algorithm to an align wrapper.
Reimplemented from Tracker.
Definition at line 324 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a BeamBeam.
Reimplemented from DefaultVisitor.
Definition at line 328 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
virtual |
Apply the algorithm to a beam line.
Reimplemented from DefaultVisitor.
Definition at line 140 of file ParallelTTracker.cpp.
References OpalBeamline::compute3DLattice(), TBeamline< T >::getInitialDirection(), TBeamline< T >::getOrigin3D(), TBeamline< T >::getRelativeFlag(), TBeamline< T >::iterate(), itsOpalBeamline_m, OpalBeamline::prepareSections(), and OpalBeamline::swap().
|
inlinevirtual |
Apply the algorithm to a BeamStripping.
Reimplemented from DefaultVisitor.
Definition at line 332 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a collimator.
Reimplemented from DefaultVisitor.
Definition at line 336 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a Corrector.
Reimplemented from DefaultVisitor.
Definition at line 341 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a CyclotronValley.
Reimplemented from DefaultVisitor.
Definition at line 443 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 346 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a Diagnostic.
Reimplemented from DefaultVisitor.
Definition at line 351 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a Drift.
Reimplemented from DefaultVisitor.
Definition at line 356 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 361 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a Lambertson.
Reimplemented from DefaultVisitor.
Definition at line 366 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 371 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a Monitor.
Reimplemented from DefaultVisitor.
Definition at line 376 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 381 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a MultipoleT.
Reimplemented from DefaultVisitor.
Definition at line 385 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a ParallelPlate.
Reimplemented from DefaultVisitor.
Definition at line 439 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 389 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a RBend.
Reimplemented from DefaultVisitor.
Definition at line 394 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a RBend.
Reimplemented from DefaultVisitor.
Definition at line 398 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a RFCavity.
Reimplemented from DefaultVisitor.
Definition at line 403 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a RFQuadrupole.
Reimplemented from DefaultVisitor.
Definition at line 412 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a SBend.
Reimplemented from DefaultVisitor.
Definition at line 416 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a Separator.
Reimplemented from DefaultVisitor.
Definition at line 421 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 426 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 431 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 435 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a RFCavity.
Reimplemented from DefaultVisitor.
Definition at line 407 of file ParallelTTracker.h.
References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().
|
private |
Definition at line 998 of file ParallelTTracker.cpp.
References abs(), PartData::beta, Physics::c, PartBunchBase< T, Dim >::calcBeamParameters(), ElementBase::CCOLLIMATOR, ParticleAttrib< T >::create(), ParticleAttrib< T >::destroy(), DataSink::dumpH5(), DataSink::dumpSDDS(), Physics::e, 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, and PartBunchBase< T, Dim >::toLabTrafo_m.
Referenced by dumpStats(), and execute().
|
private |
Definition at line 250 of file ParallelTTracker.h.
Referenced by computeParticleMatterInteraction().
|
private |
Definition at line 247 of file ParallelTTracker.h.
Referenced by doBinaryRepartition().
|
private |
Definition at line 211 of file ParallelTTracker.h.
Referenced by computeExternalFields(), and execute().
|
private |
Definition at line 226 of file ParallelTTracker.h.
Referenced by execute(), findStartPosition(), and selectDT().
|
private |
Definition at line 240 of file ParallelTTracker.h.
Referenced by prepareEmission().
|
private |
Definition at line 246 of file ParallelTTracker.h.
Referenced by computeExternalFields().
|
private |
Definition at line 207 of file ParallelTTracker.h.
Referenced by computeExternalFields(), execute(), hasEndOfLineReached(), and updateReferenceParticle().
|
private |
Definition at line 203 of file ParallelTTracker.h.
Referenced by saveCavityPhases(), and writePhaseSpace().
|
private |
Definition at line 205 of file ParallelTTracker.h.
Referenced by autophaseCavities(), computeExternalFields(), emitParticles(), execute(), findStartPosition(), prepareSections(), updateReferenceParticle(), updateRFElement(), visitAlignWrapper(), visitBeamBeam(), visitBeamline(), visitBeamStripping(), visitCCollimator(), visitCorrector(), visitCyclotronValley(), visitDegrader(), visitDiagnostic(), visitDrift(), visitFlexibleCollimator(), visitLambertson(), visitMarker(), visitMonitor(), visitMultipole(), visitMultipoleT(), visitParallelPlate(), visitProbe(), visitRBend(), visitRBend3D(), visitRFCavity(), visitRFQuadrupole(), visitSBend(), visitSeparator(), visitSeptum(), visitSolenoid(), visitSource(), visitTravelingWave(), and writePhaseSpace().
|
private |
Definition at line 235 of file ParallelTTracker.h.
Referenced by computeExternalFields(), computeParticleMatterInteraction(), computeSpaceChargeFields(), doBinaryRepartition(), dumpStats(), execute(), and setOptionalVariables().
|
private |
Definition at line 230 of file ParallelTTracker.h.
Referenced by emitParticles(), and setOptionalVariables().
|
private |
Definition at line 242 of file ParallelTTracker.h.
Referenced by computeExternalFields(), computeSpaceChargeFields(), doBinaryRepartition(), dumpStats(), emitParticles(), and execute().
|
private |
Definition at line 251 of file ParallelTTracker.h.
Referenced by computeParticleMatterInteraction().
|
private |
Definition at line 215 of file ParallelTTracker.h.
Referenced by applyFractionalStep(), computeExternalFields(), computeParticleMatterInteraction(), computeSpaceChargeFields(), dumpStats(), execute(), findStartPosition(), updateRefToLabCSTrafo(), and writePhaseSpace().
|
private |
Definition at line 238 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 224 of file ParallelTTracker.h.
Referenced by execute(), findStartPosition(), ParallelTTracker(), and writePhaseSpace().
|
private |
Definition at line 244 of file ParallelTTracker.h.
Referenced by timeIntegration1().
|
private |
Definition at line 245 of file ParallelTTracker.h.
Referenced by timeIntegration2().
|
private |
Definition at line 253 of file ParallelTTracker.h.
Referenced by computeExternalFields(), computeParticleMatterInteraction(), and execute().
|
private |
Definition at line 248 of file ParallelTTracker.h.
Referenced by computeWakefield().
|
private |
Definition at line 213 of file ParallelTTracker.h.
Referenced by computeWakefield().
|
private |
Definition at line 209 of file ParallelTTracker.h.
Referenced by computeWakefield(), and execute().
|
private |
where to start
Definition at line 218 of file ParallelTTracker.h.
Referenced by applyFractionalStep(), execute(), and findStartPosition().