|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include <MultipoleT.h>


Public Member Functions | |
| MultipoleT (const std::string &name) | |
| MultipoleT (const MultipoleT &right) | |
| ~MultipoleT () override=default | |
| ElementBase * | clone () const override |
| void | accept (BeamlineVisitor &visitor) const override |
| BGeometryBase & | getGeometry () override |
| const BGeometryBase & | getGeometry () const override |
| EMField & | getField () override |
| const EMField & | getField () const override |
| bool | apply (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B) override |
| bool | apply (const size_t &i, const double &t, Vector_t &E, Vector_t &B) override |
| void | initialise (PartBunchBase< double, 3 > *bunch, double &startField, double &endField) override |
| void | finalise () override |
| bool | bends () const override |
| size_t | getMaxFOrder () const |
| size_t | getMaxXOrder () const |
| void | setMaxOrder (size_t orderZ, size_t orderX) |
| std::size_t | getTransMaxOrder () const |
| void | setTransProfile (const std::vector< double > &profile) |
| const std::vector< double > & | getTransProfile () const |
| void | setFringeField (const double &s0, const double &lambda_left, const double &lambda_right) |
| std::tuple< double, double, double > | getFringeField () const |
| void | setEntranceAngle (double entranceAngle) |
| void | setEntryOffset (double offset) |
| double | getEntryOffset () const |
| bool | getVariableRadius () const |
| void | setBendAngle (double angle, bool variableRadius) |
| double | getBendAngle () const |
| double | getEntranceAngle () const |
| void | setElementLength (double length) override |
| double | getLength () const |
| void | setAperture (const double &vertAp, const double &horizAp) |
| std::tuple< double, double > | getAperture () |
| void | setRotation (double rot) |
| double | getRotation () const |
| double | getBoundingBoxLength () const |
| void | setBoundingBoxLength (double boundingBoxLength) |
| void | getDimensions (double &, double &) const override |
| double | getFringeDeriv (const std::size_t &n, const double &s) |
| double | getFnDerivX (const std::size_t &n, const double &x, const double &s) |
| double | getFnDerivS (const std::size_t &n, const double &x, const double &s) |
| double | getTransDeriv (const std::size_t &n, const double &x) const |
| Vector_t | toMagnetCoords (const Vector_t &R) |
| Vector_t | getField (const Vector_t &magnetCoords) |
| Vector_t | localCartesianToOpalCartesian (const Vector_t &r) |
| double | localCartesianRotation () |
| void | setScalingName (const std::string &name) |
| void | setScalingModel (const std::shared_ptr< AbstractTimeDependence > &td) |
| std::string | getScalingName () const |
| void | initialiseTimeDepencencies () const |
Public Member Functions inherited from Component | |
| Component (const std::string &name) | |
| Constructor with given name. | |
| Component () | |
| Component (const Component &right) | |
| virtual | ~Component () |
| EVector | Efield (const Point3D &P) const |
| Return the field in a point. | |
| BVector | Bfield (const Point3D &P) const |
| Return the field in a point. | |
| EVector | Efield (const Point3D &P, double t) const |
| Return the field in a point. | |
| BVector | Bfield (const Point3D &P, double t) const |
| Return the field in a point. | |
| EBVectors | EBfield (const Point3D &P) const |
| Return the field in a point. | |
| EBVectors | EBfield (const Point3D &P, double t) const |
| Return the field in a point. | |
| virtual bool | applyToReferenceParticle (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B) |
| virtual bool | getPotential (const Vector_t &, const double &, Vector_t &, double &) |
| virtual double | getDesignEnergy () const |
| virtual void | setDesignEnergy (const double &energy, bool changeable=true) |
| virtual void | goOnline (const double &kineticEnergy) |
| virtual void | goOffline () |
| virtual bool | Online () |
| virtual ElementType | getType () const override |
| Get element type std::string. | |
| virtual const ElementBase & | getDesign () const |
| Return design element. | |
| virtual void | trackBunch (PartBunchBase< double, 3 > *bunch, const PartData &, bool revBeam, bool revTrack) const |
| Track particle bunch. | |
| virtual void | trackMap (FVps< double, 6 > &map, const PartData &, bool revBeam, bool revTrack) const |
| Track a map. | |
| void | setExitFaceSlope (const double &) |
Public Member Functions inherited from ElementBase | |
| ElementBase (const std::string &name) | |
| Constructor with given name. | |
| ElementBase () | |
| ElementBase (const ElementBase &) | |
| virtual | ~ElementBase () |
| virtual const std::string & | getName () const |
| Get element name. | |
| virtual void | setName (const std::string &name) |
| Set element name. | |
| std::string | getTypeString () const |
| virtual double | getArcLength () const |
| Get arc length. | |
| virtual double | getElementLength () const |
| Get design length. | |
| virtual void | getElementDimensions (double &begin, double &end) const |
| virtual double | getOrigin () const |
| Get origin position. | |
| virtual double | getEntrance () const |
| Get entrance position. | |
| virtual double | getExit () const |
| Get exit position. | |
| virtual Euclid3D | getTransform (double fromS, double toS) const |
| Get transform. | |
| virtual Euclid3D | getTransform (double s) const |
| Get transform. | |
| virtual Euclid3D | getTotalTransform () const |
| Get transform. | |
| virtual Euclid3D | getEntranceFrame () const |
| Get transform. | |
| virtual Euclid3D | getExitFrame () const |
| Get transform. | |
| virtual Euclid3D | getEntrancePatch () const |
| Get patch. | |
| virtual Euclid3D | getExitPatch () const |
| Get patch. | |
| virtual double | getAttribute (const std::string &aKey) const |
| Get attribute value. | |
| virtual bool | hasAttribute (const std::string &aKey) const |
| Test for existence of an attribute. | |
| virtual void | removeAttribute (const std::string &aKey) |
| Remove an existing attribute. | |
| virtual void | setAttribute (const std::string &aKey, double val) |
| Set value of an attribute. | |
| virtual Channel * | getChannel (const std::string &aKey, bool create=false) |
| Construct a read/write channel. | |
| virtual const ConstChannel * | getConstChannel (const std::string &aKey) const |
| Construct a read-only channel. | |
| virtual ElementBase * | copyStructure () |
| Make a structural copy. | |
| bool | isSharable () const |
| Test if the element can be shared. | |
| virtual void | makeSharable () |
| Set sharable flag. | |
| bool | update (const AttributeSet &) |
| Update element. | |
| virtual void | setBoundaryGeometry (BoundaryGeometry *geo) |
| virtual BoundaryGeometry * | getBoundaryGeometry () const |
| return the attached boundary geometrt object if there is any | |
| virtual bool | hasBoundaryGeometry () const |
| virtual void | setWake (WakeFunction *wf) |
| attach a wake field to the element | |
| virtual WakeFunction * | getWake () const |
| return the attached wake object if there is any | |
| virtual bool | hasWake () const |
| virtual void | setParticleMatterInteraction (ParticleMatterInteractionHandler *spys) |
| virtual ParticleMatterInteractionHandler * | getParticleMatterInteraction () const |
| virtual bool | hasParticleMatterInteraction () const |
| void | setCSTrafoGlobal2Local (const CoordinateSystemTrafo &ori) |
| CoordinateSystemTrafo | getCSTrafoGlobal2Local () const |
| void | releasePosition () |
| void | fixPosition () |
| bool | isPositioned () const |
| virtual CoordinateSystemTrafo | getEdgeToBegin () const |
| virtual CoordinateSystemTrafo | getEdgeToEnd () const |
| void | setAperture (const ApertureType &type, const std::vector< double > &args) |
| std::pair< ApertureType, std::vector< double > > | getAperture () const |
| virtual bool | isInside (const Vector_t &r) const |
| void | setMisalignment (const CoordinateSystemTrafo &cst) |
| void | getMisalignment (double &x, double &y, double &s) const |
| CoordinateSystemTrafo | getMisalignment () const |
| void | setActionRange (const std::queue< std::pair< double, double > > &range) |
| void | setCurrentSCoordinate (double s) |
| void | setRotationAboutZ (double rotation) |
| Set rotation about z axis in bend frame. | |
| double | getRotationAboutZ () const |
| virtual BoundingBox | getBoundingBoxInLabCoords () const |
| virtual int | getRequiredNumberOfTimeSteps () const |
| void | setOutputFN (std::string fn) |
| Set output filename. | |
| std::string | getOutputFN () const |
| Get output filename. | |
| void | setFlagDeleteOnTransverseExit (bool=true) |
| bool | getFlagDeleteOnTransverseExit () const |
| void | setElementPosition (double elemedge) |
| Access to ELEMEDGE attribute. | |
| double | getElementPosition () const |
| bool | isElementPositionSet () const |
Public Member Functions inherited from RCObject | |
| int | addReference () const |
| Increment reference count. | |
| int | removeReference () const |
| Decrement the reference count. | |
| bool | isShared () const |
| Test for sharing. | |
Protected Member Functions | |
| Vector_t | rotateFrame (const Vector_t &R) const |
| bool | insideAperture (const Vector_t &R) const |
| bool | insideBoundingBox (const Vector_t &R) const |
| void | chooseImplementation () |
Protected Member Functions inherited from ElementBase | |
| bool | isInsideTransverse (const Vector_t &r) const |
Protected Member Functions inherited from RCObject | |
| RCObject () | |
| Default constructor. | |
| RCObject (const RCObject &) | |
| Copy constructor. | |
| virtual | ~RCObject ()=0 |
| RCObject & | operator= (const RCObject &right) |
Additional Inherited Members | |
Static Public Member Functions inherited from ElementBase | |
| static std::string | getTypeString (ElementType type) |
Static Protected Attributes inherited from Component | |
| static const std::vector< double > | defaultAperture_m |
MultipoleT implements a straight or curved combined
function magnet (up to arbitrary multipole component) with fringe fields.
Class category: AbsBeamline
$Author: Titus Dascalu, Martin Duy Tat, Chris Rogers
The field is obtained from the scalar potential
\[ V = f_0(x,s) z + f_1 (x,s) \frac{z^3}{3!} + f_2 (x,s) \frac{z^5}{5!} + ... \]
(x,z,s) -> Frenet-Serret local coordinates along the magnet
z -> vertical component
assume mid-plane symmetry
set field on mid-plane -> \( B_z = f_0(x,s) = T(x) \cdot S(s) \)
T(x) -> transverse profile; this is a polynomial describing the field expansion on the mid-plane inside the magnet (not in the fringe field); 1st term is the dipole strength, 2nd term is the quadrupole gradient * x, etc.
-> when setting the magnet, one gives the multipole coefficients of this polynomial (i.e. dipole strength,
quadrupole gradient, etc.)
----------— example --------------------------------------------—
Setting a combined function magnet with dipole, quadrupole and sextupole components:
\( T(x) = B_0 + B_1 \cdot x + B_2 \cdot x^2 \)
user gives \( B_0, B_1, B_2 \)
----------— example end ----------------------------------------—
S(s) -> fringe field
recursion -> \( f_n (x,s) = (-1)^n \cdot \sum_{i=0}^{n} C_n^i
\cdot T^{(2i)} \cdot S^{(2n-2i)} \)
for curved magnets the above recursion is more complicated
\( C_n^i \) -> binomial coeff; \( T^{(n)} \) -> n-th derivative
Definition at line 88 of file MultipoleT.h.
|
explicit |
Constructor
| name | -> User-defined name |
Definition at line 42 of file MultipoleT.cpp.
References chooseImplementation().

