xtrack 0.86.1__tar.gz → 0.86.3__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 (338) hide show
  1. {xtrack-0.86.1/xtrack.egg-info → xtrack-0.86.3}/PKG-INFO +1 -1
  2. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radiation_equilibrium_emittances.py +9 -9
  3. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radiation_equilibrium_emittances_thick.py +9 -9
  4. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_tapering.py +62 -1
  5. xtrack-0.86.3/xtrack/_version.py +1 -0
  6. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/__init__.py +3 -2
  7. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/bend.h +7 -1
  8. xtrack-0.86.3/xtrack/beam_elements/elements_src/default_magnet_config.h +22 -0
  9. xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_bend.h +37 -0
  10. xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_octupole.h +37 -0
  11. xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +37 -0
  12. xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_rbend.h +37 -0
  13. xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +37 -0
  14. xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +37 -0
  15. xtrack-0.86.3/xtrack/beam_elements/elements_src/magnet.h +66 -0
  16. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/multipole.h +8 -6
  17. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/octupole.h +10 -17
  18. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/quadrupole.h +10 -17
  19. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/rbend.h +14 -17
  20. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/sextupole.h +10 -18
  21. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/slnd.h +12 -15
  22. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_bend.h +24 -27
  23. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +17 -36
  24. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +17 -36
  25. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +25 -29
  26. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +17 -36
  27. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +18 -33
  28. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_bend.h +25 -30
  29. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +69 -0
  30. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +69 -0
  31. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +16 -24
  32. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +68 -0
  33. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +68 -0
  34. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +17 -23
  35. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +68 -0
  36. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +68 -0
  37. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +26 -31
  38. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +68 -0
  39. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +68 -0
  40. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +16 -24
  41. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +68 -0
  42. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +68 -0
  43. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +68 -0
  44. xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +68 -0
  45. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet.h +109 -70
  46. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/variable_solenoid.h +9 -13
  47. xtrack-0.86.1/xtrack/beam_elements/slice_elements.py → xtrack-0.86.3/xtrack/beam_elements/slice_elements_edge.py +5 -293
  48. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/slice_elements_thick.py +1 -1
  49. xtrack-0.86.3/xtrack/beam_elements/slice_elements_thin.py +296 -0
  50. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/line.py +14 -5
  51. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/load.py +1 -1
  52. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/madng_interface.py +6 -4
  53. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/tapering.py +36 -19
  54. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/trajectory_correction.py +4 -4
  55. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/twiss.py +6 -3
  56. {xtrack-0.86.1 → xtrack-0.86.3/xtrack.egg-info}/PKG-INFO +1 -1
  57. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack.egg-info/SOURCES.txt +4 -5
  58. xtrack-0.86.1/xtrack/_version.py +0 -1
  59. xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -32
  60. xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -32
  61. xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -32
  62. xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -32
  63. xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -32
  64. xtrack-0.86.1/xtrack/beam_elements/elements_src/magnet.h +0 -92
  65. xtrack-0.86.1/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -31
  66. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -60
  67. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -60
  68. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -47
  69. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -48
  70. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -47
  71. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -47
  72. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -60
  73. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -61
  74. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -48
  75. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -48
  76. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -51
  77. xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -51
  78. xtrack-0.86.1/xtrack/beam_elements/elements_src/track_bend.h +0 -162
  79. xtrack-0.86.1/xtrack/beam_elements/elements_src/track_multipole.h +0 -176
  80. xtrack-0.86.1/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -115
  81. {xtrack-0.86.1 → xtrack-0.86.3}/LICENSE +0 -0
  82. {xtrack-0.86.1 → xtrack-0.86.3}/MANIFEST.in +0 -0
  83. {xtrack-0.86.1 → xtrack-0.86.3}/README.md +0 -0
  84. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/__init__.py +0 -0
  85. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/base_classes.py +0 -0
  86. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/BB6D.py +0 -0
  87. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  88. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/__init__.py +0 -0
  89. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/beambeam.py +0 -0
  90. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/boost.py +0 -0
  91. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  92. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  93. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/qgauss.py +0 -0
  94. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/slicing.py +0 -0
  95. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/spacecharge.py +0 -0
  96. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/elements.py +0 -0
  97. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/line.py +0 -0
  98. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/mathlibs.py +0 -0
  99. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/particles.py +0 -0
  100. {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/temp_pyparticles.py +0 -0
  101. {xtrack-0.86.1 → xtrack-0.86.3}/pyproject.toml +0 -0
  102. {xtrack-0.86.1 → xtrack-0.86.3}/setup.cfg +0 -0
  103. {xtrack-0.86.1 → xtrack-0.86.3}/setup.py +0 -0
  104. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_acceleration.py +0 -0
  105. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_amplitude_detuning.py +0 -0
  106. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_aperture_table.py +0 -0
  107. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  108. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_apertures.py +0 -0
  109. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_attr_replicas_and_slices.py +0 -0
  110. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_bucket_with_ref_energy_change.py +0 -0
  111. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_cavity_absolute_time.py +0 -0
  112. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_chromatic_functions_vs_madx.py +0 -0
  113. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_coasting.py +0 -0
  114. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_collective_tracker.py +0 -0
  115. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_collimation.py +0 -0
  116. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_electron_cooler.py +0 -0
  117. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_element_characterization_functions.py +0 -0
  118. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_element_internal_record.py +0 -0
  119. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_elements.py +0 -0
  120. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_elements_classflags.py +0 -0
  121. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_elements_thick.py +0 -0
  122. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_environment.py +0 -0
  123. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  124. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  125. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_footprint.py +0 -0
  126. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_freeze_longitudinal.py +0 -0
  127. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_full_rings.py +0 -0
  128. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_h6_sps_beamline.py +0 -0
  129. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_hvkick.py +0 -0
  130. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_ions.py +0 -0
  131. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_legacy_multiline_to_env.py +0 -0
  132. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_lhc_env.py +0 -0
  133. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_lhc_match_phase_15.py +0 -0
  134. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_line.py +0 -0
  135. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_load.py +0 -0
  136. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_lumi.py +0 -0
  137. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_mad_writer.py +0 -0
  138. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_madloader.py +0 -0
  139. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_madnginterface.py +0 -0
  140. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_magnet.py +0 -0
  141. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_and_track_from_element.py +0 -0
  142. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_coupling_knob.py +0 -0
  143. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_nested.py +0 -0
  144. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_optics_and_ip_knob.py +0 -0
  145. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
  146. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_orbit_bump.py +0 -0
  147. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_tune_chroma_cminus.py +0 -0
  148. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_monitor.py +0 -0
  149. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_multi_bunch_gauss.py +0 -0
  150. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_multiline.py +0 -0
  151. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_multisetter.py +0 -0
  152. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_multispecies.py +0 -0
  153. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_native_madloader.py +0 -0
  154. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_optimize_for_tracking.py +0 -0
  155. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_particles.py +0 -0
  156. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_particles_basics.py +0 -0
  157. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_particles_pdg.py +0 -0
  158. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
  159. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_pipeline.py +0 -0
  160. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_prebuild_kernels.py +0 -0
  161. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_ps_against_ptc.py +0 -0
  162. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_ps_multiturn_twiss.py +0 -0
  163. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_psb_chicane.py +0 -0
  164. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_pyht_interface.py +0 -0
  165. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radial_steering.py +0 -0
  166. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radiation.py +0 -0
  167. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radiation_integrals.py +0 -0
  168. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_random_gen.py +0 -0
  169. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_random_gen_exp.py +0 -0
  170. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_random_gen_gauss.py +0 -0
  171. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_random_gen_ruth.py +0 -0
  172. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_rbend_rbarc.py +0 -0
  173. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_rf_track.py +0 -0
  174. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_rotation_signs.py +0 -0
  175. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_second_order_taylor_map.py +0 -0
  176. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_seeds.py +0 -0
  177. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_slice_and_insert_with_replicas.py +0 -0
  178. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_slice_elements.py +0 -0
  179. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_slicing.py +0 -0
  180. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  181. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
  182. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_spacecharge_in_ring.py +0 -0
  183. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_spin.py +0 -0
  184. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_sps_thick.py +0 -0
  185. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_survey.py +0 -0
  186. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_thick_lhc.py +0 -0
  187. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_tilt_shifts.py +0 -0
  188. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_tracker.py +0 -0
  189. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_trajectory_correcton.py +0 -0
  190. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_twiss.py +0 -0
  191. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_twiss_vs_madx_psb.py +0 -0
  192. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_vs_madx.py +0 -0
  193. {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_xmask_orbit_correction.py +0 -0
  194. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/__init__.py +0 -0
  195. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/__init__.py +0 -0
  196. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  197. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  198. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  199. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/lhc_match/__init__.py +0 -0
  200. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  201. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  202. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  203. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/aperture_meas.py +0 -0
  204. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/base_element.py +0 -0
  205. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures.py +0 -0
  206. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  207. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  208. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  209. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  210. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  211. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  212. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/beam_interaction.py +0 -0
  213. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements.py +0 -0
  214. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  215. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
  216. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  217. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift.h +0 -0
  218. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  219. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
  220. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/elens.h +0 -0
  221. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  222. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  223. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
  224. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  225. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
  226. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
  227. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
  228. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/marker.h +0 -0
  229. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
  230. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  231. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  232. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  233. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  234. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  235. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  236. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  237. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_cavity.h +0 -0
  238. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  239. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  240. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
  241. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
  242. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
  243. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
  244. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
  245. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
  246. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
  247. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
  248. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
  249. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
  250. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  251. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  252. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  253. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
  254. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
  255. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  256. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  257. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/wire.h +0 -0
  258. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  259. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  260. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  261. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  262. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/exciter.py +0 -0
  263. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/magnets.py +0 -0
  264. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/rft_element.py +0 -0
  265. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/environment.py +0 -0
  266. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/footprint.py +0 -0
  267. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/general.py +0 -0
  268. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/atomicadd.h +0 -0
  269. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/checks.h +0 -0
  270. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/constants.h +0 -0
  271. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/particle_states.h +0 -0
  272. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/synrad_spectrum.h +0 -0
  273. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/track.h +0 -0
  274. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/internal_record.py +0 -0
  275. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/json.py +0 -0
  276. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/linear_normal_form.py +0 -0
  277. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/loss_location_refinement/__init__.py +0 -0
  278. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  279. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/lumi.py +0 -0
  280. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_loader.py +0 -0
  281. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_parser/__init__.py +0 -0
  282. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_parser/loader.py +0 -0
  283. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_parser/madx.lark +0 -0
  284. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_parser/parse.py +0 -0
  285. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_writer.py +0 -0
  286. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/match.py +0 -0
  287. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/__init__.py +0 -0
  288. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_position_monitor.h +0 -0
  289. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_position_monitor.py +0 -0
  290. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_profile_monitor.h +0 -0
  291. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_profile_monitor.py +0 -0
  292. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_size_monitor.h +0 -0
  293. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_size_monitor.py +0 -0
  294. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/last_turns_monitor.h +0 -0
  295. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/last_turns_monitor.py +0 -0
  296. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/particles_monitor.h +0 -0
  297. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/particles_monitor.py +0 -0
  298. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multiline.py +0 -0
  299. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multiline_legacy/__init__.py +0 -0
  300. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
  301. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multiline_legacy/shared_knobs.py +0 -0
  302. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multisetter/__init__.py +0 -0
  303. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multisetter/multisetter.py +0 -0
  304. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/__init__.py +0 -0
  305. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/constants.py +0 -0
  306. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/masses.py +0 -0
  307. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/particles.py +0 -0
  308. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/pdg.py +0 -0
  309. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/rng_src/base_rng.h +0 -0
  310. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/rng_src/particles_rng.h +0 -0
  311. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/pipeline/__init__.py +0 -0
  312. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/pipeline/core.py +0 -0
  313. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/pipeline/manager.py +0 -0
  314. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/pipeline/multitracker.py +0 -0
  315. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/progress_indicator.py +0 -0
  316. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/__init__.py +0 -0
  317. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_generators.py +0 -0
  318. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/exponential.h +0 -0
  319. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  320. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/normal.h +0 -0
  321. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/rutherford.h +0 -0
  322. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/uniform.h +0 -0
  323. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/uniform_accurate.h +0 -0
  324. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/slicing.py +0 -0
  325. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/survey.py +0 -0
  326. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/svgutils/__init__.py +0 -0
  327. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/svgutils/parser.py +0 -0
  328. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/svgutils/path.py +0 -0
  329. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/svgutils/svgutils.py +0 -0
  330. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/synctime.py +0 -0
  331. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/targets.py +0 -0
  332. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/tracker.py +0 -0
  333. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/tracker_data.py +0 -0
  334. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/tracker_src/tracker.h +0 -0
  335. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/twissplot.py +0 -0
  336. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack.egg-info/dependency_links.txt +0 -0
  337. {xtrack-0.86.1 → xtrack-0.86.3}/xtrack.egg-info/requires.txt +0 -0
  338. {xtrack-0.86.1 → xtrack-0.86.3}/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.86.1
3
+ Version: 0.86.3
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
@@ -124,32 +124,32 @@ def test_eq_emitt(conf):
124
124
  if not tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
125
125
  xo.assert_allclose(ex, 7.09232e-10, atol=0, rtol=1e-4)
126
126
  xo.assert_allclose(ey, 0, atol=1e-14, rtol=0)
127
- xo.assert_allclose(ez, 3.43821e-06, atol=0, rtol=1e-4)
127
+ xo.assert_allclose(ez, 3.36956e-06, atol=0, rtol=1e-4)
128
128
  checked = True
129
129
  elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
130
130
  xo.assert_allclose(ex, 0, atol=1e-14, rtol=0)
131
131
  xo.assert_allclose(ey, 7.09232e-10, atol=0, rtol=1e-4)
132
- xo.assert_allclose(ez, 3.43821e-6, atol=0, rtol=1e-4)
132
+ xo.assert_allclose(ez, 3.36956e-6, atol=0, rtol=1e-4)
133
133
  checked = True
134
134
  elif not tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
135
135
  xo.assert_allclose(ex, 7.0283e-10, atol=0, rtol=1e-4)
136
136
  xo.assert_allclose(ey, 5.5765e-13, atol=0, rtol=4e-3)
137
- xo.assert_allclose(ez, 3.6860e-6, atol=0, rtol=1e-4)
137
+ xo.assert_allclose(ez, 3.6042e-6, atol=0, rtol=1e-4)
138
138
  checked = True
139
139
  elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
140
140
  xo.assert_allclose(ex, 5.5790e-13, atol=0, rtol=4e-3) # Quite large, to be kept in mind
141
141
  xo.assert_allclose(ey, 7.0283e-10, atol=0, rtol=1e-4)
142
- xo.assert_allclose(ez, 3.6860e-6, atol=0, rtol=1e-4)
142
+ xo.assert_allclose(ez, 3.6042e-6, atol=0, rtol=1e-4)
143
143
  checked = True
144
144
  elif not tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
145
145
  xo.assert_allclose(ex, 7.0911e-10, atol=0, rtol=1e-4)
146
146
  xo.assert_allclose(ey, 2.1821e-12, atol=0, rtol=1e-2)
147
- xo.assert_allclose(ez, 3.4221e-6, atol=0, rtol=1e-4)
147
+ xo.assert_allclose(ez, 3.3536e-6, atol=0, rtol=1e-4)
148
148
  checked = True
149
149
  elif tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
150
150
  xo.assert_allclose(ex, 2.1828e-12, atol=0, rtol=7e-3)
151
151
  xo.assert_allclose(ey, 7.0911e-10, atol=0, rtol=1e-4)
152
- xo.assert_allclose(ez, 3.4221e-6, atol=0, rtol=1e-4)
152
+ xo.assert_allclose(ez, 3.3536e-6, atol=0, rtol=1e-4)
153
153
  checked = True
154
154
  else:
155
155
  raise ValueError('Unknown configuration')
@@ -159,11 +159,11 @@ def test_eq_emitt(conf):
159
159
  # Check radiation integrals
160
160
  tw_integ = line.twiss(radiation_integrals=True)
161
161
  xo.assert_allclose(tw_integ.rad_int_damping_constant_x_s,
162
- tw_rad.damping_constants_s[0], rtol=0.02, atol=0)
162
+ tw_rad.damping_constants_s[0], rtol=0.025, atol=0)
163
163
  xo.assert_allclose(tw_integ.rad_int_damping_constant_y_s,
164
- tw_rad.damping_constants_s[1], rtol=0.02, atol=0)
164
+ tw_rad.damping_constants_s[1], rtol=0.025, atol=0)
165
165
  xo.assert_allclose(tw_integ.rad_int_damping_constant_zeta_s,
166
- tw_rad.damping_constants_s[2], rtol=0.02, atol=0)
166
+ tw_rad.damping_constants_s[2], rtol=0.025, atol=0)
167
167
  xo.assert_allclose(tw_integ.rad_int_eq_gemitt_x, ex, rtol=0.15, atol=1e-14)
