A map of (Bx, By, Bz) vs (x, y, z), for straight elements only
Parallel capable? : yes
GPU capable? : no
Back-tracking capable? : no
Parameter Name | Units | Type | Default | Description |
L | M | double | 0.0 | insertion length |
DX | M | double | 0.0 | misalignment |
DY | M | double | 0.0 | misalignment |
DZ | M | double | 0.0 | misalignment |
TILT | RAD | double | 0.0 | rotation about longitudinal axis |
LFIELD | M | double | -1 | expected length of the field map. If negative, determined from field data. |
STRENGTH | NULL | double | 1 | factor by which to multiply field |
FSE | NULL | double | 0.0 | Fractional Strength Error. |
BXFACTOR | NULL | double | 1 | factor by which to multiply x component of field. |
BYFACTOR | NULL | double | 1 | factor by which to multiply y component of field. |
BZFACTOR | NULL | double | 1 | factor by which to multiply z component of field. |
BXINSIDE | NULL | double | 0.0 | Constant Bx field to add inside the hard-edge boundaries. |
BYINSIDE | NULL | double | 0.0 | Constant By field to add inside the hard-edge boundaries. |
BZINSIDE | NULL | double | 0.0 | Constant Bz field to add inside the hard-edge boundaries. |
BINSIDE_XMIN | NULL | double | 0.0 | Minimum x value at which BInside is applied. |
BINSIDE_XMAX | NULL | double | 0.0 | Maximum x value at which BInside is applied. |
ACCURACY | NULL | double | 0.0 | integration accuracy |
METHOD | NULL | STRING | NULL | integration method (runge-kutta, bulirsch-stoer, modified-midpoint, two-pass modified-midpoint, leap-frog, non-adaptive runge-kutta |
BMXYZ continued
A map of (Bx, By, Bz) vs (x, y, z), for straight elements only
Parameter Name | Units | Type | Default | Description |
FILENAME | NULL | STRING | NULL | name of file containing columns (x, y, z) and either (Bx, By, Bz) or (Fx, Fy, Fz) |
SYNCH_RAD | short | 0 | include classical, single-particle synchrotron radiation? |
|
CHECK_FIELDS | short | 0 | check fields by computing divB and curlB errors? |
|
INJECT_AT_Z0 | short | 0 | By default, particles are placed at the entrance to the field map regardless of the z coordinate values. If nonzero, particles start at z=0. |
|
DRIFT_MATRIX | short | 0 | If non-zero, instead of tracking to determine the matrix, just assume a drift-space matrix. |
|
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. |
|
SINGLE_PRECISION | short | 0 | If nonzero, store field data in single precision to reduce memory requirements. |
|
DISCARD_MAP | short | 0 | If nonzero, field data is discarded after use. Reduces memory use but may result in additional delays for reading data again if needed. |
|
VERBOSITY | short | 0 | Larger values result in more informational printouts. Will reduce performance. |
|
PARTICLE_OUTPUT_FILE | NULL | STRING | NULL | name of file for phase-space output inside element. Use for debugging only in serial version. |
BMXYZ continued
A map of (Bx, By, Bz) vs (x, y, z), for straight elements only
Parameter Name | Units | Type | Default | Description |
APCONTOUR | NULL | STRING | NULL | name of element defining aperture contour inside the field map region. |
ZMIN_APCONTOUR | NULL | double | -8.98846567431158e+307 | Minimum z value at which APCONTOUR apertures are applied. |
ZMAX_APCONTOUR | NULL | double | 8.98846567431158e+307 | Maximum z value at which APCONTOUR apertures are applied. |
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 |
|
This element simulates transport through a 3D magnetic field specified as a field map. It does this by simply integrating the Lorentz force equation in cartesian coordinates. It does not incorporate changes in the design trajectory resulting from the fields. I.e., if you input a dipole field, it is interpreted as a steering element.
The field map file is an SDDS file with the following columns:
The field map file must contain a rectangular grid of points, equispaced (separately) in x, y, and z. There should be no missing values in the grid (this is not checked by elegant). In addition, the x values must vary fastest as the values are accessed in row order, then the y values. To ensure that this is the case, use the following command on the field file:
sddssort fieldFile -column=z,incr -column=y,incr -column=x,incr
This element is an alternative to FTABLE using a more conventional integration method.
The BXFACTOR, BYFACTOR, and BZFACTOR allow multiplying the indicated field components by the given factors. These scaling parameters may result in unphysical fields.
By default, the BMXYZ element should be supplied with the full 3D field map of the magnet. To allow saving memory and reducing the file 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 three optional parameters in the input file, xSymmetry, ySymmetry, and zSymmetry. If present, these must have one of three none (default), even, and odd.
For example, a normal quadrupole magnet would have xSymmetry=odd, ySymmetry=odd, and zSymmetry=even. A left/right symmetric dipole or sextupole would have xSymmetry=even, ySymmetry=odd, zSymmetry=even. A normal octupole would have the same symmetry codes as a normal quadrupole. Note that when using these symmetries, the user is not required to limit the field map to, say, x ≥ 0, y ≥ 0, and z ≥ 0, though doing so saves the most memory. If possible, it is recommended to provide the fields over x ≥-2Δx, y ≥-2Δy, and z ≥ 0, so that the transverse interpolation as a few points on both sides of the origin. This will ensure better results near the origin.
Internally, elegant stores only the partial field map. When field values are required outside this region, the declared symmetries are used to map the coordinates to the covered region and change signs of the various field components if required.
Internal apertures may be specified using four methods, as used in elements like KQUAD and CSBEND. The methods include upstrea MAXAMP elements, upstream APCONTOUR elements with STICKY=1, s-dependent apertures defined via the aperture_data command, and global-coordinate system apertures defined via the obstruction_data command.
For APCONTOUR-defined apertures, this can be invoked using the STICKY=1 parameter, which is used to impose the aperture contour on downstream elements. One fine point is that the field map is typically significantly longer than the magnet itself. We don’t want to apply the apertures except in some region in the interior of the field map This can be specified using the ZMIN_APCONTOUR and ZMAX_APCONTOUR parameters, which give the range of application in the coordinate system of the field map. In this case, to prevent application of the APCONTOUR apertures at the point of definition, the APCONTOUR element should have HOLDOFF=1 and be inserted in the lattice just before the BMXYZ element.
BOFFAXE