| MultipoleT::MultipoleT | ( | const MultipoleT & | right | ) |
Copy constructor
Definition at line 47 of file MultipoleT.cpp.
References chooseImplementation(), and Component::RefPartBunch_m.

|
overridedefault |
Destructor
|
overridevirtual |
Accept a beamline visitor
Implements ElementBase.
Definition at line 73 of file MultipoleT.cpp.
References initialiseTimeDepencencies(), and BeamlineVisitor::visitMultipoleT().

|
overridevirtual |
Calculate the field at the position of the ith particle
| i | -> Index of the particle event; field is calculated at this position If particle is outside field map true is returned, otherwise false is returned |
| t | -> Time at which the field is to be calculated |
| E | -> Calculated electric field - always 0 (no E-field) |
| B | -> Calculated magnetic field |
Reimplemented from Component.
Definition at line 228 of file MultipoleT.cpp.
References apply(), PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::R, and Component::RefPartBunch_m.

|
overridevirtual |
Calculate the field at some arbitrary position
If particle is outside field map true is returned, otherwise false is returned
| R | -> Position in the lab coordinate system of the multipole |
| P | -> Not used |
| t | -> Time at which the field is to be calculated |
| E | -> Calculated electric field - always 0 (no E-field) |
| B | -> Calculated magnetic field |
Reimplemented from Component.
Definition at line 129 of file MultipoleT.cpp.
References getField(), ElementBase::getFlagDeleteOnTransverseExit(), insideAperture(), insideBoundingBox(), scalingTD_m, and toMagnetCoords().
Referenced by apply().

