|
OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
|
#include <VarRadiusGeometry.h>


Public Member Functions | |
| VarRadiusGeometry (double length, double rho, double s_0, double lambda_left, double lambda_right) | |
| Build VarRadiusGeometry with given length, centre radius of curvature and fringe field. More... | |
| VarRadiusGeometry (const VarRadiusGeometry &right) | |
| Copy constructor. More... | |
| virtual | ~VarRadiusGeometry () |
| Destructor. More... | |
| const VarRadiusGeometry & | operator= (const VarRadiusGeometry &right) |
| Assigment operator. More... | |
| virtual double | getArcLength () const |
| Arc length along the design arc. More... | |
| virtual double | getElementLength () const |
| Get element length measured along hte design arc. More... | |
| virtual void | setElementLength (double length) |
| Set arc length. More... | |
| double | getRadius () const |
| Get centre radius of curvature. More... | |
| void | setRadius (const double &rho) |
| Set centre radius of curvature. More... | |
| double | getS0 () const |
| Get central fringe field length. More... | |
| void | setS0 (const double &s_0) |
| Set central fringe field length. More... | |
| double | getLambdaLeft () const |
| Get left end fringe field length. More... | |
| void | setLambdaLeft (const double &lambda_left) |
| Set left end fringe field length. More... | |
| double | getLambdaRight () const |
| Get right end fringe field length. More... | |
| void | setLambdaRight (const double &lambda_right) |
| Set right end fringe field length. More... | |
| virtual Euclid3D | getTransform (double fromS, double toS) const |
| Transform of the local coordinate system. More... | |
| virtual Euclid3D | getTransform (double fromS) const |
| Transform of the local coordinate system from the origin to the entrance of the element Equivalent to getTransform(0.0, getEntrance()) More... | |
| virtual Euclid3D | getEntranceFrame () const |
| Transform of the local coordinate system from the origin to the entrance of the element Equivalent to getTransform(0.0, getEntrance()) More... | |
| virtual Euclid3D | getExitFrame () const |
| Transform of the local coordinate system from the origin to the exit of the element Equivalent to getTransform(0.0, getExit()) More... | |
| virtual double | getOrigin () const |
| Get origin position. More... | |
| virtual double | getEntrance () const |
| Get entrance position. More... | |
| virtual double | getExit () const |
| Get exit position. More... | |
| virtual Euclid3D | getTotalTransform () const |
| Get transform. More... | |
| virtual Euclid3D | getEntrancePatch () const |
| Get patch. More... | |
| virtual Euclid3D | getExitPatch () const |
| Get patch. More... | |
Private Attributes | |
| double | length_m |
| double | rho_m |
| double | s_0_m |
| double | lambda_left_m |
| double | lambda_right_m |
VarRadiusGeometry represents a Geometry with variable radius. Assuming
a Tanh model for fringe fields, the radius of curvature varies inversely
proportional with the fringe field. Such a magnet will follow the
trajectory of the reference particle. The origin is defined at the centre and extends from -length / 2 to
+length / 2. Transformations are calculated using a CoordinateTransformation object,
which integrates to find the reference trajectory.
Class category: AbsBeamline
$Author: Martin Duy Tat, Chris Rogers
Definition at line 57 of file VarRadiusGeometry.h.
|
inline |
Build VarRadiusGeometry with given length, centre radius of curvature and fringe field.
| length | -> Length of geometry |
| rho | -> Centre radius of curvature of geometry |
| s_0 | -> Length of central fringe field |
| lambda_left | -> Length of left end fringe field |
| lambda_right | -> Length of right end fringe field |
Definition at line 143 of file VarRadiusGeometry.h.
|
inline |
Copy constructor.
Definition at line 153 of file VarRadiusGeometry.h.
|
inlinevirtual |
Destructor.
Definition at line 171 of file VarRadiusGeometry.h.
|
inlinevirtual |
Arc length along the design arc.
Implements BGeometryBase.
Definition at line 174 of file VarRadiusGeometry.h.
References length_m.
|
inlinevirtual |
Get element length measured along hte design arc.
Implements BGeometryBase.
Definition at line 178 of file VarRadiusGeometry.h.
References length_m.
|
virtualinherited |
Get entrance position.
Reimplemented in PlanarArcGeometry, StraightGeometry, and BeamlineGeometry.
Definition at line 41 of file Geometry.cpp.
References BGeometryBase::getOrigin().
Referenced by ElementBase::getEntrance(), BGeometryBase::getEntranceFrame(), getEntranceFrame(), and BGeometryBase::getTotalTransform().

|
inlinevirtual |
Transform of the local coordinate system from the origin to the entrance of the element Equivalent to getTransform(0.0, getEntrance())
Reimplemented from BGeometryBase.
Definition at line 222 of file VarRadiusGeometry.h.
References BGeometryBase::getEntrance(), BGeometryBase::getOrigin(), and getTransform().

|
virtualinherited |
Get patch.
Reimplemented in RBendGeometry.
Definition at line 71 of file Geometry.cpp.
References Euclid3D::identity().
Referenced by ElementBase::getEntrancePatch().