168
168
  xo.assert_allclose(tw_integ.rad_int_eq_gemitt_y, ey, rtol=0.15, atol=1e-14)
169
169
 
@@ -131,32 +131,32 @@ def test_eq_emitt(conf):
131
131
  if not tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
132
132
  xo.assert_allclose(ex, 7.0923e-10, atol=0, rtol=1e-4)
133
133
  xo.assert_allclose(ey, 0, atol=1e-14, rtol=0)
134
- xo.assert_allclose(ez, 3.5778e-6, atol=0, rtol=1e-4)
134
+ xo.assert_allclose(ez, 3.5064e-6, atol=0, rtol=1e-4)
135
135
  checked = True
136
136
  elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
137
137
  xo.assert_allclose(ex, 0, atol=1e-14, rtol=0)
138
138
  xo.assert_allclose(ey, 7.0923e-10, atol=0, rtol=1e-4)
139
- xo.assert_allclose(ez, 3.5778e-6, atol=0, rtol=1e-4)
139
+ xo.assert_allclose(ez, 3.5064e-6, atol=0, rtol=1e-4)
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.0283e-10, atol=0, rtol=1e-4)
143
143
  xo.assert_allclose(ey, 5.6461e-13, atol=0, rtol=4e-3)
144
- xo.assert_allclose(ez, 3.8357e-6, atol=0, rtol=1e-4)
144
+ xo.assert_allclose(ez, 3.7506e-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:
147
147
  xo.assert_allclose(ex, 5.6448e-13, atol=0, rtol=1e-2) # Quite large, to be kept in mind
148
148
  xo.assert_allclose(ey, 7.0283e-10, atol=0, rtol=1e-4)
149
- xo.assert_allclose(ez, 3.8357e-6, atol=0, rtol=1e-4)
149
+ xo.assert_allclose(ez, 3.7506e-6, atol=0, rtol=1e-4)
150
150
  checked = True
151
151
  elif not tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
152
152
  xo.assert_allclose(ex, 7.0910e-10, atol=0, rtol=1e-4)
153
153
  xo.assert_allclose(ey, 2.2195e-12, atol=0, rtol=7e-3)
154
- xo.assert_allclose(ez, 3.5607e-6, atol=0, rtol=2e-4)
154
+ xo.assert_allclose(ez, 3.4899e-6, atol=0, rtol=2e-4)
155
155
  checked = True
156
156
  elif tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
157
157
  xo.assert_allclose(ex, 2.2154e-12, atol=0, rtol=7e-3)
158
158
  xo.assert_allclose(ey, 7.0911e-10, atol=0, rtol=1e-4)
159
- xo.assert_allclose(ez, 3.5607e-6, atol=0, rtol=2e-4)
159
+ xo.assert_allclose(ez, 3.4899e-6, atol=0, rtol=2e-4)
160
160
  checked = True
161
161
  else:
162
162
  raise ValueError('Unknown configuration')
@@ -166,11 +166,11 @@ def test_eq_emitt(conf):
166
166
  # Check radiation integrals
167
167
  tw_integ = line.twiss(radiation_integrals=True)
168
168
  xo.assert_allclose(tw_integ.rad_int_damping_constant_x_s,
169
- tw_rad.damping_constants_s[0], rtol=0.02, atol=0)
169
+ tw_rad.damping_constants_s[0], rtol=0.025, atol=0)
170
170
  xo.assert_allclose(tw_integ.rad_int_damping_constant_y_s,
171
- tw_rad.damping_constants_s[1], rtol=0.02, atol=0)
171
+ tw_rad.damping_constants_s[1], rtol=0.025, atol=0)
172
172
  xo.assert_allclose(tw_integ.rad_int_damping_constant_zeta_s,
173
- tw_rad.damping_constants_s[2], rtol=0.02, atol=0)
173
+ tw_rad.damping_constants_s[2], rtol=0.025, atol=0)
174
174
  xo.assert_allclose(tw_integ.rad_int_eq_gemitt_x, ex, rtol=0.15, atol=1e-14)