|
overridevirtual |
Return true if dipole component not zero
Implements Component.
Definition at line 293 of file MultipoleT.cpp.
References bendAngle_m, and transProfile_m.
|
protected |
Definition at line 247 of file MultipoleT.cpp.
References bendAngle_m, implementation_, and variableRadius_m.
Referenced by MultipoleT(), MultipoleT(), and setBendAngle().
|
overridevirtual |
Inheritable copy constructor
Implements ElementBase.
Definition at line 69 of file MultipoleT.cpp.
Referenced by ParallelCyclotronTracker::visitMultipoleT().
|
overridevirtual |
Finalise the MultipoleT - sets bunch to nullptr
Implements Component.
Definition at line 224 of file MultipoleT.cpp.
References Component::RefPartBunch_m.
|
inline |
Get the aperture dimensions
Definition at line 206 of file MultipoleT.h.
References horizontalApert_m, and verticalApert_m.
|
inline |
Get the bending angle of the magnet
Definition at line 187 of file MultipoleT.h.
References bendAngle_m.
Referenced by MultipoleTCurvedConstRadius::getFn(), MultipoleTCurvedVarRadius::getFn(), MultipoleTCurvedConstRadius::getScaleFactor(), MultipoleTCurvedVarRadius::getScaleFactor(), MultipoleTCurvedConstRadius::initialise(), MultipoleTCurvedVarRadius::initialise(), MultipoleTCurvedVarRadius::localCartesianToCurvilinear(), MultipoleTCurvedConstRadius::localCartesianToOpalCartesian(), MultipoleTCurvedConstRadius::transformBField(), MultipoleTCurvedVarRadius::transformBField(), and MultipoleTCurvedConstRadius::transformCoords().
|
inline |
Get the bounding box size
Definition at line 215 of file MultipoleT.h.
References boundingBoxLength_m.
|
inlineoverridevirtual |
|
inline |
|
inline |
Get the offset of the entry point from the standard position
Definition at line 181 of file MultipoleT.h.
References entryOffset_m.
Referenced by MultipoleTCurvedVarRadius::initialise().
|
inlineoverridevirtual |
Return a dummy field value
Implements Component.
Definition at line 109 of file MultipoleT.h.
References dummy.
|
inlineoverridevirtual |
Return a dummy field value
Implements Component.
Definition at line 107 of file MultipoleT.h.
References dummy.
Referenced by apply().
Calculate B-field in the local Frenet-Serret frame
Transform B-field from local to lab coordinates
Definition at line 117 of file MultipoleT.cpp.
References implementation_.
| double MultipoleT::getFnDerivS | ( | const std::size_t & | n, |
| const double & | x, | ||
| const double & | s | ||
| ) |
Calculate partial derivative of fn wrt s using a 5-point finite difference formula Error of order stepSize^4
| n | -> nth derivative |
| x | -> Coordinate x |
| s | -> Coordinate s |
Definition at line 210 of file MultipoleT.cpp.
References getFringeDeriv(), getTransDeriv(), and implementation_.
Referenced by MultipoleTBase::getBs().

