xtrack 0.57.3__tar.gz → 0.59.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 (246) hide show
  1. {xtrack-0.57.3 → xtrack-0.59.0}/PKG-INFO +1 -1
  2. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_attr_replicas_and_slices.py +59 -8
  3. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_elements_thick.py +5 -5
  4. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_prebuild_kernels.py +17 -16
  5. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_slice_elements.py +616 -27
  6. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_slicing.py +4 -4
  7. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_tilt_shifts.py +5 -0
  8. xtrack-0.59.0/xtrack/_version.py +1 -0
  9. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/base_element.py +49 -9
  10. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements.py +170 -23
  11. xtrack-0.59.0/xtrack/beam_elements/elements_src/octupole.h +56 -0
  12. xtrack-0.59.0/xtrack/beam_elements/elements_src/quadrupole.h +40 -0
  13. xtrack-0.59.0/xtrack/beam_elements/elements_src/sextupole.h +57 -0
  14. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +6 -1
  15. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +17 -1
  16. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +13 -9
  17. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_bend.h +1 -1
  18. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +6 -1
  19. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +6 -1
  20. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +6 -1
  21. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_bend.h +0 -69
  22. xtrack-0.59.0/xtrack/beam_elements/elements_src/track_multipolar_components.h +78 -0
  23. xtrack-0.59.0/xtrack/beam_elements/elements_src/track_quadrupole.h +78 -0
  24. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/slice_elements.py +10 -6
  25. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/slice_elements_thick.py +1 -0
  26. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/line.py +9 -2
  27. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/mad_writer.py +2 -0
  28. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/__init__.py +2 -0
  29. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multisetter/multisetter.py +23 -0
  30. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/particles.py +10 -4
  31. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/__init__.py +2 -0
  32. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_generators.py +1 -1
  33. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/tracker.py +18 -6
  34. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack.egg-info/PKG-INFO +1 -1
  35. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack.egg-info/SOURCES.txt +1 -3
  36. xtrack-0.57.3/xtrack/_version.py +0 -1
  37. xtrack-0.57.3/xtrack/beam_elements/elements_src/octupole.h +0 -66
  38. xtrack-0.57.3/xtrack/beam_elements/elements_src/quadrupole.h +0 -26
  39. xtrack-0.57.3/xtrack/beam_elements/elements_src/sextupole.h +0 -67
  40. xtrack-0.57.3/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -44
  41. xtrack-0.57.3/xtrack/prebuild_kernels.py +0 -352
  42. xtrack-0.57.3/xtrack/prebuilt_kernels/__init__.py +0 -0
  43. xtrack-0.57.3/xtrack/prebuilt_kernels/kernel_definitions.py +0 -238
  44. {xtrack-0.57.3 → xtrack-0.59.0}/LICENSE +0 -0
  45. {xtrack-0.57.3 → xtrack-0.59.0}/MANIFEST.in +0 -0
  46. {xtrack-0.57.3 → xtrack-0.59.0}/README.md +0 -0
  47. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/__init__.py +0 -0
  48. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/base_classes.py +0 -0
  49. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/BB6D.py +0 -0
  50. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  51. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/__init__.py +0 -0
  52. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/beambeam.py +0 -0
  53. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/boost.py +0 -0
  54. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  55. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  56. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/qgauss.py +0 -0
  57. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/slicing.py +0 -0
  58. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/spacecharge.py +0 -0
  59. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/elements.py +0 -0
  60. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/line.py +0 -0
  61. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/mathlibs.py +0 -0
  62. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/particles.py +0 -0
  63. {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/temp_pyparticles.py +0 -0
  64. {xtrack-0.57.3 → xtrack-0.59.0}/pyproject.toml +0 -0
  65. {xtrack-0.57.3 → xtrack-0.59.0}/setup.cfg +0 -0
  66. {xtrack-0.57.3 → xtrack-0.59.0}/setup.py +0 -0
  67. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_acceleration.py +0 -0
  68. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_amplitude_detuning.py +0 -0
  69. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  70. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_apertures.py +0 -0
  71. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_cavity_absolute_time.py +0 -0
  72. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_chromatic_functions_vs_madx.py +0 -0
  73. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_coasting.py +0 -0
  74. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_collective_tracker.py +0 -0
  75. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_collimation.py +0 -0
  76. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_element_characterization_functions.py +0 -0
  77. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_element_internal_record.py +0 -0
  78. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_elements.py +0 -0
  79. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_elements_classflags.py +0 -0
  80. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  81. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_footprint.py +0 -0
  82. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_freeze_longitudinal.py +0 -0
  83. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_full_rings.py +0 -0
  84. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_ions.py +0 -0
  85. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_lhc_match_phase_15.py +0 -0
  86. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_line.py +0 -0
  87. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_lumi.py +0 -0
  88. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_mad_writer.py +0 -0
  89. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_madloader.py +0 -0
  90. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_and_track_from_element.py +0 -0
  91. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_coupling_knob.py +0 -0
  92. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_nested.py +0 -0
  93. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_optics_and_ip_knob.py +0 -0
  94. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_orbit_bump.py +0 -0
  95. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_tune_chroma_cminus.py +0 -0
  96. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_monitor.py +0 -0
  97. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_multiline.py +0 -0
  98. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_multisetter.py +0 -0
  99. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_multispecies.py +0 -0
  100. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_orbit_correction.py +0 -0
  101. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_particles_api.py +0 -0
  102. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_pipeline.py +0 -0
  103. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_ps_against_ptc.py +0 -0
  104. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_ps_multiturn_twiss.py +0 -0
  105. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_psb_chicane.py +0 -0
  106. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_pyht_interface.py +0 -0
  107. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_radial_steering.py +0 -0
  108. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_radiation.py +0 -0
  109. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_radiation_equilibrium_emittances.py +0 -0
  110. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_random_gen.py +0 -0
  111. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_random_gen_exp.py +0 -0
  112. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_random_gen_gauss.py +0 -0
  113. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_random_gen_ruth.py +0 -0
  114. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_rf_track.py +0 -0
  115. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_second_order_taylor_map.py +0 -0
  116. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_slice_and_insert_with_replicas.py +0 -0
  117. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  118. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_spacecharge_in_ring.py +0 -0
  119. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_sps_thick.py +0 -0
  120. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_survey.py +0 -0
  121. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_tapering.py +0 -0
  122. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_thick_lhc.py +0 -0
  123. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_tracker.py +0 -0
  124. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_twiss.py +0 -0
  125. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_twiss_vs_madx_psb.py +0 -0
  126. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_var_cache.py +0 -0
  127. {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_vs_madx.py +0 -0
  128. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/__init__.py +0 -0
  129. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/__init__.py +0 -0
  130. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  131. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  132. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  133. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/lhc_match/__init__.py +0 -0
  134. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  135. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  136. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  137. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/__init__.py +0 -0
  138. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures.py +0 -0
  139. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  140. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  141. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  142. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  143. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  144. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  145. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/beam_interaction.py +0 -0
  146. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/bend.h +0 -0
  147. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  148. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  149. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift.h +0 -0
  150. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
  151. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  152. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
  153. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
  154. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
  155. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
  156. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/elens.h +0 -0
  157. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  158. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  159. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/fringe.h +0 -0
  160. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/fringe_track.h +0 -0
  161. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  162. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/multipole.h +0 -0
  163. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  164. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  165. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  166. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  167. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  168. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  169. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
  170. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  171. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
  172. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
  173. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
  174. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
  175. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
  176. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  177. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  178. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
  179. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
  180. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  181. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  182. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  183. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  184. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  185. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/wedge_track.h +0 -0
  186. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/wire.h +0 -0
  187. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  188. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  189. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  190. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  191. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/exciter.py +0 -0
  192. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/rft_element.py +0 -0
  193. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/footprint.py +0 -0
  194. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/general.py +0 -0
  195. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/atomicadd.h +0 -0
  196. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/checks.h +0 -0
  197. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/constants.h +0 -0
  198. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/particle_states.h +0 -0
  199. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/synrad_spectrum.h +0 -0
  200. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/internal_record.py +0 -0
  201. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/linear_normal_form.py +0 -0
  202. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/loss_location_refinement/__init__.py +0 -0
  203. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  204. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/lumi.py +0 -0
  205. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/mad_loader.py +0 -0
  206. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/match.py +0 -0
  207. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_position_monitor.h +0 -0
  208. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_position_monitor.py +0 -0
  209. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_profile_monitor.h +0 -0
  210. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_profile_monitor.py +0 -0
  211. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_size_monitor.h +0 -0
  212. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_size_monitor.py +0 -0
  213. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/last_turns_monitor.h +0 -0
  214. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/last_turns_monitor.py +0 -0
  215. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/particles_monitor.h +0 -0
  216. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/particles_monitor.py +0 -0
  217. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multiline/__init__.py +0 -0
  218. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multiline/multiline.py +0 -0
  219. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multiline/shared_knobs.py +0 -0
  220. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multisetter/__init__.py +0 -0
  221. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/__init__.py +0 -0
  222. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/constants.py +0 -0
  223. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/rng_src/base_rng.h +0 -0
  224. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/rng_src/particles_rng.h +0 -0
  225. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/pipeline/__init__.py +0 -0
  226. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/pipeline/core.py +0 -0
  227. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/pipeline/manager.py +0 -0
  228. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/pipeline/multitracker.py +0 -0
  229. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/progress_indicator.py +0 -0
  230. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/exponential.h +0 -0
  231. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  232. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/normal.h +0 -0
  233. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/rutherford.h +0 -0
  234. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/uniform.h +0 -0
  235. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/slicing.py +0 -0
  236. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/survey.py +0 -0
  237. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/synctime.py +0 -0
  238. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/tapering.py +0 -0
  239. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/targets.py +0 -0
  240. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/tracker_data.py +0 -0
  241. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/tracker_src/tracker.h +0 -0
  242. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/twiss.py +0 -0
  243. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/twissplot.py +0 -0
  244. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack.egg-info/dependency_links.txt +0 -0
  245. {xtrack-0.57.3 → xtrack-0.59.0}/xtrack.egg-info/requires.txt +0 -0
  246. {xtrack-0.57.3 → xtrack-0.59.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.57.3
3
+ Version: 0.59.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
@@ -6,18 +6,20 @@ import pytest
6
6
  assert_allclose = np.testing.assert_allclose
7
7
 
8
8
  def _make_line_no_expressions():
9
- bend = xt.Bend(k0=0.4, h=0.3, length=1, shift_x=1e-3, shift_y=2e-3, rot_s_rad=0.2,
10
- k1=0.1,
11
- knl=[0.7, 0.8, 0.9, 1.0], ksl=[0.1, 0.2, 0.3, 0.4])
9
+ bend = xt.Bend(
10
+ k0=0.4, h=0.3, length=1,
11
+ shift_x=1e-3, shift_y=2e-3, shift_s=2e-3, rot_s_rad=0.2,
12
+ k1=0.1,
13
+ knl=[0.7, 0.8, 0.9, 1.0], ksl=[0.1, 0.2, 0.3, 0.4])
12
14
  quad = xt.Quadrupole(k1=0.1, k1s=0.2,
13
- length=0.5, shift_x=2e-3, shift_y=1e-3, rot_s_rad=0.1)
15
+ length=0.5, shift_x=2e-3, shift_y=1e-3, shift_s=-1e-3, rot_s_rad=0.1)
14
16
  sext = xt.Sextupole(k2=0.1, k2s=0.2,
15
- length=0.3, shift_x=3e-3, shift_y=4e-3, rot_s_rad=0.3)
17
+ length=0.3, shift_x=3e-3, shift_y=4e-3, shift_s=-2e-3, rot_s_rad=0.3)
16
18
  octu = xt.Octupole(k3=0.1, k3s=0.2,
17
- length=0.4, shift_x=5e-3, shift_y=6e-3, rot_s_rad=0.4)
19
+ length=0.4, shift_x=5e-3, shift_y=6e-3, shift_s=-1e-3, rot_s_rad=0.4)
18
20
  mult = xt.Multipole(knl=[0.7, 0.8, 0.9, 1.0], ksl=[0.1, 0.2, 0.3, 0.4],
19
- length=0.4, shift_x=5e-3, shift_y=6e-3, rot_s_rad=0.7,
20
- hxl=0.1)
21
+ length=0.4, shift_x=5e-3, shift_y=6e-3, shift_s=-1e-3, rot_s_rad=0.7,
22
+ hxl=0.1)
21
23
  drift = xt.Drift(length=5.0)
