OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
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 (double t, const double dt, const double phase, std::ofstream *out=NULL) const |
Private Attributes | |
const PartData & | itsReference_m |
std::shared_ptr< Component > | itsCavity_m |
Vector_t | initialR_m |
Vector_t | initialP_m |
Definition at line 28 of file CavityAutophaser.h.
Definition at line 37 of file CavityAutophaser.cpp.
References initialR_m.
CavityAutophaser::~CavityAutophaser | ( | ) |
Definition at line 47 of file CavityAutophaser.cpp.
double CavityAutophaser::getPhaseAtMaxEnergy | ( | const Vector_t & | R, |
const Vector_t & | P, | ||
double | t, | ||
double | dt | ||
) |
Definition at line 51 of file CavityAutophaser.cpp.
References abs(), Physics::c, Util::combineFilePath(), dot(), Physics::e, endl(), euclidean_norm(), fmod(), RFCavity::getAmplitudem(), RFCavity::getAutophaseVeto(), RFCavity::getDesignEnergy(), RFCavity::getFrequencym(), OpalData::getInstance(), Util::getKineticEnergy(), 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 ParallelTTracker::autophaseCavities(), and OrbitThreader::autophaseCavities().
|
private |
Definition at line 203 of file CavityAutophaser.cpp.
References Physics::e, fmod(), RFCavity::getAutoPhaseEstimate(), RFCavity::getAutophaseVeto(), Util::getKineticEnergy(), PartData::getM(), RFCavity::getPhasem(), PartData::getQ(), initialP_m, itsCavity_m, itsReference_m, and Physics::two_pi.
Referenced by getPhaseAtMaxEnergy().
|
private |
Definition at line 222 of file CavityAutophaser.cpp.
References Options::autoPhase, fmod(), RFCavity::getAutophaseVeto(), RFCavity::getFrequencym(), RFCavity::getPhasem(), itsCavity_m, Physics::pi, track(), and Physics::two_pi.
Referenced by getPhaseAtMaxEnergy().
|
private |
Definition at line 291 of file CavityAutophaser.cpp.
References Physics::e, Util::getKineticEnergy(), 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 55 of file CavityAutophaser.h.
Referenced by getPhaseAtMaxEnergy(), guessCavityPhase(), and track().
|
private |
Definition at line 54 of file CavityAutophaser.h.
Referenced by CavityAutophaser(), and getPhaseAtMaxEnergy().
|
private |
Definition at line 52 of file CavityAutophaser.h.
Referenced by getPhaseAtMaxEnergy(), guessCavityPhase(), optimizeCavityPhase(), and track().
|
private |
Definition at line 51 of file CavityAutophaser.h.
Referenced by getPhaseAtMaxEnergy(), guessCavityPhase(), and track().