| double MultipoleT::getFnDerivX | ( | const std::size_t & | n, |
| const double & | x, | ||
| const double & | s | ||
| ) |
Calculate partial derivative of fn wrt x using a 5-point finite difference formula Error of order stepSize^4
| n | -> nth derivative |
| x | -> Coordinate x |
| s | -> Coordinate s |
Definition at line 196 of file MultipoleT.cpp.
References getFringeDeriv(), getTransDeriv(), and implementation_.
Referenced by MultipoleTBase::getBx().

| double MultipoleT::getFringeDeriv | ( | const std::size_t & | n, |
| const double & | s | ||
| ) |
Returns the value of the fringe field n-th derivative at s
| n | -> nth derivative |
| s | -> Coordinate s |
Definition at line 159 of file MultipoleT.cpp.
References fringeField_l, fringeField_r, endfieldmodel::Tanh::getLambda(), endfieldmodel::Tanh::getNegTanh(), endfieldmodel::Tanh::getTanh(), endfieldmodel::Tanh::getX0(), and tanhderiv::integrate().
Referenced by MultipoleTStraight::getBs(), MultipoleTStraight::getBx(), MultipoleTCurvedConstRadius::getFn(), MultipoleTCurvedVarRadius::getFn(), MultipoleTStraight::getFn(), getFnDerivS(), getFnDerivX(), and MultipoleTCurvedVarRadius::getScaleFactor().

