at.physics.radiation#
Radiation and equilibrium emittances
Functions
|
Calculates the equilibrium beam envelope |
|
Computes the 5 radiation integrals for uncoupled lattices. |
|
Computes the diffusion matrix of the whole ring |
|
Generates a quantum diffusion element |
|
Scales magnet strengths |
- get_radiation_integrals(ring, dp=None, twiss=None, **kwargs)[source]#
Computes the 5 radiation integrals for uncoupled lattices.
- Parameters:
ring – Lattice description
twiss – Linear optics at all points (from
linopt6()
). IfNone
, it will be computed.
- Keyword Arguments:
- Returns:
i1 (float) – Radiation integrals - \(I_1 \quad [m]\)
i2 (float) – \(I_2 \quad [m^{-1}]\)
i3 (float) – \(I_3 \quad [m^{-2}]\)
i4 (float) – \(I_4 \quad [m^{-1}]\)
i5 (float) – \(I_5 \quad [m^{-1}]\)
- ohmi_envelope(ring, refpts=None, orbit=None, keep_lattice=False)[source]#
Calculates the equilibrium beam envelope
Computation based on Ohmi’s beam envelope formalism [1]
- Parameters:
ring (Lattice) – Lattice description. Radiation must be ON
refpts (Type[Element] | Element | Callable[[Element], bool] | str | None | int | Sequence[int] | bool | Sequence[bool] | RefptsCode) – Observation points
orbit (ndarray) – Avoids looking for initial the closed orbit if it is already known ((6,) array).
keep_lattice (bool) – Assume no lattice change since the previous tracking. Default: False
- Returns:
emit0 (np.recarray) – Emittance data at the start/end of the ring
beamdata (np.recarray) – Beam parameters at the start of the ring
emit (np.recarray) – Emittance data at the points selected to by
refpts
emit is a
record array
with the following fields:r66
(6, 6) equilibrium envelope matrix R
r44
(4, 4) betatron emittance matrix (dpp = 0)
m66
(6, 6) transfer matrix from the start of the ring
orbit6
(6,) closed orbit
emitXY
(2,) betatron emittance projected on xxp and yyp
emitXYZ
(3,) 6x6 emittance projected on xxp, yyp, ldp
Values given at the entrance of each element specified in
refpts
.Field values can be obtained with either
emit['r66']
oremit.r66
beamdata is a
record array
with the following fields:tunes
tunes of the 3 normal modes
damping_rates
damping rates of the 3 normal modes
mode_matrices
R-matrices of the 3 normal modes
mode_emittances
equilibrium emittances of the 3 normal modes
References
- tapering(ring, multipoles=True, niter=1, **kwargs)[source]#
Scales magnet strengths
Scales magnet strengths with local energy to cancel the closed orbit and optics errors due to synchrotron radiations. The dipole bending angle is changed by changing the reference momentum. This is the ideal tapering scheme where magnets and multipoles components (PolynomB and PolynomA) are scaled individually.
Warning
This method works only for lattices without errors and corrections: if not all corrections and field errors will also be scaled !!!
- Parameters:
- Keyword Arguments:
method (ELossMethod) – Method for energy loss computation. See
ELossMethod
XYStep (float) – Step size. Default:
DConstant.XYStep
DPStep (float) – Momentum step size. Default:
DConstant.DPStep