|
virtualinherited |
Get exit position.
Reimplemented in PlanarArcGeometry, StraightGeometry, and BeamlineGeometry.
Definition at line 46 of file Geometry.cpp.
References BGeometryBase::getArcLength(), and BGeometryBase::getOrigin().
Referenced by ElementBase::getExit(), BGeometryBase::getExitFrame(), getExitFrame(), and BGeometryBase::getTotalTransform().

|
inlinevirtual |
Transform of the local coordinate system from the origin to the exit of the element Equivalent to getTransform(0.0, getExit())
Reimplemented from BGeometryBase.
Definition at line 226 of file VarRadiusGeometry.h.
References BGeometryBase::getExit(), BGeometryBase::getOrigin(), and getTransform().

|
virtualinherited |
Get patch.
Reimplemented in RBendGeometry.
Definition at line 76 of file Geometry.cpp.
References Euclid3D::identity().
Referenced by ElementBase::getExitPatch().

|
inline |
Get left end fringe field length.
Definition at line 206 of file VarRadiusGeometry.h.
References lambda_left_m.
|
inline |
Get right end fringe field length.
Definition at line 214 of file VarRadiusGeometry.h.
References lambda_right_m.
|
virtualinherited |
Get origin position.
Reimplemented in NullGeometry, PlanarArcGeometry, StraightGeometry, and BeamlineGeometry.
Definition at line 36 of file Geometry.cpp.
References BGeometryBase::getArcLength().
Referenced by BGeometryBase::getEntrance(), getEntranceFrame(), BGeometryBase::getExit(), getExitFrame(), and ElementBase::getOrigin().

|
inline |
Get centre radius of curvature.
Definition at line 190 of file VarRadiusGeometry.h.
References rho_m.
|
inline |
Get central fringe field length.
Definition at line 198 of file VarRadiusGeometry.h.
References s_0_m.
|
virtualinherited |
Get transform.
Reimplemented in Euclid3DGeometry, PlanarArcGeometry, RBendGeometry, StraightGeometry, and BeamlineGeometry.
Definition at line 51 of file Geometry.cpp.
References BGeometryBase::getEntrance(), BGeometryBase::getExit(), and BGeometryBase::getTransform().
Referenced by Ring::appendElement(), and ElementBase::getTotalTransform().

|
virtual |
Transform of the local coordinate system from the origin to the entrance of the element Equivalent to getTransform(0.0, getEntrance())
Reimplemented from BGeometryBase.
Definition at line 49 of file VarRadiusGeometry.cpp.
|
virtual |
Transform of the local coordinate system.
| fromS | -> Transform from this position |
| toS | -> Transform to this position |
Implements BGeometryBase.
Definition at line 34 of file VarRadiusGeometry.cpp.
References coordinatetransform::CoordinateTransform::calcReferenceTrajectory(), coordinatetransform::CoordinateTransform::getUnitTangentVector(), lambda_left_m, lambda_right_m, rho_m, s_0_m, Euclid3D::setX(), Euclid3D::setZ(), and Euclid3D::YRotation().
Referenced by getEntranceFrame(), and getExitFrame().

|
inline |
Assigment operator.
Definition at line 161 of file VarRadiusGeometry.h.
References lambda_left_m, lambda_right_m, length_m, rho_m, and s_0_m.
|
inlinevirtual |
Set arc length.
| length | -> Length of element |
Reimplemented from BGeometryBase.
Definition at line 182 of file VarRadiusGeometry.h.
References length_m, and ippl::max().
Referenced by MultipoleTCurvedVarRadius::initialise().

|
inline |
Set left end fringe field length.
| lambda_left | -> Left end fringe field length |
Definition at line 210 of file VarRadiusGeometry.h.
References lambda_left_m.
Referenced by MultipoleTCurvedVarRadius::initialise().
|
inline |
Set right end fringe field length.
| lambda_right | -> Right end fringe field length |
Definition at line 218 of file VarRadiusGeometry.h.
References lambda_right_m.
Referenced by MultipoleTCurvedVarRadius::initialise().
|
inline |
Set centre radius of curvature.
| rho | -> Central radius of curvature |
Definition at line 194 of file VarRadiusGeometry.h.
References rho_m.
Referenced by MultipoleTCurvedVarRadius::initialise().
|
inline |
Set central fringe field length.
| s_0 | -> Central fringe field length |
Definition at line 202 of file VarRadiusGeometry.h.
References s_0_m.
Referenced by MultipoleTCurvedVarRadius::initialise().
|
private |
Definition at line 136 of file VarRadiusGeometry.h.
Referenced by getLambdaLeft(), getTransform(), operator=(), and setLambdaLeft().
|
private |
Definition at line 137 of file VarRadiusGeometry.h.
Referenced by getLambdaRight(), getTransform(), operator=(), and setLambdaRight().
|
private |
Definition at line 133 of file VarRadiusGeometry.h.
Referenced by getArcLength(), getElementLength(), operator=(), and setElementLength().
|
private |
Definition at line 134 of file VarRadiusGeometry.h.
Referenced by getRadius(), getTransform(), operator=(), and setRadius().
|
private |
Definition at line 135 of file VarRadiusGeometry.h.
Referenced by getS0(), getTransform(), operator=(), and setS0().