Parallel capable? : yes

Parameter Name | Units | Type | Default | Description |

L | double | 0.0 | arc length | |

ANGLE | double | 0.0 | bend angle | |

K1 | double | 0.0 | geometric quadrupole strength | |

K2 | double | 0.0 | geometric sextupole strength | |

K3 | double | 0.0 | geometric octupole strength | |

K4 | double | 0.0 | geometric decapole strength | |

K5 | double | 0.0 | geometric 12-pole strength | |

K6 | double | 0.0 | geometric 14-pole strength | |

K7 | double | 0.0 | geometric 16-pole strength | |

K8 | double | 0.0 | geometric 18-pole strength | |

E1 | double | 0.0 | entrance edge angle | |

E2 | double | 0.0 | exit edge angle | |

TILT | double | 0.0 | rotation about incoming longitudinal axis | |

H1 | double | 0.0 | entrance pole-face curvature | |

H2 | double | 0.0 | exit pole-face curvature | |

HGAP | double | 0.0 | half-gap between poles | |

FINT | double | 0.5 | edge-field integral | |

DX | double | 0.0 | misalignment | |

DY | double | 0.0 | misalignment | |

DZ | double | 0.0 | misalignment | |

FSE | double | 0.0 | fractional strength error | |

ETILT | double | 0.0 | error rotation about incoming longitudinal axis | |

N_KICKS | long | 4 | number of kicks | |

NONLINEAR | long | 1 | include nonlinear field components? | |

LINEARIZE | long | `0` |
use linear matrix instead of symplectic integrator? | |

SYNCH_RAD | long | `0` |
include classical synchrotron radiation? | |

EDGE1_EFFECTS | long | 1 | include entrance edge effects? |

Like CSBEND, but incorporates a simulation of Coherent Synchrotron radiation.

Parameter Name | Units | Type | Default | Description |

EDGE2_EFFECTS | long | 1 | include exit edge effects? | |

EDGE_ORDER | long | 1 | order to which to include edge effects | |

INTEGRATION_ORDER | long | 4 | integration order (2 or 4) | |

BINS | long | `0` |
number of bins for CSR wake | |

BIN_ONCE | long | `0` |
bin only at the start of the dipole? | |

BIN_RANGE_FACTOR | double | 1.2 | Factor by which to increase the range of histogram compared to total bunch length. Large value eliminates binning problems in CSRDRIFTs. | |

SG_HALFWIDTH | long | `0` |
Savitzky-Golay filter half-width for smoothing current histogram. If less than 1, no SG smoothing is performed. | |

SG_ORDER | long | 1 | Savitzky-Golay filter order for smoothing current histogram | |

SGDERIV_HALFWIDTH | long | `0` |
Savitzky-Golay filter half-width for taking derivative of current histogram. Defaults to SG_HALFWIDTH (if positive) or else 1. | |

SGDERIV_ORDER | long | 1 | Savitzky-Golay filter order for taking derivative of current histogram | |

TRAPAZOID_INTEGRATION | long | 1 | Select whether to use trapazoid-rule integration (default) or a simple sum. | |

OUTPUT_FILE | STRING | NULL | output file for CSR wakes | |

OUTPUT_INTERVAL | long | 1 | interval (in kicks) of output to OUTPUT_FILE | |

OUTPUT_LAST_WAKE_ONLY | long | `0` |
output final wake only? | |

STEADY_STATE | long | `0` |
use steady-state wake equations? |

Like CSBEND, but incorporates a simulation of Coherent Synchrotron radiation.

Parameter Name | Units | Type | Default | Description |

IGF | long | `0` |
use integrated Greens function (requires STEADY_STATE=1)? | |

USE_BN | long | `0` |
use bn instead of Kn? | |

EXPANSION_ORDER | long | `0` |
Order of field expansion. (0=auto) | |

B1 | double | 0.0 | K1 = b1/rho, where rho is bend radius | |

B2 | double | 0.0 | K2 = B2/rho | |

B3 | double | 0.0 | K3 = B3/rho | |

B4 | double | 0.0 | K4 = B4/rho | |

B5 | double | 0.0 | K5 = B5/rho | |

B6 | double | 0.0 | K6 = B6/rho | |

B7 | double | 0.0 | K7 = B7/rho | |

B8 | double | 0.0 | K8 = B8/rho | |

ISR | long | `0` |
include incoherent synchrotron radiation (scattering)? | |

ISR1PART | long | 1 | Include ISR for single-particle beam only if ISR=1 and ISR1PART=1 | |

CSR | long | 1 | enable CSR computations? | |

BLOCK_CSR | long | `0` |
block CSR from entering CSRDRIFT? | |

DERBENEV_CRITERION_MODE | STRING | disable | disable, evaluate, or enforce | |

PARTICLE_OUTPUT_FILE | STRING | NULL | name of file for phase-space output | |

PARTICLE_OUTPUT_INTERVAL | long | `0` |
interval (in kicks) of output to PARTICLE_OUTPUT_FILE | |

SLICE_ANALYSIS_INTERVAL | long | `0` |
interval (in kicks) of output to slice analysis file (from slice_analysis command) | |

LOW_FREQUENCY_CUTOFF0 | double | -1 | Highest spatial frequency at which low-frequency cutoff filter is zero. If not positive, no low-frequency cutoff filter is applied. Frequency is in units of Nyquist (0.5/binsize). |

Like CSBEND, but incorporates a simulation of Coherent Synchrotron radiation.

Parameter Name | Units | Type | Default | Description |

LOW_FREQUENCY_CUTOFF1 | double | -1 | Lowest spatial frequency at which low-frequency cutoff filter is 1. If not given, defaults to LOW_FREQUENCY_CUTOFF1. | |

