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