| std::tuple< double, double, double > MultipoleT::getFringeField | ( | ) | const |
Get the fringe field model
Definition at line 155 of file MultipoleT.cpp.
References fringeField_l, fringeField_r, endfieldmodel::Tanh::getLambda(), and endfieldmodel::Tanh::getX0().
Referenced by MultipoleTCurvedVarRadius::initialise(), MultipoleTCurvedVarRadius::localCartesianToCurvilinear(), and MultipoleTCurvedVarRadius::transformBField().

|
overridevirtual |
Return the cell geometry
Implements ElementBase.
Definition at line 319 of file MultipoleT.cpp.
References implementation_.
|
overridevirtual |
Return the cell geometry
Implements ElementBase.
Definition at line 315 of file MultipoleT.cpp.
References implementation_.
|
inline |
Get the length of the magnet
Definition at line 196 of file MultipoleT.h.
References length_m.
Referenced by MultipoleTCurvedConstRadius::getFn(), MultipoleTCurvedVarRadius::getFn(), MultipoleTCurvedConstRadius::getScaleFactor(), MultipoleTCurvedVarRadius::getScaleFactor(), MultipoleTCurvedConstRadius::initialise(), MultipoleTCurvedVarRadius::initialise(), MultipoleTStraight::initialise(), MultipoleTCurvedVarRadius::localCartesianToCurvilinear(), MultipoleTCurvedConstRadius::localCartesianToOpalCartesian(), MultipoleTStraight::localCartesianToOpalCartesian(), MultipoleTCurvedConstRadius::transformBField(), MultipoleTCurvedVarRadius::transformBField(), MultipoleTCurvedConstRadius::transformCoords(), and MultipoleTStraight::transformCoords().
|
inline |
Get the number of terms used in calculation of field components
Definition at line 143 of file MultipoleT.h.
References maxFOrder_m.
Referenced by MultipoleTBase::getBs(), MultipoleTStraight::getBs(), MultipoleTBase::getBx(), MultipoleTStraight::getBx(), MultipoleTBase::getBz(), MultipoleTCurvedConstRadius::initialise(), and MultipoleTCurvedVarRadius::initialise().
|
inline |
Definition at line 144 of file MultipoleT.h.
References maxXOrder_m.
Referenced by MultipoleTCurvedConstRadius::initialise(), and MultipoleTCurvedVarRadius::initialise().
|
inline |
Get the angle of rotation of the magnet around its axis
Definition at line 213 of file MultipoleT.h.
References rotation_m.
|
inline |
Definition at line 262 of file MultipoleT.h.
References scalingName_m.
| double MultipoleT::getTransDeriv | ( | const std::size_t & | n, |
| const double & | x | ||
| ) | const |
Returns the value of the transverse field n-th derivative at x
Transverse field is a polynomial in x, differentiation follows usual polynomial rules of differentiation
| n | -> nth derivative |
| x | -> Coordinate x |
Definition at line 172 of file MultipoleT.cpp.
References getTransMaxOrder(), getTransProfile(), and transMaxOrder_m.
Referenced by MultipoleTStraight::getBs(), MultipoleTStraight::getBx(), MultipoleTCurvedConstRadius::getFn(), MultipoleTCurvedVarRadius::getFn(), MultipoleTStraight::getFn(), getFnDerivS(), and getFnDerivX().