HIGH_FREQUENCY_CUTOFF0 | double | -1 | Spatial frequency at which smoothing (high-frequency cutoff) filter begins. If not positive, no frequency filter smoothing is done. Frequency is in units of Nyquist (0.5/binsize). | |

HIGH_FREQUENCY_CUTOFF1 | double | -1 | Spatial frequency at which smoothing (high-frequency cutoff) filter is 0. If not given, defaults to HIGH_FREQUENCY_CUTOFF0. | |

CLIP_NEGATIVE_BINS | long | 1 | If non-zero, then any bins with negative counts after the filters are applied have the counts set to zero. | |

WAKE_FILTER_FILE | STRING | NULL | Name of file supplying wakefield filtering data. | |

WFF_FREQ_COLUMN | STRING | NULL | Name of column supplying frequency values for wakefield filtering data. | |

WFF_REAL_COLUMN | STRING | NULL | Name of column supplying real values for wakefield filtering data. | |

WFF_IMAG_COLUMN | STRING | NULL | Name of column supplying imaginary values for wakefield filtering data. | |

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 |

For a discussion of the method behind this element, see M. Borland,
``Simple method for particle tracking with coherent synchrotron
radiation,'' Phys. Rev. ST Accel. Beams 4, 070701 (2001) and
G. Stupakov and P. Emma, SLAC LCLS-TN-01-12 (2001).

**Recommendations for using this element.** The default values for
this element are not the best ones to use. They are retained only for
consistency through upgrades. In using this element, it is
recommended to have 50 to 100 k particle in the simulation. Setting
`BINS=600` and `SG_HALFWIDTH=1` is also recommended to allow
resolution of fine structure in the beam and to avoid excessive
smoothing. It is strongly suggested that the user vary these
parameters and view the histogram output to verify that the
longitudinal distribution is well represented by the histograms (use
`OUTPUT_FILE` to obtain the histograms). For LCLS simulations,
we find that the above parameters give essentially the same results as
obtained with 500 k particles and up to 3000 bins.

In order to verify that the 1D approximation is valid, the user should
also set `DERBENEV_CRITERION_MODE = ``evaluate''` and view
the data in `OUTPUT_FILE`. Generally, the criterion should be
much less than 1. See equation 11 of [20].

In order respects, this element is just like the `CSBEND` element,
which provides a symplectic bending magnet that is accurate to all
orders in momentum offset. The field expansion is available to fourth
order.

One pitfall of symplectic integration is the possibility of orbit and
path-length errors for the reference orbit if too few kicks are used.
This may be an issue for rings. Hence, one must verify that a
sufficient number of kicks are being used by looking at the trajectory
closure and length of an on-axis particle by tracking. Using
`INTEGRATION_ORDER=4` is recommended to reduce the number of
required kicks.

Normally, one specifies the higher-order components of the field with
the `K1`, `K2`, `K3`, and `K4` parameters. The field
expansion in the midplane is
. By setting the `USE_bN`
flag to a nonzero value, one may instead specify the `b1` through
`b4` parameters, which are defined by the expansion
. This is convenient if one is
varying the dipole radius but wants to work in terms of constant field
quality.

Setting `NONLINEAR=0` turns off all the terms above `K_1` (or `b_1`) and
also turns off effects due to curvature that would
normally result in a gradient producing terms of higher order.

Edge effects are included using a first- or second-order matrix. The
order is controlled using the `EDGE_ORDER` parameter, which has a
default value of 1. N.B.: if you choose the second-order matrix, it
is not symplectic.

Some confusion may exist about the edge angles, particularly the signs.
For a sector magnet, we have of course `E1=E2=0`

. For a symmetric rectangular
magnet, `E1=E2=ANGLE/2`

. If `ANGLE`

is negative, then so are
`E1`

and `E2`

. To understand this, imagine a rectangular magnet with positive `ANGLE`

.
If the magnet is flipped over, then `ANGLE`

becomes negative, as does the bending
radius . Hence, to keep the focal length
of the edge
constant, we must also change the sign of
.

When adding errors, care should be taken to choose the right
parameters. The `FSE`

and `ETILT`

parameters are used for
assigning errors to the strength and alignment relative to the ideal
values given by `ANGLE`

and `TILT`

. One can also assign
errors to `ANGLE`

and `TILT`

, but this has a different meaning:
in this case, one is assigning errors to the survey itself. The reference
beam path changes, so there is no orbit/trajectory error. The most common
thing is to assign errors to `FSE`

and `ETILT`

. Note that when
adding errors to `FSE`

, the error is assumed to come from the power
supply, which means that multipole strengths also change.

*Special note about splitting dipoles*: when dipoles are long, it is
common to want to split them into several pieces, to get a better look
at the interior optics. When doing this, care must be exercised not
to change the optics. `elegant` has some special features that
are designed to reduce or manage potential problems. At issue is the
need to turn off edge effects between the portions of the same dipole.

First, one can simply use the `divide_elements`

command to set up
the splitting. Using this command, `elegant` takes care of everything.

Second, one can use a series of dipoles *with the same name*. In this case,
elegant automatically turns off interior edge effects. This is true when the
dipole elements directly follow one another or are separated by a MARK element.

Third, one can use a series of dipoles with different names. In this case, you
must also use the `EDGE1_EFFECTS`

and `EDGE2_EFFECTS`

parameters to
turn off interior edge effects.

N.B.: For versions 19.X and ealier splitting dipoles is not generally recommended for `CSRCSBEND` because the coherent synchrotron radiation computations
start over at the beginning of each piece. This is only acceptable
when using `STEADY_STATE=1`

. This was changed in version 20.X.