122 "No field defined for VariableRFCavity");
127 "No field defined for VariableRFCavity");
144 if (R[2] >= 0. && R[2] <
_length) {
160 return apply(R, P, t, E, B);
182 std::shared_ptr<AbstractTimeDependence> phaseTD =
184 cavity->
setPhaseModel(std::shared_ptr<AbstractTimeDependence>(phaseTD->clone()));
185 std::shared_ptr<AbstractTimeDependence> frequencyTD =
187 cavity->
setFrequencyModel(std::shared_ptr<AbstractTimeDependence>(frequencyTD->clone()));
188 std::shared_ptr<AbstractTimeDependence> amplitudeTD =
190 cavity->
setAmplitudeModel(std::shared_ptr<AbstractTimeDependence>(amplitudeTD->clone()));
194 "Height or width was not set on VariableRFCavity");
StraightGeometry geometry
The cavity's geometry.
ParticleAttrib< Vector_t > P
virtual ElementBase * clone() const override
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
virtual std::shared_ptr< AbstractTimeDependence > getFrequencyModel() const
constexpr double e
The value of .
Interface for basic beam line object.
virtual std::shared_ptr< AbstractTimeDependence > getAmplitudeModel() const
virtual void setPhaseModel(std::shared_ptr< AbstractTimeDependence > time_dep)
virtual void setName(const std::string &name)
Set element name.
Tps< T > sin(const Tps< T > &x)
Sine.
constexpr double two_pi
The value of .
virtual void setLength(double length)
static const double lengthUnit_m
virtual const std::string & getName() const
Get element name.
virtual bool applyToReferenceParticle(const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B) override
std::shared_ptr< AbstractTimeDependence > phaseTD_m
std::string frequencyName_m
virtual ~VariableRFCavity()
virtual bool apply(const size_t &i, const double &t, Vector_t &E, Vector_t &B) override
VariableRFCavity & operator=(const VariableRFCavity &)
virtual EMField & getField() override
Not implemented.
virtual void setElementLength(double length)
Set design length.
virtual void finalise() override
std::string amplitudeName_m
PartBunchBase< double, 3 > * RefPartBunch_m
virtual std::shared_ptr< AbstractTimeDependence > getPhaseModel() const
Vektor< double, 3 > Vector_t
virtual void setFrequencyModel(std::shared_ptr< AbstractTimeDependence > time_dep)
Abstract base class for electromagnetic fields.
std::shared_ptr< AbstractTimeDependence > frequencyTD_m
virtual StraightGeometry & getGeometry() override
A geometry representing a straight line.
virtual void visitVariableRFCavity(const VariableRFCavity &)=0
Apply the algorithm to a variable RF cavity.
virtual void setAmplitudeModel(std::shared_ptr< AbstractTimeDependence > time_dep)
std::shared_ptr< AbstractTimeDependence > amplitudeTD_m
Interface for a single beam element.
static std::shared_ptr< AbstractTimeDependence > getTimeDependence(std::string name)
virtual void accept(BeamlineVisitor &) const override