|
inline |
Get the maximum order in the given transverse profile
Definition at line 151 of file MultipoleT.h.
References transMaxOrder_m.
Referenced by getTransDeriv(), MultipoleTCurvedConstRadius::setMaxOrder(), and MultipoleTCurvedVarRadius::setMaxOrder().
|
inline |
Get all terms of transverse profile
Definition at line 157 of file MultipoleT.h.
References transProfile_m.
Referenced by getTransDeriv().
|
inline |
Get the variable radius of the magnet
Definition at line 183 of file MultipoleT.h.
References variableRadius_m.
|
overridevirtual |
Initialise the MultipoleT
| bunch | -> Bunch the global bunch object |
| startField | -> Not used |
| endField | -> Not used |
Implements Component.
Definition at line 297 of file MultipoleT.cpp.
References implementation_, and Component::RefPartBunch_m.
| void MultipoleT::initialiseTimeDepencencies | ( | ) | const |
Definition at line 308 of file MultipoleT.cpp.
References AbstractTimeDependence::getTimeDependence(), scalingName_m, and scalingTD_m.
Referenced by accept(), and PyOpal::PyOpalObjectNS::PyOpalObject< C >::doSetup().

|
protected |
Definition at line 98 of file MultipoleT.cpp.
References horizontalApert_m, and verticalApert_m.
Referenced by apply().
|
protected |
Definition at line 103 of file MultipoleT.cpp.
References boundingBoxLength_m, and fabs().
Referenced by apply().

| double MultipoleT::localCartesianRotation | ( | ) |
Definition at line 327 of file MultipoleT.cpp.
References implementation_.
Definition at line 323 of file MultipoleT.cpp.
References implementation_.
Rotate the frame to account for the rotation and entry angles.
| R | -> coordinate to rotate |
Apply two 2D rotation matrices to coordinate vector Rotate around central axis => skew fields Rotate azimuthally => entrance angle
Definition at line 78 of file MultipoleT.cpp.
References entranceAngle_m, and rotation_m.
Referenced by toMagnetCoords().
| void MultipoleT::setAperture | ( | const double & | vertAp, |
| const double & | horizAp | ||
| ) |
Set the aperture dimensions
This element only supports a rectangular aperture
| vertAp | -> Vertical aperture length |
| horizAp | -> Horisontal aperture length |
Definition at line 258 of file MultipoleT.cpp.
References horizontalApert_m, and verticalApert_m.
| void MultipoleT::setBendAngle | ( | double | angle, |
| bool | variableRadius | ||
| ) |
Set the bending angle of the magnet
Definition at line 240 of file MultipoleT.cpp.
References bendAngle_m, chooseImplementation(), and variableRadius_m.

| void MultipoleT::setBoundingBoxLength | ( | double | boundingBoxLength | ) |
Set the bounding box size. This controls the region for
| boundingBoxLength | -> Distance between centre and entrance |
Definition at line 263 of file MultipoleT.cpp.
References boundingBoxLength_m.
|
overridevirtual |
Set the length of the magnet If straight-> Actual length If curved -> Arc length
Reimplemented from ElementBase.
Definition at line 232 of file MultipoleT.cpp.
References implementation_, length_m, and ElementBase::setElementLength().
Referenced by OpalMultipoleT::update().

| void MultipoleT::setEntranceAngle | ( | double | entranceAngle | ) |
Set the entrance angle
| entranceAngle | -> Entrance angle |
Definition at line 285 of file MultipoleT.cpp.
References entranceAngle_m.
| void MultipoleT::setEntryOffset | ( | double | offset | ) |
Set the offset of the entry point from the standard position
| offset | positive for further away from the center |
Definition at line 289 of file MultipoleT.cpp.
References entryOffset_m.
| void MultipoleT::setFringeField | ( | const double & | s0, |
| const double & | lambda_left, | ||
| const double & | lambda_right | ||
| ) |
Set fringe field model
Tanh model used here
\[ 1/2 * \left [tanh \left( \frac{s + s_0}{\lambda_{left}} \right) - tanh \left( \frac{s - s_0}{\lambda_{right}} \right) \right] \]
| s0 | -> Centre field length and |
| lambda_left | -> Left end field length |
| lambda_right | -> Right end field length |
Definition at line 146 of file MultipoleT.cpp.
References fringeField_l, fringeField_r, implementation_, maxFOrder_m, endfieldmodel::Tanh::setLambda(), endfieldmodel::Tanh::setTanhDiffIndices(), and endfieldmodel::Tanh::setX0().