22
24
 
23
25
  line = xt.Line(elements=[bend, quad, sext, octu, mult, drift, xt.Replica(parent_name='e0')])
@@ -39,6 +41,7 @@ def _make_line_with_expressions():
39
41
  line.vars['length_bend'] = 999.
40
42
  line.vars['shift_x_bend'] = 999.
41
43
  line.vars['shift_y_bend'] = 999.
44
+ line.vars['shift_s_bend'] = 999.
42
45
  line.vars['rot_s_rad_bend'] = 999.
43
46
  line.vars['k1_bend'] = 999.
44
47
  line.vars['knl_bend_0'] = 999.
@@ -55,6 +58,7 @@ def _make_line_with_expressions():
55
58
  line.vars['length_quad'] = 999.
56
59
  line.vars['shift_x_quad'] = 999.
57
60
  line.vars['shift_y_quad'] = 999.
61
+ line.vars['shift_s_quad'] = 999.
58
62
  line.vars['rot_s_rad_quad'] = 999.
59
63
 
60
64
  line.vars['k2_sext'] = 999.
@@ -62,6 +66,7 @@ def _make_line_with_expressions():
62
66
  line.vars['length_sext'] = 999.
63
67
  line.vars['shift_x_sext'] = 999.
64
68
  line.vars['shift_y_sext'] = 999.
