xtrack 0.82.4__tar.gz → 0.83.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. {xtrack-0.82.4/xtrack.egg-info → xtrack-0.83.0}/PKG-INFO +1 -1
  2. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_elements_thick.py +47 -0
  3. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_madloader.py +67 -2
  4. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_radiation_equilibrium_emittances_thick.py +2 -2
  5. xtrack-0.83.0/tests/test_spin.py +564 -0
  6. xtrack-0.83.0/xtrack/_version.py +1 -0
  7. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/base_element.py +37 -6
  8. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/apertures.py +6 -6
  9. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitellipse.h +13 -10
  10. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +31 -26
  11. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +7 -4
  12. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitrect.h +12 -13
  13. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +18 -15
  14. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +15 -13
  15. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements.py +61 -94
  16. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/bend.h +4 -1
  17. xtrack-0.83.0/xtrack/beam_elements/elements_src/cavity.h +23 -0
  18. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/dipole_fringe.h +6 -12
  19. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/dipoleedge.h +14 -9
  20. xtrack-0.82.4/xtrack/beam_elements/elements_src/drift_elem.h → xtrack-0.83.0/xtrack/beam_elements/elements_src/drift.h +10 -7
  21. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice.h +7 -4
  22. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_bend.h +7 -4
  23. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +7 -4
  24. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +7 -4
  25. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +7 -4
  26. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +7 -4
  27. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/electroncooler.h +5 -7
  28. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/elens.h +6 -17
  29. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/exciter.h +8 -13
  30. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +6 -6
  31. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +64 -76
  32. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/magnet.h +8 -4
  33. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/magnet_drift.h +8 -4
  34. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/magnet_edge.h +4 -1
  35. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/magnet_kick.h +7 -3
  36. xtrack-0.83.0/xtrack/beam_elements/elements_src/marker.h +13 -0
  37. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/multipole.h +4 -1
  38. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/multipoleedge.h +7 -3
  39. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +4 -6
  40. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/octupole.h +4 -1
  41. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/quadrupole.h +4 -1
  42. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/rbend.h +4 -1
  43. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +7 -6
  44. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/rfmultipole.h +10 -9
  45. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +7 -7
  46. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/sextupole.h +5 -1
  47. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/simplethinbend.h +4 -3
  48. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +6 -3
  49. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/solenoid.h +36 -11
  50. xtrack-0.83.0/xtrack/beam_elements/elements_src/srotation.h +41 -0
  51. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_bend.h +5 -1
  52. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_drift.h +6 -4
  53. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +5 -1
  54. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +5 -1
  55. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +5 -1
  56. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +5 -1
  57. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +8 -4
  58. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_bend.h +5 -1
  59. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +11 -7
  60. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +11 -7
  61. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +5 -1
  62. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +7 -3
  63. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +7 -3
  64. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +5 -2
  65. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +7 -4
  66. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +7 -4
  67. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +5 -2
  68. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +11 -8
  69. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +11 -7
  70. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +5 -1
  71. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +7 -3
  72. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +7 -3
  73. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_bend.h +9 -9
  74. xtrack-0.83.0/xtrack/beam_elements/elements_src/track_cavity.h +66 -0
  75. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +8 -2
  76. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +8 -1
  77. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +4 -14
  78. xtrack-0.82.4/xtrack/beam_elements/elements_src/drift.h → xtrack-0.83.0/xtrack/beam_elements/elements_src/track_drift.h +6 -6
  79. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_magnet.h +25 -12
  80. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_magnet_drift.h +8 -15
  81. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_magnet_edge.h +29 -22
  82. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_magnet_kick.h +12 -9
  83. xtrack-0.83.0/xtrack/beam_elements/elements_src/track_magnet_radiation.h +226 -0
  84. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_mult_fringe.h +2 -8
  85. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_multipolar_components.h +7 -5
  86. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_multipole.h +5 -3
  87. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_quadrupole.h +18 -16
  88. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_solenoid.h +25 -59
  89. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_srotation.h +7 -1
  90. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +2 -6
  91. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +2 -7
  92. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_wedge.h +4 -4
  93. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_xrotation.h +4 -2
  94. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_yrotation.h +4 -2
  95. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/wedge.h +7 -4
  96. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/wire.h +6 -9
  97. xtrack-0.83.0/xtrack/beam_elements/elements_src/xrotation.h +42 -0
  98. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/xyshift.h +6 -6
  99. xtrack-0.83.0/xtrack/beam_elements/elements_src/yrotation.h +42 -0
  100. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/zetashift.h +6 -7
  101. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/exciter.py +1 -1
  102. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/magnets.py +6 -27
  103. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/slice_elements.py +30 -27
  104. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/slice_elements_thick.py +25 -27
  105. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/headers/checks.h +7 -4
  106. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/headers/synrad_spectrum.h +16 -10
  107. xtrack-0.83.0/xtrack/headers/track.h +112 -0
  108. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/line.py +133 -26
  109. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/linear_normal_form.py +52 -43
  110. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/mad_loader.py +40 -61
  111. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/match.py +4 -1
  112. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/beam_position_monitor.h +10 -16
  113. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/beam_profile_monitor.h +8 -13
  114. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/beam_size_monitor.h +7 -9
  115. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/last_turns_monitor.h +8 -8
  116. xtrack-0.83.0/xtrack/monitors/particles_monitor.h +79 -0
  117. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/particles/particles.py +13 -1
  118. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/particles/rng_src/base_rng.h +9 -4
  119. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/particles/rng_src/particles_rng.h +4 -2
  120. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/random/random_generators.py +5 -17
  121. xtrack-0.83.0/xtrack/random/random_src/exponential.h +44 -0
  122. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/random/random_src/exponential_integral_Ei.h +12 -10
  123. xtrack-0.83.0/xtrack/random/random_src/normal.h +48 -0
  124. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/random/random_src/rutherford.h +22 -17
  125. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/random/random_src/uniform.h +25 -16
  126. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/random/random_src/uniform_accurate.h +22 -14
  127. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/tracker.py +1 -0
  128. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/twiss.py +413 -14
  129. {xtrack-0.82.4 → xtrack-0.83.0/xtrack.egg-info}/PKG-INFO +1 -1
  130. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack.egg-info/SOURCES.txt +5 -1
  131. xtrack-0.82.4/xtrack/_version.py +0 -1
  132. xtrack-0.82.4/xtrack/beam_elements/elements_src/cavity.h +0 -52
  133. xtrack-0.82.4/xtrack/beam_elements/elements_src/srotation.h +0 -25
  134. xtrack-0.82.4/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -100
  135. xtrack-0.82.4/xtrack/beam_elements/elements_src/xrotation.h +0 -27
  136. xtrack-0.82.4/xtrack/beam_elements/elements_src/yrotation.h +0 -27
  137. xtrack-0.82.4/xtrack/monitors/particles_monitor.h +0 -78
  138. xtrack-0.82.4/xtrack/random/random_src/exponential.h +0 -36
  139. xtrack-0.82.4/xtrack/random/random_src/normal.h +0 -40
  140. {xtrack-0.82.4 → xtrack-0.83.0}/LICENSE +0 -0
  141. {xtrack-0.82.4 → xtrack-0.83.0}/MANIFEST.in +0 -0
  142. {xtrack-0.82.4 → xtrack-0.83.0}/README.md +0 -0
  143. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/__init__.py +0 -0
  144. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/base_classes.py +0 -0
  145. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/BB6D.py +0 -0
  146. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  147. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/__init__.py +0 -0
  148. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/beambeam.py +0 -0
  149. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/boost.py +0 -0
  150. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  151. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  152. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/qgauss.py +0 -0
  153. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/slicing.py +0 -0
  154. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/be_beamfields/spacecharge.py +0 -0
  155. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/elements.py +0 -0
  156. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/line.py +0 -0
  157. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/mathlibs.py +0 -0
  158. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/particles.py +0 -0
  159. {xtrack-0.82.4 → xtrack-0.83.0}/ducktrack/temp_pyparticles.py +0 -0
  160. {xtrack-0.82.4 → xtrack-0.83.0}/pyproject.toml +0 -0
  161. {xtrack-0.82.4 → xtrack-0.83.0}/setup.cfg +0 -0
  162. {xtrack-0.82.4 → xtrack-0.83.0}/setup.py +0 -0
  163. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_acceleration.py +0 -0
  164. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_amplitude_detuning.py +0 -0
  165. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_aperture_table.py +0 -0
  166. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  167. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_apertures.py +0 -0
  168. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_attr_replicas_and_slices.py +0 -0
  169. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_bucket_with_ref_energy_change.py +0 -0
  170. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_cavity_absolute_time.py +0 -0
  171. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_chromatic_functions_vs_madx.py +0 -0
  172. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_coasting.py +0 -0
  173. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_collective_tracker.py +0 -0
  174. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_collimation.py +0 -0
  175. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_electron_cooler.py +0 -0
  176. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_element_characterization_functions.py +0 -0
  177. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_element_internal_record.py +0 -0
  178. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_elements.py +0 -0
  179. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_elements_classflags.py +0 -0
  180. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_environment.py +0 -0
  181. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  182. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  183. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_footprint.py +0 -0
  184. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_freeze_longitudinal.py +0 -0
  185. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_full_rings.py +0 -0
  186. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_h6_sps_beamline.py +0 -0
  187. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_hvkick.py +0 -0
  188. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_ions.py +0 -0
  189. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_legacy_multiline_to_env.py +0 -0
  190. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_lhc_env.py +0 -0
  191. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_lhc_match_phase_15.py +0 -0
  192. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_line.py +0 -0
  193. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_lumi.py +0 -0
  194. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_mad_writer.py +0 -0
  195. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_madnginterface.py +0 -0
  196. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_magnet.py +0 -0
  197. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_match_and_track_from_element.py +0 -0
  198. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_match_coupling_knob.py +0 -0
  199. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_match_nested.py +0 -0
  200. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_match_optics_and_ip_knob.py +0 -0
  201. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
  202. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_match_orbit_bump.py +0 -0
  203. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_match_tune_chroma_cminus.py +0 -0
  204. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_monitor.py +0 -0
  205. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_multi_bunch_gauss.py +0 -0
  206. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_multiline.py +0 -0
  207. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_multisetter.py +0 -0
  208. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_multispecies.py +0 -0
  209. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_native_madloader.py +0 -0
  210. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_optimize_for_tracking.py +0 -0
  211. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_particles.py +0 -0
  212. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_particles_basics.py +0 -0
  213. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_particles_pdg.py +0 -0
  214. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
  215. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_pipeline.py +0 -0
  216. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_prebuild_kernels.py +0 -0
  217. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_ps_against_ptc.py +0 -0
  218. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_ps_multiturn_twiss.py +0 -0
  219. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_psb_chicane.py +0 -0
  220. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_pyht_interface.py +0 -0
  221. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_radial_steering.py +0 -0
  222. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_radiation.py +0 -0
  223. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_radiation_equilibrium_emittances.py +0 -0
  224. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_random_gen.py +0 -0
  225. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_random_gen_exp.py +0 -0
  226. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_random_gen_gauss.py +0 -0
  227. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_random_gen_ruth.py +0 -0
  228. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_rbend_rbarc.py +0 -0
  229. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_rf_track.py +0 -0
  230. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_rotation_signs.py +0 -0
  231. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_second_order_taylor_map.py +0 -0
  232. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_seeds.py +0 -0
  233. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_slice_and_insert_with_replicas.py +0 -0
  234. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_slice_elements.py +0 -0
  235. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_slicing.py +0 -0
  236. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  237. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_spacecharge_in_ring.py +0 -0
  238. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_sps_thick.py +0 -0
  239. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_survey.py +0 -0
  240. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_tapering.py +0 -0
  241. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_thick_lhc.py +0 -0
  242. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_tilt_shifts.py +0 -0
  243. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_tracker.py +0 -0
  244. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_trajectory_correcton.py +0 -0
  245. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_twiss.py +0 -0
  246. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_twiss_vs_madx_psb.py +0 -0
  247. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_vs_madx.py +0 -0
  248. {xtrack-0.82.4 → xtrack-0.83.0}/tests/test_xmask_orbit_correction.py +0 -0
  249. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/__init__.py +0 -0
  250. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/_temp/__init__.py +0 -0
  251. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  252. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  253. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  254. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/_temp/lhc_match/__init__.py +0 -0
  255. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  256. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  257. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  258. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/aperture_meas.py +0 -0
  259. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/__init__.py +0 -0
  260. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/beam_interaction.py +0 -0
  261. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/beam_elements/rft_element.py +0 -0
  262. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/environment.py +0 -0
  263. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/footprint.py +0 -0
  264. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/general.py +0 -0
  265. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/headers/atomicadd.h +0 -0
  266. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/headers/constants.h +0 -0
  267. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/headers/particle_states.h +0 -0
  268. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/internal_record.py +0 -0
  269. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/json.py +0 -0
  270. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/loss_location_refinement/__init__.py +0 -0
  271. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  272. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/lumi.py +0 -0
  273. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/mad_parser/__init__.py +0 -0
  274. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/mad_parser/loader.py +0 -0
  275. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/mad_parser/madx.lark +0 -0
  276. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/mad_parser/parse.py +0 -0
  277. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/mad_writer.py +0 -0
  278. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/madng_interface.py +0 -0
  279. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/__init__.py +0 -0
  280. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/beam_position_monitor.py +0 -0
  281. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/beam_profile_monitor.py +0 -0
  282. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/beam_size_monitor.py +0 -0
  283. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/last_turns_monitor.py +0 -0
  284. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/monitors/particles_monitor.py +0 -0
  285. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/multiline.py +0 -0
  286. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/multiline_legacy/__init__.py +0 -0
  287. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
  288. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/multiline_legacy/shared_knobs.py +0 -0
  289. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/multisetter/__init__.py +0 -0
  290. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/multisetter/multisetter.py +0 -0
  291. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/particles/__init__.py +0 -0
  292. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/particles/constants.py +0 -0
  293. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/particles/masses.py +0 -0
  294. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/particles/pdg.py +0 -0
  295. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/pipeline/__init__.py +0 -0
  296. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/pipeline/core.py +0 -0
  297. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/pipeline/manager.py +0 -0
  298. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/pipeline/multitracker.py +0 -0
  299. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/progress_indicator.py +0 -0
  300. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/random/__init__.py +0 -0
  301. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/slicing.py +0 -0
  302. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/survey.py +0 -0
  303. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/svgutils/__init__.py +0 -0
  304. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/svgutils/parser.py +0 -0
  305. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/svgutils/path.py +0 -0
  306. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/svgutils/svgutils.py +0 -0
  307. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/synctime.py +0 -0
  308. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/tapering.py +0 -0
  309. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/targets.py +0 -0
  310. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/tracker_data.py +0 -0
  311. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/tracker_src/tracker.h +0 -0
  312. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/trajectory_correction.py +0 -0
  313. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack/twissplot.py +0 -0
  314. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack.egg-info/dependency_links.txt +0 -0
  315. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack.egg-info/requires.txt +0 -0
  316. {xtrack-0.82.4 → xtrack-0.83.0}/xtrack.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.82.4
