|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include <MultipoleTBase.h>
Public Member Functions | |
| MultipoleTBase (MultipoleT *element) | |
| virtual | ~MultipoleTBase ()=default |
| virtual void | initialise ()=0 |
| virtual BGeometryBase & | getGeometry ()=0 |
| virtual const BGeometryBase & | getGeometry () const =0 |
| virtual void | transformCoords (Vector_t &R)=0 |
| virtual void | transformBField (Vector_t &B, const Vector_t &R)=0 |
| virtual double | getScaleFactor (double x, double s)=0 |
| virtual double | getBx (const Vector_t &R) |
| double | getBz (const Vector_t &R) |
| virtual double | getBs (const Vector_t &R) |
| virtual double | getFn (size_t n, double x, double s)=0 |
| virtual void | setMaxOrder (size_t, size_t) |
| virtual Vector_t | localCartesianToOpalCartesian (const Vector_t &r)=0 |
| virtual double | localCartesianRotation () |
Protected Attributes | |
| MultipoleT * | element_m |
Definition at line 84 of file MultipoleTBase.h.
|
explicit |
Constructor
Definition at line 33 of file MultipoleTBase.cpp.
References element_m.
Referenced by MultipoleTCurvedConstRadius::MultipoleTCurvedConstRadius(), MultipoleTCurvedVarRadius::MultipoleTCurvedVarRadius(), and MultipoleTStraight::MultipoleTStraight().
|
virtualdefault |
Destructor
|
virtual |
Returns the component of the field along the central axis
Returns zero far outside fringe field \( Bs = sum_n z^(2n+1) / (2n+1)! \partial_s f_n / h_s \)
Reimplemented in MultipoleTStraight.
Definition at line 60 of file MultipoleTBase.cpp.
References element_m, and getScaleFactor().
|
virtual |
Returns the radial component of the field
Returns zero far outside fringe field \( Bx = sum_n z^(2n+1) / (2n+1)! * \partial_x f_n \)
Reimplemented in MultipoleTStraight.
Definition at line 48 of file MultipoleTBase.cpp.
References element_m.
| double MultipoleTBase::getBz | ( | const Vector_t & | R | ) |
Returns the vertical field component
Returns zero far outside fringe field \( Bz = sum_n f_n * z^(2n) / (2n)! \)
Definition at line 37 of file MultipoleTBase.cpp.
References element_m, and getFn().
|
pure virtual |
Calculate fn(x, s) by expanding the differential operator (from Laplacian and scalar potential) in terms of polynomials
| n | -> nth derivative |
| x | -> Coordinate x |
| s | -> Coordinate s |
Implemented in MultipoleTCurvedConstRadius, MultipoleTCurvedVarRadius, and MultipoleTStraight.
Referenced by getBz().
|
pure virtual |
Return the cell geometry
Implemented in MultipoleTCurvedConstRadius, MultipoleTCurvedVarRadius, and MultipoleTStraight.
|
pure virtual |
Return the cell geometry
Implemented in MultipoleTCurvedConstRadius, MultipoleTCurvedVarRadius, and MultipoleTStraight.
|
pure virtual |
Returns the scale factor \( h_s = 1 + x / \rho(s) \)
| x | -> Coordinate x |
| s | -> Coordinate s |
Implemented in MultipoleTCurvedConstRadius, MultipoleTCurvedVarRadius, and MultipoleTStraight.
Referenced by getBs().
|
pure virtual |
Initialise the element
Implemented in MultipoleTCurvedConstRadius, MultipoleTCurvedVarRadius, and MultipoleTStraight.
|
inlinevirtual |
Reimplemented in MultipoleTCurvedVarRadius.
Definition at line 136 of file MultipoleTBase.h.
Implemented in MultipoleTCurvedConstRadius, MultipoleTCurvedVarRadius, and MultipoleTStraight.
|
inlinevirtual |
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 |
Reimplemented in MultipoleTCurvedConstRadius, and MultipoleTCurvedVarRadius.
Definition at line 134 of file MultipoleTBase.h.
Transform B-field from Frenet-Serret coordinates to lab coordinates
Implemented in MultipoleTCurvedConstRadius, MultipoleTCurvedVarRadius, and MultipoleTStraight.
|
pure virtual |
Transform to Frenet-Serret coordinates for sector magnets
Implemented in MultipoleTCurvedConstRadius, MultipoleTCurvedVarRadius, and MultipoleTStraight.
|
protected |
Definition at line 91 of file MultipoleTBase.h.
Referenced by getBs(), MultipoleTStraight::getBs(), getBx(), MultipoleTStraight::getBx(), getBz(), MultipoleTCurvedConstRadius::getFn(), MultipoleTCurvedVarRadius::getFn(), MultipoleTStraight::getFn(), MultipoleTCurvedConstRadius::getScaleFactor(), MultipoleTCurvedVarRadius::getScaleFactor(), MultipoleTCurvedConstRadius::initialise(), MultipoleTCurvedVarRadius::initialise(), MultipoleTStraight::initialise(), MultipoleTCurvedVarRadius::localCartesianToCurvilinear(), MultipoleTCurvedConstRadius::localCartesianToOpalCartesian(), MultipoleTStraight::localCartesianToOpalCartesian(), MultipoleTBase(), MultipoleTCurvedConstRadius::setMaxOrder(), MultipoleTCurvedVarRadius::setMaxOrder(), MultipoleTCurvedConstRadius::transformBField(), MultipoleTCurvedVarRadius::transformBField(), MultipoleTCurvedConstRadius::transformCoords(), and MultipoleTStraight::transformCoords().