28 :
OpalBend(
"RBEND",
"The \"RBEND\" element defines a rectangular bending magnet.") {
73 : length ? 2 * sin(angle / 2) / length
110 "OpalRBend::update",
"ROTATION not supported any more; use PSI instead");
114 else if (bend->
getName() !=
"RBEND") {
137 "OpalRBend::update",
"WAKEF is not supported yet for the OPALX-native RBEND port.");
148 "PARTICLEMATTERINTERACTION is not supported yet for the OPALX-native RBEND port.");
The magnetic field of a multipole.
void setNormalComponent(int n, double Bn)
Set component.
void setSkewComponent(int n, double Bn)
Set component.
void setFieldMapFN(std::string fileName)
void setExitFaceCurvature(double curvature)
void setLength(double length)
Set the nominal body length.
virtual void setEntranceAngle(double entranceAngle)
virtual void setBendAngle(double angle)
void setFullGap(double gap)
void setSlices(double slices)
void setExitFaceRotation(double rotation)
void setDesignEnergy(const double &energy, bool changeable=true) override
void setEntryFaceCurvature(double curvature)
void setStepsize(double stepSize)
void setNSlices(const std::size_t &nSlices)
void setFieldAmplitude(double k0, double k0s)
Store the dipole design amplitudes used by the analytic field.
void setEntryFaceRotation(double rotation)
Rigid spatial transform between a parent frame and a local frame.
ippl::Vector< double, 3 > getOrigin() const
Quaternion getRotation() const
virtual const std::string & getName() const
Get element name.
void setAperture(const ApertureType &type, const std::vector< double > &args)
bool isPositioned() const
CoordinateSystemTrafo getCSTrafoGlobal2Local() const
void setCSTrafoGlobal2Local(const CoordinateSystemTrafo &ori)
ElementBase * getElement() const
Return the embedded OPALX element.
void setElement(ElementBase *)
Assign new OPALX element.
std::vector< Attribute > itsAttr
The object attributes.
Base class for all bending magnets.
double getP0() const
Return value of global reference momentum.
static OpalData * getInstance()
virtual void updateUnknown(ElementBase *)
Transmit the `‘unknown’' (not known to OPALX) attributes to OPALX.
@ PARTICLEMATTERINTERACTION
virtual void update()
Update the embedded OPALX element.
void registerOwnership() const
virtual OpalRBend * clone(const std::string &name)
Make clone.
OpalRBend()
Exemplar constructor.
virtual void update()
Update the embedded CLASSIC bend.
Quaternion storage and rotation algebra used by OPALX geometry code.
The geometry for a RBend element.
void setBendAngle(double angle)
Set angle.
Concrete OPALX representation of an analytic rectangular bend.
RBendGeometry & getGeometry() override
Get geometry.
void setField(const BMultipoleField &field)
virtual void setElementLength(double length)
Set design length.
double getReal(const Attribute &attr)
Return real value.
std::string getString(const Attribute &attr)
Get string value.
constexpr double c
The velocity of light in m/s.