| void MultipoleT::setMaxOrder | ( | size_t | orderZ, |
| size_t | orderX | ||
| ) |
Set the number of terms used in calculation of field components
| orderZ | -> Number of terms in expansion in z |
| orderX | -> Number of terms in expansion in x |
Definition at line 275 of file MultipoleT.cpp.
References implementation_, maxFOrder_m, and maxXOrder_m.
| void MultipoleT::setRotation | ( | double | rot | ) |
Set the angle of rotation of the magnet around its axis
To make skew components
| rot | -> Angle of rotation |
Definition at line 281 of file MultipoleT.cpp.
References rotation_m.
|
inline |
Definition at line 261 of file MultipoleT.h.
References scalingTD_m.
| void MultipoleT::setScalingName | ( | const std::string & | name | ) |
Definition at line 303 of file MultipoleT.cpp.
References name, and scalingName_m.
| void MultipoleT::setTransProfile | ( | const std::vector< double > & | profile | ) |
Set the the transverse profile
| profile | -> Multipole field profile |
Definition at line 267 of file MultipoleT.cpp.
References transMaxOrder_m, and transProfile_m.
Rotate coordinates around the central axis of the magnet
Go to local Frenet-Serret coordinates
Definition at line 107 of file MultipoleT.cpp.
References implementation_, and rotateFrame().
Referenced by apply().

|
protected |
Definition at line 289 of file MultipoleT.h.
Referenced by bends(), chooseImplementation(), getBendAngle(), and setBendAngle().
|
protected |
Definition at line 291 of file MultipoleT.h.
Referenced by getBoundingBoxLength(), insideBoundingBox(), and setBoundingBoxLength().
|
protected |
Not implemented
Definition at line 297 of file MultipoleT.h.
Referenced by getField(), and getField().
|
protected |
Definition at line 287 of file MultipoleT.h.
Referenced by getEntranceAngle(), rotateFrame(), and setEntranceAngle().
|
protected |
Definition at line 292 of file MultipoleT.h.
Referenced by getEntryOffset(), and setEntryOffset().
|
protected |
Definition at line 276 of file MultipoleT.h.
Referenced by getFringeDeriv(), getFringeField(), and setFringeField().
|
protected |
Definition at line 277 of file MultipoleT.h.
Referenced by getFringeDeriv(), getFringeField(), and setFringeField().
|
protected |
Definition at line 295 of file MultipoleT.h.
Referenced by getAperture(), insideAperture(), and setAperture().
|
protected |
Definition at line 302 of file MultipoleT.h.
Referenced by chooseImplementation(), getField(), getFnDerivS(), getFnDerivX(), getGeometry(), getGeometry(), initialise(), localCartesianRotation(), localCartesianToOpalCartesian(), setElementLength(), setFringeField(), setMaxOrder(), and toMagnetCoords().
|
protected |
Magnet parameters
Definition at line 286 of file MultipoleT.h.
Referenced by getLength(), and setElementLength().
|
protected |
Number of terms in z expansion used in calculating field components
Definition at line 279 of file MultipoleT.h.
Referenced by getMaxFOrder(), setFringeField(), and setMaxOrder().
|
protected |
Highest order of polynomial expansions in x
Definition at line 281 of file MultipoleT.h.
Referenced by getMaxXOrder(), and setMaxOrder().
|
protected |
Definition at line 288 of file MultipoleT.h.
Referenced by getRotation(), rotateFrame(), and setRotation().
|
protected |
Definition at line 299 of file MultipoleT.h.
Referenced by getScalingName(), initialiseTimeDepencencies(), and setScalingName().
|
mutableprotected |
Definition at line 300 of file MultipoleT.h.
Referenced by apply(), initialiseTimeDepencencies(), and setScalingModel().
|
protected |
Definition at line 284 of file MultipoleT.h.
Referenced by getTransDeriv(), getTransMaxOrder(), and setTransProfile().
|
protected |
List of transverse profile coefficients
Definition at line 283 of file MultipoleT.h.
Referenced by bends(), getTransProfile(), and setTransProfile().
|
protected |
Definition at line 290 of file MultipoleT.h.
Referenced by chooseImplementation(), getVariableRadius(), and setBendAngle().
|
protected |
Assume rectangular aperture with these dimensions
Definition at line 294 of file MultipoleT.h.
Referenced by getAperture(), insideAperture(), and setAperture().