175
175
  xo.assert_allclose(tw_integ.rad_int_eq_gemitt_y, ey, rtol=0.15, atol=1e-14)
176
176
 
@@ -37,7 +37,7 @@ def test_tapering_and_twiss_with_radiation():
37
37
  line.configure_radiation(model='mean')
38
38
  # - Set cavity lags to compensate energy loss
39
39
  # - Taper magnet strengths
40
- line.compensate_radiation_energy_loss()
40
+ line.compensate_radiation_energy_loss(delta0=0)
41
41
 
42
42
  for conf in configs:
43
43
  print(f'Running test with conf: {conf}')
@@ -126,3 +126,64 @@ def test_tapering_and_twiss_with_radiation():
126
126
  xo.assert_allclose(
127
127
  line['rf3'].voltage*np.sin((line['rf'].lag + line['rf'].lag_taper)/180*np.pi),
128
128
  eneloss/4, rtol=3e-5)
129
+
130
+ def test_tapering_zero_mean():
131
+
132
+ filename = test_data_folder / 'clic_dr/line_for_taper.json'
133
+ with open(filename, 'r') as f:
134
+ line = xt.Line.from_dict(json.load(f))
135
+
136
+ line.build_tracker()
137
+
138
+ line['rf3'].voltage = 0. # desymmetrize the rf
139
+ line['rf'].voltage = 0. # desymmetrize the rf
140
+
141
+ line['rf1'].voltage *= 2
142
+ line['rf2b'].voltage *= 2
143
+ line['rf2a'].voltage *= 2
144
+
145
+ line.particle_ref.p0c = 4e9 # eV
146
+
147
+ line.configure_radiation(model=None)
148
+ tw_no_rad = line.twiss(method='4d', freeze_longitudinal=True)
149
+
150
+ ###############################################
151
+ # Enable radiation and compensate energy loss #
152
+ ###############################################
153
+
154
+ line.configure_radiation(model='mean')
155
+
156
+ # - Set cavity lags to compensate energy loss
157
+ # - Taper magnet strengths to avoid optics and orbit distortions
158
+ line.compensate_radiation_energy_loss(max_iter=100, delta0='zero_mean')
159
+
160
+ ##############################
161
+ # Twiss to check the results #
162
+ ##############################
163
+
164
+ tw = line.twiss(method='6d')
165
+
166
+ tw.delta # contains the momentum deviation along the ring
167
+
168
+ #!end-doc-part
169
+
170
+ p0corr = 1 + tw.delta
171
+
172
+ delta_ave = np.trapezoid(tw.delta, tw.s)/tw.s[-1]
173
+ xo.assert_allclose(delta_ave, 0, rtol=0, atol=1e-6)
174
+
175
+ xo.assert_allclose(tw.qx, tw_no_rad.qx, rtol=0, atol=5e-4)
176
+ xo.assert_allclose(tw.qy, tw_no_rad.qy, rtol=0, atol=5e-4)
177
+
178
+ xo.assert_allclose(tw.dqx, tw_no_rad.dqx, rtol=0, atol=1.5e-2*tw.qx)
179
+ xo.assert_allclose(tw.dqy, tw_no_rad.dqy, rtol=0, atol=1.5e-2*tw.qy)
180
+
181
+ xo.assert_allclose(tw.x, tw_no_rad.x, rtol=0, atol=1e-7)
182
+ xo.assert_allclose(tw.y, tw_no_rad.y, rtol=0, atol=1e-7)
183
+
184
+ xo.assert_allclose(tw.betx*p0corr, tw_no_rad.betx, rtol=2e-2, atol=0)
185
+ xo.assert_allclose(tw.bety*p0corr, tw_no_rad.bety, rtol=2e-2, atol=0)
186
+
187
+ xo.assert_allclose(tw.dx, tw.dx, rtol=0.0, atol=0.1e-3)
188
+
189
+ xo.assert_allclose(tw.dy, tw.dy, rtol=0.0, atol=0.1e-3)
@@ -0,0 +1 @@
1
+ __version__ = '0.86.3'
@@ -8,9 +8,10 @@ from .exciter import Exciter
8
8
  from .apertures import *
