27 :
OpalElement(
SIZE,
"UNDULATOR",
"The \"UNDULATOR\" element defines an undulator or wiggler.") {
35 "ANGLE",
"Polarisation angle of the undulator magnetic field [rad].", 0.0);
38 "FNAME",
"Jobfile specifying the output data from the undulator.",
"");
54 "Time step for the particle update can be smaller than the field update step [s].", 0.0);
double getReal(const Attribute &attr)
Return real value.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
Attribute makeRealArray(const std::string &name, const std::string &help)
Create real array attribute.
std::vector< double > getRealArray(const Attribute &attr)
Get array value.
std::string getString(const Attribute &attr)
Get string value.
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
ElementBase * getElement() const
Return the embedded CLASSIC element.
void setElement(ElementBase *)
Assign new CLASSIC element.
std::vector< Attribute > itsAttr
The object attributes.
virtual void setElementLength(double length)
Set design length.
void setAngle(double theta)
void setMeshLength(const std::vector< double > &ml)
void setLambda(double lambda)
void setFilename(const std::string &fname)
void setTotalTime(double tt)
void setTruncationOrder(unsigned int trunOrder)
void setNumPeriods(unsigned int np)
void setDtBunch(double dtb)
void setMeshResolution(const std::vector< double > &mr)
virtual void updateUnknown(ElementBase *)
Transmit the `‘unknown’' (not known to OPAL) attributes to CLASSIC.
virtual void update()
Update the embedded CLASSIC element.
void registerOwnership() const
virtual void update()
Update the embedded CLASSIC drift.
virtual OpalUndulator * clone(const std::string &name)
Make clone.
OpalUndulator()
Exemplar constructor.