This function returns the linear transport map.
Jacobian at the reference trajectory of the ChrAcc push (see
- See also
- operator()). The nonlinear push composes, in order: (1) static->dynamic unit conversion: diag(1, bgi, 1, bgi, 1, bgi) acting on (x, px, y, py, t, pt); (2) solenoid-like focusing by phase advance theta (cf. Sol); (3) rotation by the same theta in the (x, y) plane; (4) dynamic->static unit conversion: diag(1, 1/bgf, 1, 1/bgf, 1, 1/bgf) on the output; plus a symplectic correction to t. Here theta = (alpha/ez) * log((pzf_ref - ptf_ref)/(pzi_ref - pti_ref)) with alpha = Bz/2, ez the normalized longitudinal electric field, pzi_ref = sqrt(pti_ref^2 - 1), pzf_ref = sqrt(ptf_ref^2 - 1), and (pti_ref, ptf_ref) = (initial, final) reference pt on this slice.
This routine is called after the reference particle has been advanced by one slice (see diagnostics/LinearMap.cpp), so refpart.pt holds ptf_ref and pti_ref = ptf_ref + ez * slice_ds.
The closed-form linear map was derived with SymPy by Jacobian of the exact push at (x, px, y, py, t, pt) = 0. Writing c = cos(theta0), s = sin(theta0) with theta0 the reference phase advance above, the nonzero entries are R(1,1) = c^2, R(1,2) = bgi * c*s / alpha, R(1,3) = c*s, R(1,4) = bgi * s^2 / alpha, R(2,1) = -alpha * c*s / bgf, R(2,2) = (bgi/bgf) * c^2, R(2,3) = -alpha * s^2 / bgf, R(2,4) = (bgi/bgf) * c*s, R(3,1) = -c*s, R(3,2) = -bgi * s^2 / alpha, R(3,3) = c^2, R(3,4) = bgi * c*s / alpha, R(4,1) = alpha * s^2 / bgf, R(4,2) = -(bgi/bgf) * c*s, R(4,3) = -alpha * c*s / bgf, R(4,4) = (bgi/bgf) * c^2, R(5,5) = 1, R(5,6) = (bgi/ez) * (ptf_ref/pzf_ref - pti_ref/pzi_ref), R(6,6) = bgi/bgf. All other entries are zero. The quadratic-in-(px, py, x, y) part of the t correction vanishes at linear order.
References:
- A. J. Dragt, Lie Methods for Nonlinear Dynamics with Applications to Accelerator Physics, Univ. of Maryland, 2020 (MaryLie documentation), chapter on uniform-Ez acceleration with solenoidal focusing;
- H. Wiedemann, Particle Accelerator Physics, 4th ed., Springer 2015, chapters on electrostatic acceleration and solenoid focusing;
- The Hamiltonian and nonlinear push follow Chad Mitchell's formulation already implemented in
- See also
- operator().
Ideal behavior only: alignment and rotation errors and feed-down from an off-axis reference orbit are ignored.
- Parameters
-
| [in] | refpart | reference particle after this slice's reference advance (pt = ptf_ref) |
- Returns
- 6x6 transport matrix