69
+ line.vars['shift_s_sext'] = 999.
65
70
  line.vars['rot_s_rad_sext'] = 999.
66
71
 
67
72
  line.vars['k3_octu'] = 999.
@@ -69,6 +74,7 @@ def _make_line_with_expressions():
69
74
  line.vars['length_octu'] = 999.
70
75
  line.vars['shift_x_octu'] = 999.
71
76
  line.vars['shift_y_octu'] = 999.
77
+ line.vars['shift_s_octu'] = 999.
72
78
  line.vars['rot_s_rad_octu'] = 999.
73
79
 
74
80
  line.vars['knl_mult_0'] = 999.
@@ -82,6 +88,7 @@ def _make_line_with_expressions():
82
88
  line.vars['length_mult'] = 999.
83
89
  line.vars['shift_x_mult'] = 999.
84
90
  line.vars['shift_y_mult'] = 999.
91
+ line.vars['shift_s_mult'] = 999.
85
92
  line.vars['rot_s_rad_mult'] = 999.
86
93
  line.vars['hxl_mult'] = 999.
87
94
 
@@ -92,6 +99,7 @@ def _make_line_with_expressions():
92
99
  line.element_refs['e0'].length = line.vars['length_bend']
93
100
  line.element_refs['e0'].shift_x = line.vars['shift_x_bend']
94
101
  line.element_refs['e0'].shift_y = line.vars['shift_y_bend']
102
+ line.element_refs['e0'].shift_s = line.vars['shift_s_bend']
95
103
  line.element_refs['e0'].rot_s_rad = line.vars['rot_s_rad_bend']
96
104
  line.element_refs['e0'].k1 = line.vars['k1_bend']
97
105
  line.element_refs['e0'].knl[0] = line.vars['knl_bend_0']
@@ -108,6 +116,7 @@ def _make_line_with_expressions():
108
116
  line.element_refs['e1'].length = line.vars['length_quad']
109
117
  line.element_refs['e1'].shift_x = line.vars['shift_x_quad']
110
118
  line.element_refs['e1'].shift_y = line.vars['shift_y_quad']
119
+ line.element_refs['e1'].shift_s = line.vars['shift_s_quad']
111
120
  line.element_refs['e1'].rot_s_rad = line.vars['rot_s_rad_quad']
112
121
 
113
122
  line.element_refs['e2'].k2 = line.vars['k2_sext']
@@ -115,6 +124,7 @@ def _make_line_with_expressions():
115
124
  line.element_refs['e2'].length = line.vars['length_sext']
116
125
  line.element_refs['e2'].shift_x = line.vars['shift_x_sext']
117
126
  line.element_refs['e2'].shift_y = line.vars['shift_y_sext']
127
+ line.element_refs['e2'].shift_s = line.vars['shift_s_sext']
118
128
  line.element_refs['e2'].rot_s_rad = line.vars['rot_s_rad_sext']
119
129
 
120
130
  line.element_refs['e3'].k3 = line.vars['k3_octu']
@@ -122,6 +132,7 @@ def _make_line_with_expressions():
122
132
  line.element_refs['e3'].length = line.vars['length_octu']
123
133
  line.element_refs['e3'].shift_x = line.vars['shift_x_octu']
124
134
  line.element_refs['e3'].shift_y = line.vars['shift_y_octu']
135
+ line.element_refs['e3'].shift_s = line.vars['shift_s_octu']
125
136
  line.element_refs['e3'].rot_s_rad = line.vars['rot_s_rad_octu']
126
137
 
127
138
  line.element_refs['e4'].knl[0] = line.vars['knl_mult_0']
@@ -135,6 +146,7 @@ def _make_line_with_expressions():
135
146
  line.element_refs['e4'].length = line.vars['length_mult']
136
147
  line.element_refs['e4'].shift_x = line.vars['shift_x_mult']
137
148
  line.element_refs['e4'].shift_y = line.vars['shift_y_mult']
149
+ line.element_refs['e4'].shift_s = line.vars['shift_s_mult']
138
150
  line.element_refs['e4'].rot_s_rad = line.vars['rot_s_rad_mult']
139
151
  line.element_refs['e4'].hxl = line.vars['hxl_mult']
140
152
 
@@ -148,6 +160,7 @@ def _set_vars(line):
148
160
  line.vars['length_bend'] = 1
149
161
  line.vars['shift_x_bend'] = 1e-3
150
162
  line.vars['shift_y_bend'] = 2e-3
163
+ line.vars['shift_s_bend'] = 2e-3
151
164
  line.vars['rot_s_rad_bend'] = 0.2
152
165
  line.vars['k1_bend'] = 0.1
153
166
  line.vars['knl_bend_0'] = 0.7
@@ -164,6 +177,7 @@ def _set_vars(line):
164
177
  line.vars['length_quad'] = 0.5
165
178
  line.vars['shift_x_quad'] = 2e-3
166
179
  line.vars['shift_y_quad'] = 1e-3
180
+ line.vars['shift_s_quad'] = -1e-3
167
181
  line.vars['rot_s_rad_quad'] = 0.1
168
182
 
169
183
  line.vars['k2_sext'] = 0.1
@@ -171,6 +185,7 @@ def _set_vars(line):
171
185
  line.vars['length_sext'] = 0.3
172
186
  line.vars['shift_x_sext'] = 3e-3
173
187
  line.vars['shift_y_sext'] = 4e-3
188
+ line.vars['shift_s_sext'] = -2e-3
174
189
  line.vars['rot_s_rad_sext'] = 0.3
175
190
 
176
191
  line.vars['k3_octu'] = 0.1
@@ -178,6 +193,7 @@ def _set_vars(line):
178
193
  line.vars['length_octu'] = 0.4
179
194
  line.vars['shift_x_octu'] = 5e-3
180
195
  line.vars['shift_y_octu'] = 6e-3
196
+ line.vars['shift_s_octu'] = -1e-3
181
197
  line.vars['rot_s_rad_octu'] = 0.4
182
198
 
183
199
  line.vars['knl_mult_0'] = 0.7
@@ -191,6 +207,7 @@ def _set_vars(line):
191
207
  line.vars['length_mult'] = 0.4