3
+ Version: 0.83.0
4
4
  Summary: Tracking library for particle accelerators
5
5
  Home-page: https://xsuite.readthedocs.io/
6
6
  Download-URL: https://pypi.python.org/pypi/xtrack
@@ -2150,3 +2150,50 @@ def test_octupole_num_kicks():
2150
2150
  xo.assert_allclose(tw_3slices.ptau[-1], tw_3kicks.ptau[-1], atol=1e-15, rtol=0)
2151
2151
  xo.assert_allclose(tw_3slices.betx[-1], tw_3kicks.betx[-1], atol=1e-10, rtol=0)
2152
2152
  xo.assert_allclose(tw_3slices.bety[-1], tw_3kicks.bety[-1], atol=1e-10, rtol=0)
2153
+
2154
+
2155
+ def test_configure_model():
2156
+ line = xt.Line(elements={
2157
+ 'b1': xt.Bend(k0=10, length=4, knl=[1, 2, 3]),
2158
+ 'r1': xt.RBend(k0=7, length=3, knl=[4, 5, 6]),
2159
+ 'q1': xt.Quadrupole(k1=20, length=4),
2160
+ 's1': xt.Sextupole(k2=50, length=8),
2161
+ 'o1': xt.Octupole(k3=100, length=9),
2162
+ })
2163
+
2164
+ line.configure_bend_model(core='drift-kick-drift-exact', edge='dipole-only', integrator='teapot', num_multipole_kicks=4)
2165
+ line.configure_quadrupole_model(model='drift-kick-drift-expanded', edge='full', integrator='uniform', num_multipole_kicks=5)
2166
+ line.configure_sextupole_model(model='drift-kick-drift-exact', edge='full', integrator='yoshida4', num_multipole_kicks=6)
2167
+ line.configure_octupole_model(model='mat-kick-mat', edge=None, integrator='uniform', num_multipole_kicks=7)
2168
+
2169
+ assert line['b1'].model == 'drift-kick-drift-exact'
2170
+ assert line['b1'].edge_entry_active == True
2171
+ assert line['b1'].edge_exit_active == True
2172
+ assert line['b1'].edge_entry_model == 'dipole-only'
2173
+ assert line['b1'].edge_exit_model == 'dipole-only'
2174
+ assert line['b1'].integrator == 'teapot'
2175
+ assert line['b1'].num_multipole_kicks == 4
2176
+
2177
+ assert line['r1'].model == 'drift-kick-drift-exact'
2178
+ assert line['r1'].edge_entry_model == 'dipole-only'
2179
+ assert line['r1'].edge_exit_model == 'dipole-only'
2180
+ assert line['r1'].integrator == 'teapot'
2181
+ assert line['r1'].num_multipole_kicks == 4
2182
+
2183
+ assert line['q1'].model == 'drift-kick-drift-expanded'
2184
+ assert line['q1'].edge_entry_active == True
2185
+ assert line['q1'].edge_exit_active == True
2186
+ assert line['q1'].integrator == 'uniform'
2187
+ assert line['q1'].num_multipole_kicks == 5
2188
+
2189
+ assert line['s1'].model == 'drift-kick-drift-exact'
2190
+ assert line['s1'].edge_entry_active == True
2191
+ assert line['s1'].edge_exit_active == True
2192
+ assert line['s1'].integrator == 'yoshida4'
2193
+ assert line['s1'].num_multipole_kicks == 6
2194
+
2195
+ assert line['o1'].model == 'mat-kick-mat'
2196
+ assert line['o1'].edge_entry_active == False
2197
+ assert line['o1'].edge_exit_active == False
2198
+ assert line['o1'].integrator == 'uniform'
2199
+ assert line['o1'].num_multipole_kicks == 7
@@ -21,19 +21,21 @@ def test_non_zero_index():
21
21
  assert xtrack.mad_loader.non_zero_len(lst) == 3