9
9
  from .magnets import Magnet
10
10
  from .beam_interaction import BeamInteraction, ParticlesInjectionSample
11
- from .slice_elements import (ThinSliceQuadrupole, ThinSliceSextupole,
11
+ from .slice_elements_thin import (ThinSliceQuadrupole, ThinSliceSextupole,
12
12
  ThinSliceOctupole, ThinSliceBend,
13
- ThinSliceRBend,
13
+ ThinSliceRBend)
14
+ from .slice_elements_edge import (
14
15
  ThinSliceBendEntry, ThinSliceBendExit,
15
16
  ThinSliceRBendEntry, ThinSliceRBendExit,
16
17
  ThinSliceQuadrupoleEntry, ThinSliceQuadrupoleExit,
@@ -8,6 +8,7 @@
8
8
 
9
9
  #include <headers/track.h>
10
10
  #include <beam_elements/elements_src/track_magnet.h>
11
+ #include <beam_elements/elements_src/default_magnet_config.h>
11
12
 
12
13
  GPUFUN
13
14
  void Bend_track_local_particle(
@@ -16,17 +17,20 @@ void Bend_track_local_particle(
16
17
  ) {
17
18
 
18
19
  track_magnet_particles(
20
+ /*weight*/ 1.0,
19
21
  /*part0*/ part0,
20
22
  /*length*/ BendData_get_length(el),
21
23
  /*order*/ BendData_get_order(el),
22
24
  /*inv_factorial_order*/ BendData_get_inv_factorial_order(el),
23
25
  /*knl*/ BendData_getp1_knl(el, 0),
24
26
  /*ksl*/ BendData_getp1_ksl(el, 0),
25
- /*factor_knl_ksl*/ 1.,
26
27
  /*num_multipole_kicks*/ BendData_get_num_multipole_kicks(el),
27
28
  /*model*/ BendData_get_model(el),
29
+ /*default_model*/ BEND_DEFAULT_MODEL,
28
30
  /*integrator*/ BendData_get_integrator(el),
31
+ /*default_integrator*/ BEND_DEFAULT_INTEGRATOR,
29
32
  /*radiation_flag*/ BendData_get_radiation_flag(el),
33
+ /*radiation_flag_parent*/ 0, // not used here
30
34
  /*radiation_record*/ NULL,
31
35
  /*delta_taper*/ BendData_get_delta_taper(el),
32
36
  /*h*/ BendData_get_h(el),
@@ -41,6 +45,8 @@ void Bend_track_local_particle(
41
45
  /*k3s*/ 0.,
42
46
  /*ks*/ 0.,
43
47
  /*dks_ds*/ 0.,
48
+ /*rbend_model*/ -1, // not rbend
49
+ /*body_active*/ 1,
44
50
  /*edge_entry_active*/ BendData_get_edge_entry_active(el),
45
51
  /*edge_exit_active*/ BendData_get_edge_exit_active(el),
46
52
  /*edge_entry_model*/ BendData_get_edge_entry_model(el),
@@ -0,0 +1,22 @@
1
+ // copyright ############################### //
2
+ // This file is part of the Xtrack Package. //
3
+ // Copyright (c) CERN, 2023. //
4
+ // ######################################### //
5
+
6
+ #ifndef XTRACK_DEFAULT_MAGNET_CONFIG_H
7
+ #define XTRACK_DEFAULT_MAGNET_CONFIG_H
8
+
9
+ #define BEND_DEFAULT_MODEL (3) // rot-kick-rot
10
+ #define RBEND_DEFAULT_MODEL (3) // rot-kick-rot
11
+ #define QUADRUPOLE_DEFAULT_MODEL (4) // mat-kick-mat
12
+ #define SEXTUPOLE_DEFAULT_MODEL (6) // drift-kick-drift-expanded
13
+ #define OCTUPOLE_DEFAULT_MODEL (6) // drift-kick-drift-expanded
14
+
15
+ #define BEND_DEFAULT_INTEGRATOR (2) // Yoshida-4
16
+ #define RBEND_DEFAULT_INTEGRATOR (2) // Yoshida-4
17
+ #define QUADRUPOLE_DEFAULT_INTEGRATOR (3) // uniform
18
+ #define SEXTUPOLE_DEFAULT_INTEGRATOR (3) // uniform
19
+ #define OCTUPOLE_DEFAULT_INTEGRATOR (3) // uniform
20
+ #define SOLENOID_DEFAULT_INTEGRATOR (3) // uniform
21
+
22
+ #endif
@@ -0,0 +1,37 @@
1
+ // This file is generated by _generate_slice_elements_c_code.py
2
+ // Do not edit it directly.
3
+
4
+
5
+ // copyright ############################### //
6
+ // This file is part of the Xtrack Package. //
7
+ // Copyright (c) CERN, 2023. //
8
+ // ######################################### //
9
+
10
+ #ifndef XTRACK_DRIFT_SLICE_BEND_H
11
+ #define XTRACK_DRIFT_SLICE_BEND_H
12
+
13
+ #include <headers/track.h>
14
+ #include <beam_elements/elements_src/track_drift.h>
15
+
16
+
17
+ GPUFUN
18
+ void DriftSliceBend_track_local_particle(
19
+ DriftSliceBendData el,
20
+ LocalParticle* part0
21
+ ) {
22
+
23
+ double weight = DriftSliceBendData_get_weight(el);
24
+
25
+ #ifndef XSUITE_BACKTRACK
26
+ double const length = weight * DriftSliceBendData_get__parent_length(el); // m
27
+ #else
28
+ double const length = -weight * DriftSliceBendData_get__parent_length(el); // m
29
+ #endif
30
+
31
+ START_PER_PARTICLE_BLOCK(part0, part);
32
+ Drift_single_particle(part, length);
33
+ END_PER_PARTICLE_BLOCK;
34
+ }
35
+
36
+ #endif
37
+
@@ -0,0 +1,37 @@
1
+ // This file is generated by _generate_slice_elements_c_code.py
2
+ // Do not edit it directly.
3
+
4
+
5
+ // copyright ############################### //
6
+ // This file is part of the Xtrack Package. //
7
+ // Copyright (c) CERN, 2023. //
8
+ // ######################################### //
9
+
10
+ #ifndef XTRACK_DRIFT_SLICE_OCTUPOLE_H
11
+ #define XTRACK_DRIFT_SLICE_OCTUPOLE_H
12
+
13
+ #include <headers/track.h>
14
+ #include <beam_elements/elements_src/track_drift.h>
15
+
16
+
17
+ GPUFUN
18
+ void DriftSliceOctupole_track_local_particle(
19
+ DriftSliceOctupoleData el,
20
+ LocalParticle* part0
21
+ ) {
22
+
23
+ double weight = DriftSliceOctupoleData_get_weight(el);
24
+
25
+ #ifndef XSUITE_BACKTRACK
26
+ double const length = weight * DriftSliceOctupoleData_get__parent_length(el); // m
27
+ #else
28
+ double const length = -weight * DriftSliceOctupoleData_get__parent_length(el); // m
29
+ #endif
30
+
31
+ START_PER_PARTICLE_BLOCK(part0, part);
32
+ Drift_single_particle(part, length);
33
+ END_PER_PARTICLE_BLOCK;
34
+ }
35
+
36
+ #endif
37
+
@@ -0,0 +1,37 @@
1
+ // This file is generated by _generate_slice_elements_c_code.py
2
+ // Do not edit it directly.
3
+
4
+
5
+ // copyright ############################### //
6
+ // This file is part of the Xtrack Package. //
7
+ // Copyright (c) CERN, 2023. //
8
+ // ######################################### //
9
+
10
+ #ifndef XTRACK_DRIFT_SLICE_QUADRUPOLE_H
11
+ #define XTRACK_DRIFT_SLICE_QUADRUPOLE_H
12
+
13
+ #include <headers/track.h>
14
+ #include <beam_elements/elements_src/track_drift.h>
15
+
16
+
17
+ GPUFUN
18
+ void DriftSliceQuadrupole_track_local_particle(
19
+ DriftSliceQuadrupoleData el,
20
+ LocalParticle* part0
21
+ ) {
22
+
23
+ double weight = DriftSliceQuadrupoleData_get_weight(el);
24
+
25
+ #ifndef XSUITE_BACKTRACK
26
+ double const length = weight * DriftSliceQuadrupoleData_get__parent_length(el); // m
27
+ #else
28
+ double const length = -weight * DriftSliceQuadrupoleData_get__parent_length(el); // m
29
+ #endif
30
+
31
+ START_PER_PARTICLE_BLOCK(part0, part);
32
+ Drift_single_particle(part, length);
33
+ END_PER_PARTICLE_BLOCK;
34
+ }
35
+
36
+ #endif
37
+
@@ -0,0 +1,37 @@
1
+ // This file is generated by _generate_slice_elements_c_code.py
2
+ // Do not edit it directly.
3
+
4
+
5
+ // copyright ############################### //
6
+ // This file is part of the Xtrack Package. //
7
+ // Copyright (c) CERN, 2023. //
8
+ // ######################################### //
9
+
10
+ #ifndef XTRACK_DRIFT_SLICE_RBEND_H
11
+ #define XTRACK_DRIFT_SLICE_RBEND_H
12
+
13
+ #include <headers/track.h>
14
+ #include <beam_elements/elements_src/track_drift.h>
15
+
16
+
17
+ GPUFUN
18
+ void DriftSliceRBend_track_local_particle(
19
+ DriftSliceRBendData el,
20
+ LocalParticle* part0
21
+ ) {
22
+
23
+ double weight = DriftSliceRBendData_get_weight(el);
24
+
25
+ #ifndef XSUITE_BACKTRACK
26
+ double const length = weight * DriftSliceRBendData_get__parent_length(el); // m
27
+ #else
28
+ double const length = -weight * DriftSliceRBendData_get__parent_length(el); // m
29
+ #endif
30
+
31
+ START_PER_PARTICLE_BLOCK(part0, part);
32
+ Drift_single_particle(part, length);
33
+ END_PER_PARTICLE_BLOCK;
34
+ }
35
+
36
+ #endif
37
+
@@ -0,0 +1,37 @@
1
+ // This file is generated by _generate_slice_elements_c_code.py
2
+ // Do not edit it directly.
3
+
4
+
5
+ // copyright ############################### //
6
+ // This file is part of the Xtrack Package. //
7
+ // Copyright (c) CERN, 2023. //
8
+ // ######################################### //
9
+
10
+ #ifndef XTRACK_DRIFT_SLICE_SEXTUPOLE_H
11
+ #define XTRACK_DRIFT_SLICE_SEXTUPOLE_H
12
+
13
+ #include <headers/track.h>
14
+ #include <beam_elements/elements_src/track_drift.h>
15
+
16
+
17
+ GPUFUN
18
+ void DriftSliceSextupole_track_local_particle(
19
+ DriftSliceSextupoleData el,
20
+ LocalParticle* part0
21
+ ) {
22
+
23
+ double weight = DriftSliceSextupoleData_get_weight(el);
24
+
25
+ #ifndef XSUITE_BACKTRACK
26
+ double const length = weight * DriftSliceSextupoleData_get__parent_length(el); // m
27
+ #else
28
+ double const length = -weight * DriftSliceSextupoleData_get__parent_length(el); // m
29
+ #endif
30
+
31
+ START_PER_PARTICLE_BLOCK(part0, part);
32
+ Drift_single_particle(part, length);
33
+ END_PER_PARTICLE_BLOCK;
34
+ }
35
+
36
+ #endif
37
+
@@ -0,0 +1,37 @@
1
+ // This file is generated by _generate_slice_elements_c_code.py
2
+ // Do not edit it directly.
3
+
4
+
5
+ // copyright ############################### //
6
+ // This file is part of the Xtrack Package. //
7
+ // Copyright (c) CERN, 2023. //
8
+ // ######################################### //
9
+
10
+ #ifndef XTRACK_DRIFT_SLICE_UNIFORMSOLENOID_H
11
+ #define XTRACK_DRIFT_SLICE_UNIFORMSOLENOID_H
12
+
13
+ #include <headers/track.h>
14
+ #include <beam_elements/elements_src/track_drift.h>
15
+
16
+
17
+ GPUFUN
18
+ void DriftSliceUniformSolenoid_track_local_particle(
19
+ DriftSliceUniformSolenoidData el,
20
+ LocalParticle* part0
21
+ ) {
22
+
23
+ double weight = DriftSliceUniformSolenoidData_get_weight(el);
24
+
25
+ #ifndef XSUITE_BACKTRACK
26
+ double const length = weight * DriftSliceUniformSolenoidData_get__parent_length(el); // m
27
+ #else
28
+ double const length = -weight * DriftSliceUniformSolenoidData_get__parent_length(el); // m
29
+ #endif
30
+
31
+ START_PER_PARTICLE_BLOCK(part0, part);
32
+ Drift_single_particle(part, length);
33
+ END_PER_PARTICLE_BLOCK;
34
+ }
35
+
36
+ #endif
37
+
@@ -0,0 +1,66 @@
1
+ // copyright ############################### //
2
+ // This file is part of the Xtrack Package. //
3
+ // Copyright (c) CERN, 2023. //
4
+ // ######################################### //
5
+
6
+ #ifndef XTRACK_MAGNET_H
7
+ #define XTRACK_MAGNET_H
8
+
9
+ #include <headers/track.h>
10
+ #include <beam_elements/elements_src/track_magnet.h>
11
+ #include <beam_elements/elements_src/default_magnet_config.h>
12
+
13
+
14
+ GPUFUN
15
+ void Magnet_track_local_particle(
16
+ MagnetData el,
17
+ LocalParticle* part0
18
+ ) {
19
+
20
+ track_magnet_particles(
21
+ /*weight*/ 1.0,
22
+ /*part0*/ part0,
23
+ /*length*/ MagnetData_get_length(el),
24
+ /*order*/ MagnetData_get_order(el),
25
+ /*inv_factorial_order*/ MagnetData_get_inv_factorial_order(el),
26
+ /*knl*/ MagnetData_getp1_knl(el, 0),
27
+ /*ksl*/ MagnetData_getp1_ksl(el, 0),
28
+ /*num_multipole_kicks*/ MagnetData_get_num_multipole_kicks(el),
29
+ /*model*/ MagnetData_get_model(el),
30
+ /*default_model*/ BEND_DEFAULT_MODEL,
31
+ /*integrator*/ MagnetData_get_integrator(el),
32
+ /*default_integrator*/ BEND_DEFAULT_INTEGRATOR,
33
+ /*radiation_flag*/ MagnetData_get_radiation_flag(el),
34
+ /*radiation_flag_parent*/ 0, // not used here
35
+ /*radiation_record*/ NULL,
36
+ /*delta_taper*/ MagnetData_get_delta_taper(el),
37
+ /*h*/ MagnetData_get_h(el),
38
+ /*hxl*/ 0.,
39
+ /*k0*/ MagnetData_get_k0(el),
40
+ /*k1*/ MagnetData_get_k1(el),
41
+ /*k2*/ MagnetData_get_k2(el),
42
+ /*k3*/ MagnetData_get_k3(el),
43
+ /*k0s*/ MagnetData_get_k0s(el),
44
+ /*k1s*/ MagnetData_get_k1s(el),
45
+ /*k2s*/ MagnetData_get_k2s(el),
46
+ /*k3s*/ MagnetData_get_k3s(el),
47
+ /*ks*/ 0.,
48
+ /*dks_ds*/ 0.,
49
+ /*rbend_model*/ -1, // not rbend
50
+ /*body_active*/ 1,
51
+ /*edge_entry_active*/ MagnetData_get_edge_entry_active(el),
52
+ /*edge_exit_active*/ MagnetData_get_edge_exit_active(el),
53
+ /*edge_entry_model*/ MagnetData_get_edge_entry_model(el),
54
+ /*edge_exit_model*/ MagnetData_get_edge_exit_model(el),
55
+ /*edge_entry_angle*/ MagnetData_get_edge_entry_angle(el),
56
+ /*edge_exit_angle*/ MagnetData_get_edge_exit_angle(el),
57
+ /*edge_entry_angle_fdown*/MagnetData_get_edge_entry_angle_fdown(el),
58
+ /*edge_exit_angle_fdown*/ MagnetData_get_edge_exit_angle_fdown(el),
59
+ /*edge_entry_fint*/ MagnetData_get_edge_entry_fint(el),
60
+ /*edge_exit_fint*/ MagnetData_get_edge_exit_fint(el),
61
+ /*edge_entry_hgap*/ MagnetData_get_edge_entry_hgap(el),
62
+ /*edge_exit_hgap*/ MagnetData_get_edge_exit_hgap(el)
63
+ );
64
+ }
65
+
66
+ #endif
@@ -8,33 +8,33 @@
8
8
 
9
9
  #include <headers/track.h>
10
10
  #include <beam_elements/elements_src/track_magnet.h>
11
+ #include <beam_elements/elements_src/default_magnet_config.h>
11
12
 
12
13
 
13
14
  GPUFUN
14
15
  void Multipole_track_local_particle(MultipoleData el, LocalParticle* part0){
15
16
 
16
- SynchrotronRadiationRecordData record = NULL;
17
17
  int64_t radiation_flag = 0;
18
18
  #ifndef XTRACK_MULTIPOLE_NO_SYNRAD
19
19
  radiation_flag = MultipoleData_get_radiation_flag(el);
20
- if (radiation_flag==2){
21
- record = (SynchrotronRadiationRecordData) MultipoleData_getp_internal_record(el, part0);
22
- }
23
20
  #endif
24
21
 
25
22
  track_magnet_particles(
23
+ /*weight*/ 1.,
26
24
  /*part0*/ part0,
27
25
  /*length*/ MultipoleData_get_length(el),
28
26
  /*order*/ MultipoleData_get_order(el),
29
27
  /*inv_factorial_order*/ MultipoleData_get_inv_factorial_order(el),
30
28
  /*knl*/ MultipoleData_getp1_knl(el, 0),
31
29
  /*ksl*/ MultipoleData_getp1_ksl(el, 0),
32
- /*factor_knl_ksl*/ 1.,
33
30
  /*num_multipole_kicks*/ 1,
34
31
  /*model*/ -1, // kick only
32
+ /*default_model*/ 0, // unused
35
33
  /*integrator*/ 3, // uniform
34
+ /*default_integrator*/ 3, // unused
36
35
  /*radiation_flag*/ radiation_flag,
37
- /*radiation_record*/ record,
36
+ /*radiation_flag_parent*/ 0, // not used here
37
+ /*radiation_record*/ (SynchrotronRadiationRecordData) MultipoleData_getp_internal_record(el, part0),
38
38
  /*delta_taper*/ MultipoleData_get_delta_taper(el),
39
39
  /*h*/ 0.,
40
40
  /*hxl*/ MultipoleData_get_hxl(el),
@@ -48,6 +48,8 @@ void Multipole_track_local_particle(MultipoleData el, LocalParticle* part0){
48
48
  /*k3s*/ 0.,
49
49
  /*ks*/ 0.,
50
50
  /*dks_ds*/ 0.,
51
+ /*rbend_model*/ -1, // not rbend
52
+ /*body_active*/ 1,
51
53
  /*edge_entry_active*/ 0,
52
54
  /*edge_exit_active*/ 0,
53
55
  /*edge_entry_model*/ 0,