192
208
  line.vars['shift_x_mult'] = 5e-3
193
209
  line.vars['shift_y_mult'] = 6e-3
210
+ line.vars['shift_s_mult'] = -1e-3
194
211
  line.vars['rot_s_rad_mult'] = 0.7
195
212
  line.vars['hxl_mult'] = 0.1
196
213
 
@@ -239,6 +256,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
239
256
  assert_allclose(tt['rot_s_rad', 'e0'], 0.2, rtol=0, atol=1e-14)
240
257
  assert_allclose(tt['shift_x', 'e0'], 1e-3, rtol=0, atol=1e-14)
241
258
  assert_allclose(tt['shift_y', 'e0'], 2e-3, rtol=0, atol=1e-14)
259
+ assert_allclose(tt['shift_s', 'e0'], 2e-3, rtol=0, atol=1e-14)
242
260
  assert_allclose(tt['k0l', 'e0'], 0.4 * 1 + 0.7, rtol=0, atol=1e-14)
243
261
  assert_allclose(tt['k1l', 'e0'], 0.1 * 1 + 0.8, rtol=0, atol=1e-14)
244
262
  assert_allclose(tt['k2l', 'e0'], 0.9, rtol=0, atol=1e-14)
@@ -259,6 +277,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
259
277
  assert_allclose(tt['rot_s_rad', 'e1'], 0.1, rtol=0, atol=1e-14)
260
278
  assert_allclose(tt['shift_x', 'e1'], 2e-3, rtol=0, atol=1e-14)
261
279
  assert_allclose(tt['shift_y', 'e1'], 1e-3, rtol=0, atol=1e-14)
280
+ assert_allclose(tt['shift_s', 'e1'], -1e-3, rtol=0, atol=1e-14)
262
281
  assert_allclose(tt['k0l', 'e1'], 0.0, rtol=0, atol=1e-14)
263
282
  assert_allclose(tt['k1l', 'e1'], 0.1 * 0.5, rtol=0, atol=1e-14)
264
283
  assert_allclose(tt['k2l', 'e1'], 0.0, rtol=0, atol=1e-14)
@@ -279,6 +298,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
279
298
  assert_allclose(tt['rot_s_rad', 'e2'], 0.3, rtol=0, atol=1e-14)
280
299
  assert_allclose(tt['shift_x', 'e2'], 3e-3, rtol=0, atol=1e-14)
281
300
  assert_allclose(tt['shift_y', 'e2'], 4e-3, rtol=0, atol=1e-14)
301
+ assert_allclose(tt['shift_s', 'e2'], -2e-3, rtol=0, atol=1e-14)
282
302
  assert_allclose(tt['k0l', 'e2'], 0.0, rtol=0, atol=1e-14)
283
303
  assert_allclose(tt['k1l', 'e2'], 0.0, rtol=0, atol=1e-14)
284
304
  assert_allclose(tt['k2l', 'e2'], 0.1 * 0.3, rtol=0, atol=1e-14)
@@ -299,6 +319,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
299
319
  assert_allclose(tt['rot_s_rad', 'e3'], 0.4, rtol=0, atol=1e-14)
300
320
  assert_allclose(tt['shift_x', 'e3'], 5e-3, rtol=0, atol=1e-14)
301
321
  assert_allclose(tt['shift_y', 'e3'], 6e-3, rtol=0, atol=1e-14)
322
+ assert_allclose(tt['shift_s', 'e3'], -1e-3, rtol=0, atol=1e-14)
302
323
  assert_allclose(tt['k0l', 'e3'], 0.0, rtol=0, atol=1e-14)
303
324
  assert_allclose(tt['k1l', 'e3'], 0.0, rtol=0, atol=1e-14)
304
325
  assert_allclose(tt['k2l', 'e3'], 0, rtol=0, atol=1e-14)
@@ -319,6 +340,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
319
340
  assert_allclose(tt['rot_s_rad', 'e4'], 0.7, rtol=0, atol=1e-14)
320
341
  assert_allclose(tt['shift_x', 'e4'], 5e-3, rtol=0, atol=1e-14)
321
342
  assert_allclose(tt['shift_y', 'e4'], 6e-3, rtol=0, atol=1e-14)
343
+ assert_allclose(tt['shift_s', 'e4'], -1e-3, rtol=0, atol=1e-14)
322
344
  assert_allclose(tt['k0l', 'e4'], 0.7, rtol=0, atol=1e-14)
323
345
  assert_allclose(tt['k1l', 'e4'], 0.8, rtol=0, atol=1e-14)
324
346
  assert_allclose(tt['k2l', 'e4'], 0.9, rtol=0, atol=1e-14)
@@ -339,6 +361,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
339
361
  assert_allclose(tt['rot_s_rad', 'e5'], 0.0, rtol=0, atol=1e-14)
340
362
  assert_allclose(tt['shift_x', 'e5'], 0.0, rtol=0, atol=1e-14)
341
363
  assert_allclose(tt['shift_y', 'e5'], 0.0, rtol=0, atol=1e-14)
364
+ assert_allclose(tt['shift_s', 'e5'], 0.0, rtol=0, atol=1e-14)
342
365
  assert_allclose(tt['k0l', 'e5'], 0.0, rtol=0, atol=1e-14)
343
366
  assert_allclose(tt['k1l', 'e5'], 0.0, rtol=0, atol=1e-14)
344
367
  assert_allclose(tt['k2l', 'e5'], 0.0, rtol=0, atol=1e-14)
@@ -358,6 +381,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
358
381
  assert_allclose(tt['rot_s_rad', 'e6'], 0.2, rtol=0, atol=1e-14)
359
382
  assert_allclose(tt['shift_x', 'e6'], 1e-3, rtol=0, atol=1e-14)
360
383
  assert_allclose(tt['shift_y', 'e6'], 2e-3, rtol=0, atol=1e-14)
384
+ assert_allclose(tt['shift_s', 'e6'], 2e-3, rtol=0, atol=1e-14)
361
385
  assert_allclose(tt['k0l', 'e6'], 0.4 * 1 + 0.7, rtol=0, atol=1e-14)
362
386
  assert_allclose(tt['k1l', 'e6'], 0.1 * 1 + 0.8, rtol=0, atol=1e-14)
363
387
  assert_allclose(tt['k2l', 'e6'], 0.9, rtol=0, atol=1e-14)
@@ -413,6 +437,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
413
437
  assert_allclose(tt['rot_s_rad', 'e0..1'], 0.2, rtol=0, atol=1e-14)
414
438
  assert_allclose(tt['shift_x', 'e0..1'], 1e-3, rtol=0, atol=1e-14)
415
439
  assert_allclose(tt['shift_y', 'e0..1'], 2e-3, rtol=0, atol=1e-14)