22
22
 
23
23
 
24
- def test_add_lists():
24
+ def test_add_lists_same_lengths():
25
25
  a = [1, 2, 3, 1, 1, 1]
26
26
  b = [1, 1, 1, 4, 5, 6]
27
27
  c = xtrack.mad_loader.add_lists(a, b, 8)
28
28
  assert c == [2, 3, 4, 5, 6, 7, 0, 0]
29
29
 
30
30
 
31
- def test_add_lists():
31
+ def test_add_lists_different_lengths_pick_longer():
32
32
  a = [1, 2, 3, 1, 1, 1]
33
33
  b = [1, 1, 1, 4, 5, 6, 7, 8]
34
34
  c = xtrack.mad_loader.add_lists(a, b, 8)
35
35
  assert c == [2, 3, 4, 5, 6, 7, 7, 8]
36
36
 
37
+
38
+ def test_add_lists_manually_extend():
37
39
  a = [1, 2, 3, 1, 1, 1]
38
40
  b = [1, 1, 1, 4, 5, 6, 7, 8]
39
41
  c = xtrack.mad_loader.add_lists(a, b, 10)
@@ -336,6 +338,69 @@ def test_srotation():
336
338
  assert line[1].angle == line.vars['angle']._value * 180 / np.pi
337
339
 
