diff --git a/Changes.md b/Changes.md index 67d44bb08..04198bc3b 100644 --- a/Changes.md +++ b/Changes.md @@ -1,4 +1,6 @@ MAD-X master +* Track + * [PR 1182](https://github.com/MethodicalAcceleratorDesign/MAD-X/pull/1182) Fix thick dipole tracking MAD-X release 5.09.00 (2023.05.05) diff --git a/src/trrun.f90 b/src/trrun.f90 index 1d0f3b04b..149d81cb7 100644 --- a/src/trrun.f90 +++ b/src/trrun.f90 @@ -4662,15 +4662,14 @@ subroutine tttdipole(track, ktrack, code) !---- Apply errors f_errors = zero n_ferr = node_fd_errors(f_errors) + ! tapering on the main field is applied consistently + ! with twiss, but needs to be revised if (k0.ne.0) then - f_errors(0) = f_errors(0) + k0*length - angle + k0 = k0 * (one + ktap) + f_errors(0)/length else - k0 = h + k0 = h * (one + ktap) + f_errors(0)/length endif - k0 = k0 * (one + ktap) ! tapering to main field only - - k0 = k0 + f_errors(0) / length ! dipole term k1 = k1 + f_errors(2) / length ! quad term if (k0.eq.zero .and. k1.eq.zero) then