440
+ assert_allclose(tt['shift_s', 'e0..1'], 2e-3, rtol=0, atol=1e-14)
416
441
  assert_allclose(tt['k0l', 'e0..1'], 0.5 * (0.4 * 1 + 0.7), rtol=0, atol=1e-14)
417
442
  assert_allclose(tt['k1l', 'e0..1'], 0.5 * (0.1 * 1 + 0.8), rtol=0, atol=1e-14)
418
443
  assert_allclose(tt['k2l', 'e0..1'], 0.5 * .9, rtol=0, atol=1e-14)
@@ -433,6 +458,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
433
458
  assert_allclose(tt['rot_s_rad', 'e0..exit_map'], 0.2, rtol=0, atol=1e-14)
434
459
  assert_allclose(tt['shift_x', 'e0..exit_map'], 1e-3, rtol=0, atol=1e-14)
435
460
  assert_allclose(tt['shift_y', 'e0..exit_map'], 2e-3, rtol=0, atol=1e-14)
461
+ assert_allclose(tt['shift_s', 'e0..exit_map'], 2e-3, rtol=0, atol=1e-14)
436
462
  assert_allclose(tt['k0l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
437
463
  assert_allclose(tt['k1l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
438
464
  assert_allclose(tt['k2l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
@@ -453,6 +479,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
453
479
  assert_allclose(tt['rot_s_rad', 'e0..entry_map'], 0.2, rtol=0, atol=1e-14)
454
480
  assert_allclose(tt['shift_x', 'e0..entry_map'], 1e-3, rtol=0, atol=1e-14)
455
481
  assert_allclose(tt['shift_y', 'e0..entry_map'], 2e-3, rtol=0, atol=1e-14)
482
+ assert_allclose(tt['shift_s', 'e0..entry_map'], 2e-3, rtol=0, atol=1e-14)
456
483
  assert_allclose(tt['k0l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
457
484
  assert_allclose(tt['k1l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
458
485
  assert_allclose(tt['k2l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
@@ -473,6 +500,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
473
500
  assert_allclose(tt['rot_s_rad', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
474
501
  assert_allclose(tt['shift_x', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
475
502
  assert_allclose(tt['shift_y', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
503
+ assert_allclose(tt['shift_s', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
476
504
  assert_allclose(tt['k0l', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
477
505
  assert_allclose(tt['k1l', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
478
506
  assert_allclose(tt['k2l', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
@@ -493,6 +521,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
493
521
  assert_allclose(tt['rot_s_rad', 'e1..1'], 0.1, rtol=0, atol=1e-14)
494
522
  assert_allclose(tt['shift_x', 'e1..1'], 2e-3, rtol=0, atol=1e-14)
495
523
  assert_allclose(tt['shift_y', 'e1..1'], 1e-3, rtol=0, atol=1e-14)
524
+ assert_allclose(tt['shift_s', 'e1..1'], -1e-3, rtol=0, atol=1e-14)
496
525
  assert_allclose(tt['k0l', 'e1..1'], 0., rtol=0, atol=1e-14)
497
526
  assert_allclose(tt['k1l', 'e1..1'], 0.1 * 0.5 / 2, rtol=0, atol=1e-14)
498
527
  assert_allclose(tt['k2l', 'e1..1'], 0, rtol=0, atol=1e-14)
@@ -513,6 +542,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
513
542
  assert_allclose(tt['rot_s_rad', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
514
543
  assert_allclose(tt['shift_x', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
515
544
  assert_allclose(tt['shift_y', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
545
+ assert_allclose(tt['shift_s', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
516
546
  assert_allclose(tt['k0l', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
517
547
  assert_allclose(tt['k1l', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
518
548
  assert_allclose(tt['k2l', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
@@ -533,6 +563,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
533
563
  assert_allclose(tt['rot_s_rad', 'e1_entry'], 0, rtol=0, atol=1e-14)
534
564
  assert_allclose(tt['shift_x', 'e1_entry'], 0, rtol=0, atol=1e-14)
535
565
  assert_allclose(tt['shift_y', 'e1_entry'], 0, rtol=0, atol=1e-14)
566
+ assert_allclose(tt['shift_s', 'e1_entry'], 0, rtol=0, atol=1e-14)
536
567
  assert_allclose(tt['k0l', 'e1_entry'], 0, rtol=0, atol=1e-14)
537
568
  assert_allclose(tt['k1l', 'e1_entry'], 0, rtol=0, atol=1e-14)
538
569
  assert_allclose(tt['k2l', 'e1_entry'], 0, rtol=0, atol=1e-14)
@@ -553,6 +584,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
553
584
  assert_allclose(tt['rot_s_rad', 'e2..1'], 0.3, rtol=0, atol=1e-14)
554
585
  assert_allclose(tt['shift_x', 'e2..1'], 3e-3, rtol=0, atol=1e-14)
555
586
  assert_allclose(tt['shift_y', 'e2..1'], 4e-3, rtol=0, atol=1e-14)
587
+ assert_allclose(tt['shift_s', 'e2..1'], -2e-3, rtol=0, atol=1e-14)
556
588
  assert_allclose(tt['k0l', 'e2..1'], 0., rtol=0, atol=1e-14)
557
589
  assert_allclose(tt['k1l', 'e2..1'], 0., rtol=0, atol=1e-14)
558
590
  assert_allclose(tt['k2l', 'e2..1'], 0.1 * 0.3*1/2, rtol=0, atol=1e-14)
@@ -573,6 +605,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
573
605
  assert_allclose(tt['rot_s_rad', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
574
606
  assert_allclose(tt['shift_x', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
575
607
  assert_allclose(tt['shift_y', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
608
+ assert_allclose(tt['shift_s', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
576
609
  assert_allclose(tt['k0l', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
577
610
  assert_allclose(tt['k1l', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
578
611
  assert_allclose(tt['k2l', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
@@ -593,6 +626,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
593
626
  assert_allclose(tt['rot_s_rad', 'e3..1'], 0.4, rtol=0, atol=1e-14)
594
627
  assert_allclose(tt['shift_x', 'e3..1'], 5e-3, rtol=0, atol=1e-14)
595
628
  assert_allclose(tt['shift_y', 'e3..1'], 6e-3, rtol=0, atol=1e-14)
629
+ assert_allclose(tt['shift_s', 'e3..1'], -1e-3, rtol=0, atol=1e-14)
596
630
  assert_allclose(tt['k0l', 'e3..1'], 0., rtol=0, atol=1e-14)
597
631
  assert_allclose(tt['k1l', 'e3..1'], 0., rtol=0, atol=1e-14)
598
632
  assert_allclose(tt['k2l', 'e3..1'], 0., rtol=0, atol=1e-14)
@@ -613,6 +647,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
613
647
  assert_allclose(tt['rot_s_rad', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
614
648
  assert_allclose(tt['shift_x', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
615
649
  assert_allclose(tt['shift_y', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
650
+ assert_allclose(tt['shift_s', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
616
651
  assert_allclose(tt['k0l', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
617
652
  assert_allclose(tt['k1l', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
618
653
  assert_allclose(tt['k2l', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
@@ -634,6 +669,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
634
669
  assert_allclose(tt['rot_s_rad', 'e5'], 0.0, rtol=0, atol=1e-14)
635
670
  assert_allclose(tt['shift_x', 'e5'], 0.0, rtol=0, atol=1e-14)
636
671
  assert_allclose(tt['shift_y', 'e5'], 0.0, rtol=0, atol=1e-14)
672
+ assert_allclose(tt['shift_s', 'e5'], 0.0, rtol=0, atol=1e-14)
637
673
  assert_allclose(tt['k0l', 'e5'], 0.0, rtol=0, atol=1e-14)
638
674
  assert_allclose(tt['k1l', 'e5'], 0.0, rtol=0, atol=1e-14)
639
675
  assert_allclose(tt['k2l', 'e5'], 0.0, rtol=0, atol=1e-14)
@@ -654,6 +690,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
654
690
  assert_allclose(tt['rot_s_rad', 'e6..1'], 0.2, rtol=0, atol=1e-14)
655
691
  assert_allclose(tt['shift_x', 'e6..1'], 1e-3, rtol=0, atol=1e-14)
656
692
  assert_allclose(tt['shift_y', 'e6..1'], 2e-3, rtol=0, atol=1e-14)
693
+ assert_allclose(tt['shift_s', 'e6..1'], 2e-3, rtol=0, atol=1e-14)
657
694
  assert_allclose(tt['k0l', 'e6..1'], 0.5 * (0.4 * 1 + 0.7), rtol=0, atol=1e-14)
658
695
  assert_allclose(tt['k1l', 'e6..1'], 0.5 * (0.1 * 1 + 0.8), rtol=0, atol=1e-14)
659
696
  assert_allclose(tt['k2l', 'e6..1'], 0.5 * .9, rtol=0, atol=1e-14)
@@ -674,6 +711,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
674
711
  assert_allclose(tt['rot_s_rad', 'e6..exit_map'], 0.2, rtol=0, atol=1e-14)
675
712
  assert_allclose(tt['shift_x', 'e6..exit_map'], 1e-3, rtol=0, atol=1e-14)
676
713
  assert_allclose(tt['shift_y', 'e6..exit_map'], 2e-3, rtol=0, atol=1e-14)
714
+ assert_allclose(tt['shift_s', 'e6..exit_map'], 2e-3, rtol=0, atol=1e-14)
677
715
  assert_allclose(tt['k0l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
678
716
  assert_allclose(tt['k1l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
679
717
  assert_allclose(tt['k2l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
@@ -694,6 +732,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
694
732
  assert_allclose(tt['rot_s_rad', 'e6..entry_map'], 0.2, rtol=0, atol=1e-14)
695
733
  assert_allclose(tt['shift_x', 'e6..entry_map'], 1e-3, rtol=0, atol=1e-14)
696
734
  assert_allclose(tt['shift_y', 'e6..entry_map'], 2e-3, rtol=0, atol=1e-14)
735
+ assert_allclose(tt['shift_s', 'e6..entry_map'], 2e-3, rtol=0, atol=1e-14)
697
736
  assert_allclose(tt['k0l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
698
737
  assert_allclose(tt['k1l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
699
738
  assert_allclose(tt['k2l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
@@ -714,6 +753,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
714
753
  assert_allclose(tt['rot_s_rad', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
715
754
  assert_allclose(tt['shift_x', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
716
755
  assert_allclose(tt['shift_y', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
756
+ assert_allclose(tt['shift_s', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
717
757
  assert_allclose(tt['k0l', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
718
758
  assert_allclose(tt['k1l', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
719
759
  assert_allclose(tt['k2l', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
@@ -769,6 +809,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
769
809
  assert_allclose(tt['rot_s_rad', 'e0..1'], 0.2, rtol=0, atol=1e-14)
770
810
  assert_allclose(tt['shift_x', 'e0..1'], 1e-3, rtol=0, atol=1e-14)
771
811
  assert_allclose(tt['shift_y', 'e0..1'], 2e-3, rtol=0, atol=1e-14)
812
+ assert_allclose(tt['shift_s', 'e0..1'], 2e-3, rtol=0, atol=1e-14)
772
813
  assert_allclose(tt['k0l', 'e0..1'], 0.5 * (0.4 * 1 + 0.7), rtol=0, atol=1e-14)
773
814
  assert_allclose(tt['k1l', 'e0..1'], 0.5 * (0.1 * 1 + 0.8), rtol=0, atol=1e-14)
774
815
  assert_allclose(tt['k2l', 'e0..1'], 0.5 * .9, rtol=0, atol=1e-14)
@@ -789,6 +830,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
789
830
  assert_allclose(tt['rot_s_rad', 'e0..exit_map'], 0.2, rtol=0, atol=1e-14)
790
831
  assert_allclose(tt['shift_x', 'e0..exit_map'], 1e-3, rtol=0, atol=1e-14)
791
832
  assert_allclose(tt['shift_y', 'e0..exit_map'], 2e-3, rtol=0, atol=1e-14)
833
+ assert_allclose(tt['shift_s', 'e0..exit_map'], 2e-3, rtol=0, atol=1e-14)
792
834
  assert_allclose(tt['k0l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
793
835
  assert_allclose(tt['k1l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
794
836
  assert_allclose(tt['k2l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
@@ -809,6 +851,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
809
851
  assert_allclose(tt['rot_s_rad', 'e0..entry_map'], 0.2, rtol=0, atol=1e-14)
810
852
  assert_allclose(tt['shift_x', 'e0..entry_map'], 1e-3, rtol=0, atol=1e-14)
811
853
  assert_allclose(tt['shift_y', 'e0..entry_map'], 2e-3, rtol=0, atol=1e-14)
854
+ assert_allclose(tt['shift_s', 'e0..entry_map'], 2e-3, rtol=0, atol=1e-14)
812
855
  assert_allclose(tt['k0l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
813
856
  assert_allclose(tt['k1l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
814
857
  assert_allclose(tt['k2l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
@@ -829,6 +872,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
829
872
  assert_allclose(tt['rot_s_rad', 'e1..1'], 0.1, rtol=0, atol=1e-14)
830
873
  assert_allclose(tt['shift_x', 'e1..1'], 2e-3, rtol=0, atol=1e-14)
831
874
  assert_allclose(tt['shift_y', 'e1..1'], 1e-3, rtol=0, atol=1e-14)
875
+ assert_allclose(tt['shift_s', 'e1..1'], -1e-3, rtol=0, atol=1e-14)
832
876
  assert_allclose(tt['k0l', 'e1..1'], 0., rtol=0, atol=1e-14)
833
877
  assert_allclose(tt['k1l', 'e1..1'], 0.1 * 0.5 / 2, rtol=0, atol=1e-14)
834
878
  assert_allclose(tt['k2l', 'e1..1'], 0, rtol=0, atol=1e-14)
@@ -849,6 +893,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
849
893
  assert_allclose(tt['rot_s_rad', 'e1_entry'], 0, rtol=0, atol=1e-14)
850
894
  assert_allclose(tt['shift_x', 'e1_entry'], 0, rtol=0, atol=1e-14)
851
895
  assert_allclose(tt['shift_y', 'e1_entry'], 0, rtol=0, atol=1e-14)
896
+ assert_allclose(tt['shift_s', 'e1_entry'], 0, rtol=0, atol=1e-14)
852
897
  assert_allclose(tt['k0l', 'e1_entry'], 0, rtol=0, atol=1e-14)
853
898
  assert_allclose(tt['k1l', 'e1_entry'], 0, rtol=0, atol=1e-14)
854
899
  assert_allclose(tt['k2l', 'e1_entry'], 0, rtol=0, atol=1e-14)
@@ -869,6 +914,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
869
914
  assert_allclose(tt['rot_s_rad', 'e2..1'], 0.3, rtol=0, atol=1e-14)
870
915
  assert_allclose(tt['shift_x', 'e2..1'], 3e-3, rtol=0, atol=1e-14)
871
916
  assert_allclose(tt['shift_y', 'e2..1'], 4e-3, rtol=0, atol=1e-14)
917
+ assert_allclose(tt['shift_s', 'e2..1'], -2e-3, rtol=0, atol=1e-14)
872
918
  assert_allclose(tt['k0l', 'e2..1'], 0., rtol=0, atol=1e-14)
873
919
  assert_allclose(tt['k1l', 'e2..1'], 0., rtol=0, atol=1e-14)
874
920
  assert_allclose(tt['k2l', 'e2..1'], 0.1 * 0.3*1/2, rtol=0, atol=1e-14)
@@ -889,6 +935,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
889
935
  assert_allclose(tt['rot_s_rad', 'e3..1'], 0.4, rtol=0, atol=1e-14)
890
936
  assert_allclose(tt['shift_x', 'e3..1'], 5e-3, rtol=0, atol=1e-14)
891
937
  assert_allclose(tt['shift_y', 'e3..1'], 6e-3, rtol=0, atol=1e-14)
938
+ assert_allclose(tt['shift_s', 'e3..1'], -1e-3, rtol=0, atol=1e-14)
892
939
  assert_allclose(tt['k0l', 'e3..1'], 0., rtol=0, atol=1e-14)
893
940
  assert_allclose(tt['k1l', 'e3..1'], 0., rtol=0, atol=1e-14)
894
941
  assert_allclose(tt['k2l', 'e3..1'], 0., rtol=0, atol=1e-14)
@@ -910,6 +957,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
910
957
  assert_allclose(tt['rot_s_rad', 'e5'], 0.0, rtol=0, atol=1e-14)
911
958
  assert_allclose(tt['shift_x', 'e5'], 0.0, rtol=0, atol=1e-14)
912
959
  assert_allclose(tt['shift_y', 'e5'], 0.0, rtol=0, atol=1e-14)
960
+ assert_allclose(tt['shift_s', 'e5'], 0.0, rtol=0, atol=1e-14)
913
961
  assert_allclose(tt['k0l', 'e5'], 0.0, rtol=0, atol=1e-14)
914
962
  assert_allclose(tt['k1l', 'e5'], 0.0, rtol=0, atol=1e-14)
915
963
  assert_allclose(tt['k2l', 'e5'], 0.0, rtol=0, atol=1e-14)
@@ -930,6 +978,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
930
978
  assert_allclose(tt['rot_s_rad', 'e6..1'], 0.2, rtol=0, atol=1e-14)
931
979
  assert_allclose(tt['shift_x', 'e6..1'], 1e-3, rtol=0, atol=1e-14)
932
980
  assert_allclose(tt['shift_y', 'e6..1'], 2e-3, rtol=0, atol=1e-14)
981
+ assert_allclose(tt['shift_s', 'e6..1'], 2e-3, rtol=0, atol=1e-14)
933
982
  assert_allclose(tt['k0l', 'e6..1'], 0.5 * (0.4 * 1 + 0.7), rtol=0, atol=1e-14)
934
983
  assert_allclose(tt['k1l', 'e6..1'], 0.5 * (0.1 * 1 + 0.8), rtol=0, atol=1e-14)
935
984
  assert_allclose(tt['k2l', 'e6..1'], 0.5 * .9, rtol=0, atol=1e-14)
@@ -950,6 +999,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
950
999
  assert_allclose(tt['rot_s_rad', 'e6..exit_map'], 0.2, rtol=0, atol=1e-14)
951
1000
  assert_allclose(tt['shift_x', 'e6..exit_map'], 1e-3, rtol=0, atol=1e-14)
952
1001
  assert_allclose(tt['shift_y', 'e6..exit_map'], 2e-3, rtol=0, atol=1e-14)
1002
+ assert_allclose(tt['shift_s', 'e6..exit_map'], 2e-3, rtol=0, atol=1e-14)
953
1003
  assert_allclose(tt['k0l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
954
1004
  assert_allclose(tt['k1l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
955
1005
  assert_allclose(tt['k2l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
@@ -970,6 +1020,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
970
1020
  assert_allclose(tt['rot_s_rad', 'e6..entry_map'], 0.2, rtol=0, atol=1e-14)
971
1021
  assert_allclose(tt['shift_x', 'e6..entry_map'], 1e-3, rtol=0, atol=1e-14)
972
1022
  assert_allclose(tt['shift_y', 'e6..entry_map'], 2e-3, rtol=0, atol=1e-14)
1023
+ assert_allclose(tt['shift_s', 'e6..entry_map'], 2e-3, rtol=0, atol=1e-14)
973
1024
  assert_allclose(tt['k0l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
974
1025
  assert_allclose(tt['k1l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
975
1026
  assert_allclose(tt['k2l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
@@ -341,7 +341,7 @@ def test_import_thick_bend_from_madx(use_true_thick_bends, with_knobs, bend_type
341
341
 
342
342
  assert np.allclose(
343
343
  elem.knl,
344
- np.array([0, 0, 0.8, 0, 0]), # knl = [0, 0, k2 * L, 0, 0]
344
+ np.array([0, 0, 0.8, 0, 0, 0]), # knl = [0, 0, k2 * L, 0, 0]
345
345
  atol=1e-16,
346
346
  )
347
347
 
@@ -378,7 +378,7 @@ def test_import_thick_bend_from_madx(use_true_thick_bends, with_knobs, bend_type
378
378
 
379
379
  assert np.allclose(
380
380
  elem.knl,
381
- np.array([0, 0, 2.4, 0, 0]), # knl = [0, 0, k2 * L, 0, 0]
381
+ np.array([0, 0, 2.4, 0, 0, 0]), # knl = [0, 0, k2 * L, 0, 0]
382
382
  atol=1e-16,
383
383
  )
384
384
 
@@ -485,7 +485,7 @@ def test_import_thick_bend_from_madx_and_slice(
485
485
  assert np.isclose(elem.weight, 0.5, atol=1e-16)
486
486
  assert np.isclose(elem._parent.length, 2.0, atol=1e-16)
487
487
  assert np.isclose(elem._parent.k0, 0.2, atol=1e-16)
488
- assert np.allclose(elem._parent.knl, [0., 0, 0.8, 0, 0], atol=1e-16)
488
+ assert np.allclose(elem._parent.knl, [0., 0, 0.8, 0, 0, 0], atol=1e-16)
489
489
  assert np.allclose(elem._parent.ksl, 0, atol=1e-16)
490
490
  assert np.isclose(elem._parent.h, 0.05, atol=1e-16)
491
491
 
@@ -509,14 +509,14 @@ def test_import_thick_bend_from_madx_and_slice(
509
509
  assert np.isclose(elem.weight, 0.5, atol=1e-16)
510
510
  assert np.isclose(elem._parent.length, 3.0, atol=1e-16)
511
511
  assert np.isclose(elem._parent.k0, 0.4, atol=1e-16)
512
- assert np.allclose(elem._parent.knl, [0., 0, 2.4, 0, 0], atol=1e-16)
512
+ assert np.allclose(elem._parent.knl, [0., 0, 2.4, 0, 0, 0], atol=1e-16)
513
513
  assert np.allclose(elem._parent.ksl, 0, atol=1e-16)
514
514
  assert np.isclose(elem._parent.h, 0.2/3, atol=1e-16)
515
515
 
516
516
  assert np.isclose(elem._xobject.weight, 0.5, atol=1e-16)
517
517
  assert np.isclose(elem._xobject._parent.length, 3.0, atol=1e-16)
518
518
  assert np.isclose(elem._xobject._parent.k0, 0.4, atol=1e-16)
519
- assert np.allclose(elem._xobject._parent.knl, [0., 0, 2.4, 0, 0], atol=1e-16)
519
+ assert np.allclose(elem._xobject._parent.knl, [0., 0, 2.4, 0, 0, 0], atol=1e-16)
520
520
  assert np.allclose(elem._xobject._parent.ksl, 0, atol=1e-16)
521
521
  assert np.isclose(elem._xobject._parent.h, 0.2/3, atol=1e-16)
522
522
 
@@ -1,14 +1,13 @@
1
1
  # copyright ################################# #
2
- # This file is part of the Xobjects Package. #
3
- # Copyright (c) CERN, 2022. #
2
+ # This file is part of the Xtrack Package. #
3
+ # Copyright (c) CERN, 2024. #
4
4
  # ########################################### #
5
- import json
6
5
 
7
6
  import cffi
8
7
 
9
8
  import xobjects as xo
10
9
  import xtrack as xt
11
- from xtrack.prebuild_kernels import regenerate_kernels
10
+ from xsuite.prebuild_kernels import regenerate_kernels
12
11
 
13
12
 
14
13
  def test_prebuild_kernels(mocker, tmp_path, temp_context_default_func, capsys):
@@ -43,15 +42,17 @@ def test_prebuild_kernels(mocker, tmp_path, temp_context_default_func, capsys):
43
42
  }),
44
43
  ]
45
44
 
46
- patch_defs = 'xtrack.prebuilt_kernels.kernel_definitions.kernel_definitions'
45
+ # Override the definitions with the temporary ones
46
+ patch_defs = 'xsuite.kernel_definitions.kernel_definitions'
47
47
  mocker.patch(patch_defs, kernel_definitions)
48
-
49
- mocker.patch('xtrack.prebuild_kernels.XT_PREBUILT_KERNELS_LOCATION',
48
+ # We need to change the default location so that loading the kernels works
49
+ mocker.patch('xsuite.prebuild_kernels.XSK_PREBUILT_KERNELS_LOCATION',
50
+ tmp_path)
51
+ mocker.patch('xsuite.XSK_PREBUILT_KERNELS_LOCATION',
50
52
  tmp_path)
51
- mocker.patch('xtrack.tracker.XT_PREBUILT_KERNELS_LOCATION', tmp_path)
52
53
 
53
54
  # Try regenerating the kernels
54
- regenerate_kernels()
55
+ regenerate_kernels(location=tmp_path)
55
56
 
56
57
  # Check if the expected files were created
57
58
  so_file0, = tmp_path.glob('000_test_module.*.so')
@@ -103,17 +104,17 @@ def test_per_element_prebuild_kernels(mocker, tmp_path, temp_context_default_fun
103
104
  }),
104
105
  ]
105
106
 
106
- patch_defs = 'xtrack.prebuilt_kernels.kernel_definitions.kernel_definitions'
107
+ # Override the definitions with the temporary ones
108
+ patch_defs = 'xsuite.kernel_definitions.kernel_definitions'
107
109
  mocker.patch(patch_defs, kernel_definitions)
108
-
109
- mocker.patch('xtrack.prebuild_kernels.XT_PREBUILT_KERNELS_LOCATION',
110
+ # We need to change the default location so that loading the kernels works
111
+ mocker.patch('xsuite.prebuild_kernels.XSK_PREBUILT_KERNELS_LOCATION',
112
+ tmp_path)
113
+ mocker.patch('xsuite.XSK_PREBUILT_KERNELS_LOCATION',
110
114
  tmp_path)
111
- mocker.patch('xtrack.tracker.XT_PREBUILT_KERNELS_LOCATION', tmp_path)
112
- mocker.patch('xtrack.base_element.XT_PREBUILT_KERNELS_LOCATION', tmp_path)
113
- mocker.patch('xtrack.particles.particles.XT_PREBUILT_KERNELS_LOCATION', tmp_path)
114
115
 
115
116
  # Try regenerating the kernels
116
- regenerate_kernels()
117
+ regenerate_kernels(location=tmp_path)
117
118
 
118
119
  # Check if the expected files were created
119
120
  so_file_exists = False