338
340
 
341
+ def test_thick_kicker_option():
342
+ mad = Madx(stdout=False)
343
+
344
+ mad.input("""
345
+ vk: vkicker, l=2, kick=2;
346
+ hk: hkicker, l=2, kick=3;
347
+ ki: kicker, l=2, vkick=4, hkick=5;
348
+ vk_thin: vkicker, lrad=2, kick=6;
349
+ hk_thin: hkicker, lrad=2, kick=7;
350
+ ki_thin: kicker, lrad=2, vkick=8, hkick=9;
351
+
352
+ ss: sequence, l = 6;
353
+ vk: vk, at = 1;
354
+ hk: hk, at = 3;
355
+ ki: ki, at = 5;
356
+ vk_thin: vk_thin, at = 6;
357
+ hk_thin: hk_thin, at = 6;
358
+ ki_thin: ki_thin, at = 6;
359
+ endsequence;
360
+
361
+ beam; use, sequence=ss;
362
+ """)
363
+ line = MadLoader(mad.sequence.ss, enable_expressions=True, allow_thick=True, enable_thick_kickers=True).make_line()
364
+
365
+ _, vk, hk, ki, vk_thin, hk_thin, ki_thin, _ = line.elements
366
+
367
+ assert isinstance(vk, xt.Magnet)
368
+ assert isinstance(hk, xt.Magnet)
369
+ assert isinstance(ki, xt.Magnet)
370
+ assert isinstance(vk_thin, xt.Multipole)
371
+ assert isinstance(hk_thin, xt.Multipole)
372
+ assert isinstance(ki_thin, xt.Multipole)
373
+
374
+ def assert_integrated_strength_eq(value, expected):
375
+ padded_expected = np.zeros_like(value)
376
+ padded_expected[:len(expected)] = expected
377
+ assert np.all(value == padded_expected)
378
+
379
+ assert_integrated_strength_eq(vk.knl, [0])
380
+ assert_integrated_strength_eq(vk.ksl, [2])
381
+ assert vk.length == 2
382
+
383
+ assert_integrated_strength_eq(hk.knl, [-3])
384
+ assert_integrated_strength_eq(hk.ksl, [0])
385
+ assert hk.length == 2
386
+
387
+ assert_integrated_strength_eq(ki.knl, [-5])
388
+ assert_integrated_strength_eq(ki.ksl, [4])
389
+ assert ki.length == 2
390
+
391
+ assert_integrated_strength_eq(vk_thin.knl, [0])
392
+ assert_integrated_strength_eq(vk_thin.ksl, [6])
393
+ assert vk_thin.length == 2
394
+
395
+ assert_integrated_strength_eq(hk_thin.knl, [-7])
396
+ assert_integrated_strength_eq(hk_thin.ksl, [0])
397
+ assert hk_thin.length == 2
398
+
399
+ assert_integrated_strength_eq(ki_thin.knl, [-9])
400
+ assert_integrated_strength_eq(ki_thin.ksl, [8])
401
+ assert ki_thin.length == 2
402
+
403
+
339
404
  def test_xrotation():
