Bending magnet RAy Tracing using (Bx, By, Bz) vs (x, y, z).
Parallel capable? : yes
GPU capable? : no
Back-tracking capable? : no
Parameter Name | Units | Type | Default | Description |
L | M | double | 0.0 | length |
ANGLE | RAD | double | 0.0 | Nominal bending angle. Will be refined to match geometry specified by input/output and vertex coordinates |
FSE | NULL | double | 0.0 | fractional strength error |
ACCURACY | NULL | double | 0.0 | integration accuracy |
METHOD | NULL | STRING | NULL | Ignored. Method defaults to Bulirsch-Stoer. |
FILENAME | NULL | STRING | NULL | name of file containing columns (x, y, z, Bx, By, Bz) for main field |
ADDITIONAL_FILENAME | NULL | STRING | NULL | name of a file containing columns (x, y, z, Bx, By, Bz) for adding to the main field |
XVERTEX | M | double | 0.0 | x coordinate of vertex point |
ZVERTEX | M | double | 0.0 | z coordinate of vertex point |
XENTRY | M | double | 0.0 | x coordinate of nominal entry point |
ZENTRY | M | double | 0.0 | z coordinate of nominal entry point |
XEXIT | M | double | 0.0 | x coordinate of nominal exit point |
ZEXIT | M | double | 0.0 | z coordinate of nominal exit point |
DXMAP | M | double | 0.0 | x displacement of map |
DYMAP | M | double | 0.0 | y displacement of map |
DZMAP | M | double | 0.0 | z displacement of map |
YAWMAP | RAD | double | 0.0 | yaw of map about x=z=0 |
MAIN_FACTOR | double | 1 | factor by which to multiply main fields |
|
ADDITIONAL_FACTOR | double | 0.0 | factor by which to multiply additional fields prior to adding to main fields |
|
BRAT continued
Bending magnet RAy Tracing using (Bx, By, Bz) vs (x, y, z).
Parameter Name | Units | Type | Default | Description |
FACTOR | double | 1 | factor by which to multiply combined fields |
|
DELTA_BY_INSIDE | T | double | 0.0 | Vertical magnetic field to add to the map value when inside the hard-edge boundaries |
USE_FTABLE | short | 0 | If nonzero, use FTABLE method for integration. Value gives the number of kicks. |
|
XY_INTERPOLATION_ORDER | short | 1 | Order of interpolation in x and y. |
|
XY_GRID_EXCESS | short | 0 | Number of rows or columns to add in each dimension to the minimum. |
|
XY_EXTRAPOLATE | short | 0 | If nonzero, will extrapolate the field map in (x,y) if particle is outside. Otherwise, field is assumed to be zero. |
|
USE_SBEN_MATRIX | short | 0 | If nonzero, instead of using tracking to determine the matrix, will just use a sector-bend matrix. |
|
USE_DRIFT_MATRIX | short | 0 | If nonzero, instead of using tracking to determine the matrix, will just use a drift matrix. |
|
SINGLE_PRECISION | short | 0 | If nonzero, store field data in single precision to reduce memory requirements. Incompatible with FTABLE mode. |
|
PARTICLE_OUTPUT_FILE | NULL | STRING | NULL | Filename template for particle output. Can be very resource intensive! |
PARTICLE_OUTPUT_LOST_ONLY | NULL | short | 0 | If non-zero, particle output includes only lost particles. |
BRAT continued
Bending magnet RAy Tracing using (Bx, By, Bz) vs (x, y, z).
Parameter Name | Units | Type | Default | Description |
PARTICLE_OUTPUT_SELECTION_INTERVAL | NULL | long | 1 | Interval between particles selected for output. |
PARTICLE_OUTPUT_SAMPLE_INTERVAL | NULL | long | 1 | Interval in integration steps for particle output. |
GROUP | string | NULL | Optionally used to assign an element to a group, with a user-defined name. Group names will appear in the parameter output file in the column ElementGroup |
|
Bending magnet RAy Tracing using (Bx, By, Bz) vs (x, y, z). This element is a companion to the commandline program abrat. It integrates through a 3-D field map for a bending magnet, including coordinate transformations. No synchrotron radiation calculations are included at this time.
Coordinates
The coordinates of the field map are right-handed system (x, y, z), where z is along the length of the magnet, x is to the right as viewed along the direction of beam propagation, and y is up. The user must specify the (x, z) coordinates of three points:
The bending angle is equal to the angle between two lines: the line from ENTRY to VERTEX and the line from VERTEX to EXIT. The L and ANGLE parameters supplied by the user are used for geometry calculations (e.g., floor coordinates) only.
The DXMAP, DZMAP, YAWMAP, and FSE values can be used to optimize the field map to ensure that the horizontal reference trajectory is not displaced at the exit of the element. The optimization feature of the abrat program can be used to determine these values.
Matrix generation
elegant will use tracking to determine the transport matrix for BRAT elements, which is needed for computation of twiss parameters and other operations. This can require some time, so elegant will cache the matrices and re-use them for identical elements.
If matrices are not of particular interest, significant time savings can be realized by setting USE_SBEND_MATRIX=1. Of course, any matrix-based results (e.g., twiss parameters) are then dubious at best.
Symmetry
By default, the BRAT element should be supplied with the full 3D field map of the magnet. To allow saving memory and reducing the time to load data, partial magnetic field maps can be loaded as well, but the user must specify the symmetry of the magnet to ensure that the fields are modeled correctly in the full volume. This is done using the ySymmetry and zSymmetry parameters in the input file, which may have one of three values: none (default), even, and odd. A normal (upright) multipole magnet would have ySymmetry=odd, while a skew multipole would have ySymmetry=even.
Note that when using these symmetries, the user is not required to limit the field map to y ≥ 0, though doing so saves the most memory. If possible, it is recommended to provide the fields over y ≥-2Δy, so that the transverse interpolation as a few points on both sides of y = 0. This will ensure better results near the origin.
Integration methods
The original (and default) integration method is Bulirsch-Stoer integration of the Lorentz force equation. As an alternative, one can use the faster, rotation-based method of the FTABLE element. For repeated use, the two methods should be compared and a choice made based on the user’s needs.
BUMPER