OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <CavityAutophaser.h>
Public Member Functions | |
CavityAutophaser (const PartData &ref, std::shared_ptr< Component > cavity) | |
~CavityAutophaser () | |
double | getPhaseAtMaxEnergy (const Vector_t &R, const Vector_t &P, double t, double dt) |
Private Member Functions | |
double | guessCavityPhase (double t) |
std::pair< double, double > | optimizeCavityPhase (double initialGuess, double t, double dt) |
double | track (Vector_t R, Vector_t P, double t, const double dt, const double phase, std::ofstream *out=NULL) const |
double | getEnergyMeV (const Vector_t &P) |
double | getMomentum (double kineticEnergyMeV) |
Private Attributes | |
const PartData & | itsReference_m |
std::shared_ptr< Component > | itsCavity_m |
Vector_t | initialR_m |
Vector_t | initialP_m |
Definition at line 7 of file CavityAutophaser.h.
Definition at line 15 of file CavityAutophaser.cpp.
References initialR_m.
CavityAutophaser::~CavityAutophaser | ( | ) |
Definition at line 26 of file CavityAutophaser.cpp.
|
inlineprivate |
Definition at line 43 of file CavityAutophaser.h.
References dot(), Physics::e, PartData::getM(), itsReference_m, and sqrt().
Referenced by guessCavityPhase().
|
inlineprivate |
Definition at line 48 of file CavityAutophaser.h.
References Physics::e, PartData::getM(), itsReference_m, pow(), and sqrt().
double CavityAutophaser::getPhaseAtMaxEnergy | ( | const Vector_t & | R, |
const Vector_t & | P, | ||
double | t, | ||
double | dt | ||
) |
Definition at line 30 of file CavityAutophaser.cpp.
References abs(), Physics::c, dot(), Physics::e, endl(), euclidean_norm(), fmod(), RFCavity::getAmplitudem(), RFCavity::getAutophaseVeto(), RFCavity::getDesignEnergy(), Util::getEnergy(), RFCavity::getFrequencym(), OpalData::getInstance(), PartData::getM(), ElementBase::getName(), RFCavity::getPhasem(), PartData::getQ(), guessCavityPhase(), INFOMSG, initialP_m, initialR_m, itsCavity_m, itsReference_m, level1(), optimizeCavityPhase(), Physics::pi, Attrib::Distribution::R, Physics::rad2deg, ElementBase::RFCAVITY, RFCavity::setAmplitudem(), RFCavity::setAutophaseVeto(), OpalData::setMaxPhase(), RFCavity::setPhasem(), sqrt(), track(), ElementBase::TRAVELINGWAVE, and Physics::two_pi.
Referenced by OrbitThreader::autophaseCavities(), ParallelSliceTracker::autophaseCavities(), and ParallelTTracker::autophaseCavities().
|
private |
Definition at line 176 of file CavityAutophaser.cpp.
References Physics::e, fmod(), RFCavity::getAutoPhaseEstimate(), RFCavity::getAutophaseVeto(), getEnergyMeV(), PartData::getM(), RFCavity::getPhasem(), PartData::getQ(), initialP_m, itsCavity_m, itsReference_m, and Physics::two_pi.
Referenced by getPhaseAtMaxEnergy().
|
private |
Definition at line 195 of file CavityAutophaser.cpp.
References Options::autoPhase, fmod(), RFCavity::getAutophaseVeto(), RFCavity::getFrequencym(), RFCavity::getPhasem(), initialP_m, initialR_m, itsCavity_m, Physics::pi, track(), and Physics::two_pi.
Referenced by getPhaseAtMaxEnergy().
|
private |
Definition at line 264 of file CavityAutophaser.cpp.
References Physics::e, Util::getEnergy(), PartData::getM(), RFCavity::getPhasem(), PartData::getQ(), initialP_m, itsCavity_m, itsReference_m, RFCavity::setPhasem(), and RFCavity::trackOnAxisParticle().
Referenced by getPhaseAtMaxEnergy(), and optimizeCavityPhase().
|
private |
Definition at line 38 of file CavityAutophaser.h.
Referenced by getPhaseAtMaxEnergy(), guessCavityPhase(), optimizeCavityPhase(), and track().
|
private |
Definition at line 37 of file CavityAutophaser.h.
Referenced by CavityAutophaser(), getPhaseAtMaxEnergy(), and optimizeCavityPhase().
|
private |
Definition at line 35 of file CavityAutophaser.h.
Referenced by getPhaseAtMaxEnergy(), guessCavityPhase(), optimizeCavityPhase(), and track().
|
private |
Definition at line 34 of file CavityAutophaser.h.
Referenced by getEnergyMeV(), getMomentum(), getPhaseAtMaxEnergy(), guessCavityPhase(), and track().