340
405
  mad = Madx(stdout=False)
341
406
 
@@ -140,7 +140,7 @@ def test_eq_emitt(conf):
140
140
  checked = True
141
141
  elif not tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
142
142
  xo.assert_allclose(ex, 7.0714e-10, atol=0, rtol=1e-4)
143
- xo.assert_allclose(ey, 5.6804e-13, atol=0, rtol=4e-3)
143
+ xo.assert_allclose(ey, 5.6986e-13, atol=0, rtol=4e-3)
144
144
  xo.assert_allclose(ez, 3.8595e-6, atol=0, rtol=1e-4)
145
145
  checked = True
146
146
  elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
@@ -154,7 +154,7 @@ def test_eq_emitt(conf):
154
154
  xo.assert_allclose(ez, 3.5828e-6, atol=0, rtol=1e-4)
155
155
  checked = True
156
156
  elif tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
157
- xo.assert_allclose(ex, 2.2261e-12, atol=0, rtol=5e-3)
157
+ xo.assert_allclose(ex, 2.2393e-12, atol=0, rtol=7e-3)
158
158
  xo.assert_allclose(ey, 7.1345e-10, atol=0, rtol=1e-4)
159
159
  xo.assert_allclose(ez, 3.5828e-6, atol=0, rtol=1e-4)
160
160
  checked = True