xtrack 0.86.2__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 (316) hide show
  1. {xtrack-0.86.2/xtrack.egg-info → xtrack-0.86.3}/PKG-INFO +1 -1
  2. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radiation_equilibrium_emittances.py +9 -9
  3. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radiation_equilibrium_emittances_thick.py +9 -9
  4. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_tapering.py +62 -1
  5. xtrack-0.86.3/xtrack/_version.py +1 -0
  6. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/line.py +4 -2
  7. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/tapering.py +36 -19
  8. {xtrack-0.86.2 → xtrack-0.86.3/xtrack.egg-info}/PKG-INFO +1 -1
  9. xtrack-0.86.2/xtrack/_version.py +0 -1
  10. {xtrack-0.86.2 → xtrack-0.86.3}/LICENSE +0 -0
  11. {xtrack-0.86.2 → xtrack-0.86.3}/MANIFEST.in +0 -0
  12. {xtrack-0.86.2 → xtrack-0.86.3}/README.md +0 -0
  13. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/__init__.py +0 -0
  14. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/base_classes.py +0 -0
  15. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/BB6D.py +0 -0
  16. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  17. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/__init__.py +0 -0
  18. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/beambeam.py +0 -0
  19. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/boost.py +0 -0
  20. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  21. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  22. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/qgauss.py +0 -0
  23. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/slicing.py +0 -0
  24. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/spacecharge.py +0 -0
  25. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/elements.py +0 -0
  26. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/line.py +0 -0
  27. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/mathlibs.py +0 -0
  28. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/particles.py +0 -0
  29. {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/temp_pyparticles.py +0 -0
  30. {xtrack-0.86.2 → xtrack-0.86.3}/pyproject.toml +0 -0
  31. {xtrack-0.86.2 → xtrack-0.86.3}/setup.cfg +0 -0
  32. {xtrack-0.86.2 → xtrack-0.86.3}/setup.py +0 -0
  33. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_acceleration.py +0 -0
  34. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_amplitude_detuning.py +0 -0
  35. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_aperture_table.py +0 -0
  36. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  37. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_apertures.py +0 -0
  38. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_attr_replicas_and_slices.py +0 -0
  39. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_bucket_with_ref_energy_change.py +0 -0
  40. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_cavity_absolute_time.py +0 -0
  41. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_chromatic_functions_vs_madx.py +0 -0
  42. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_coasting.py +0 -0
  43. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_collective_tracker.py +0 -0
  44. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_collimation.py +0 -0
  45. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_electron_cooler.py +0 -0
  46. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_element_characterization_functions.py +0 -0
  47. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_element_internal_record.py +0 -0
  48. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_elements.py +0 -0
  49. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_elements_classflags.py +0 -0
  50. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_elements_thick.py +0 -0
  51. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_environment.py +0 -0
  52. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  53. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  54. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_footprint.py +0 -0
  55. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_freeze_longitudinal.py +0 -0
  56. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_full_rings.py +0 -0
  57. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_h6_sps_beamline.py +0 -0
  58. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_hvkick.py +0 -0
  59. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_ions.py +0 -0
  60. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_legacy_multiline_to_env.py +0 -0
  61. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_lhc_env.py +0 -0
  62. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_lhc_match_phase_15.py +0 -0
  63. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_line.py +0 -0
  64. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_load.py +0 -0
  65. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_lumi.py +0 -0
  66. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_mad_writer.py +0 -0
  67. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_madloader.py +0 -0
  68. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_madnginterface.py +0 -0
  69. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_magnet.py +0 -0
  70. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_and_track_from_element.py +0 -0
  71. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_coupling_knob.py +0 -0
  72. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_nested.py +0 -0
  73. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_optics_and_ip_knob.py +0 -0
  74. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
  75. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_orbit_bump.py +0 -0
  76. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_tune_chroma_cminus.py +0 -0
  77. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_monitor.py +0 -0
  78. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_multi_bunch_gauss.py +0 -0
  79. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_multiline.py +0 -0
  80. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_multisetter.py +0 -0
  81. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_multispecies.py +0 -0
  82. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_native_madloader.py +0 -0
  83. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_optimize_for_tracking.py +0 -0
  84. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_particles.py +0 -0
  85. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_particles_basics.py +0 -0
  86. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_particles_pdg.py +0 -0
  87. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
  88. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_pipeline.py +0 -0
  89. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_prebuild_kernels.py +0 -0
  90. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_ps_against_ptc.py +0 -0
  91. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_ps_multiturn_twiss.py +0 -0
  92. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_psb_chicane.py +0 -0
  93. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_pyht_interface.py +0 -0
  94. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radial_steering.py +0 -0
  95. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radiation.py +0 -0
  96. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radiation_integrals.py +0 -0
  97. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_random_gen.py +0 -0
  98. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_random_gen_exp.py +0 -0
  99. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_random_gen_gauss.py +0 -0
  100. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_random_gen_ruth.py +0 -0
  101. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_rbend_rbarc.py +0 -0
  102. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_rf_track.py +0 -0
  103. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_rotation_signs.py +0 -0
  104. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_second_order_taylor_map.py +0 -0
  105. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_seeds.py +0 -0
  106. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_slice_and_insert_with_replicas.py +0 -0
  107. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_slice_elements.py +0 -0
  108. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_slicing.py +0 -0
  109. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  110. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
  111. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_spacecharge_in_ring.py +0 -0
  112. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_spin.py +0 -0
  113. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_sps_thick.py +0 -0
  114. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_survey.py +0 -0
  115. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_thick_lhc.py +0 -0
  116. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_tilt_shifts.py +0 -0
  117. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_tracker.py +0 -0
  118. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_trajectory_correcton.py +0 -0
  119. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_twiss.py +0 -0
  120. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_twiss_vs_madx_psb.py +0 -0
  121. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_vs_madx.py +0 -0
  122. {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_xmask_orbit_correction.py +0 -0
  123. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/__init__.py +0 -0
  124. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/__init__.py +0 -0
  125. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  126. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  127. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  128. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/lhc_match/__init__.py +0 -0
  129. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  130. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  131. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  132. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/aperture_meas.py +0 -0
  133. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/base_element.py +0 -0
  134. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/__init__.py +0 -0
  135. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures.py +0 -0
  136. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  137. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  138. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  139. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  140. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  141. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  142. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/beam_interaction.py +0 -0
  143. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements.py +0 -0
  144. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/bend.h +0 -0
  145. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  146. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/default_magnet_config.h +0 -0
  147. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
  148. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  149. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift.h +0 -0
  150. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  151. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
  152. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
  153. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
  154. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
  155. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
  156. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +0 -0
  157. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
  158. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/elens.h +0 -0
  159. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  160. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  161. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
  162. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  163. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet.h +0 -0
  164. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
  165. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
  166. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
  167. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/marker.h +0 -0
  168. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/multipole.h +0 -0
  169. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
  170. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  171. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/octupole.h +0 -0
  172. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
  173. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/rbend.h +0 -0
  174. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  175. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  176. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  177. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
  178. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  179. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  180. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/slnd.h +0 -0
  181. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  182. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
  183. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
  184. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
  185. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
  186. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
  187. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +0 -0
  188. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
  189. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
  190. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
  191. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
  192. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -0
  193. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -0
  194. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
  195. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -0
  196. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -0
  197. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
  198. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
  199. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
  200. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
  201. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -0
  202. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -0
  203. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -0
  204. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -0
  205. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_cavity.h +0 -0
  206. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  207. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  208. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
  209. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
  210. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
  211. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
  212. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
  213. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet.h +0 -0
  214. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
  215. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
  216. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
  217. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
  218. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
  219. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  220. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  221. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  222. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
  223. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
  224. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  225. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/variable_solenoid.h +0 -0
  226. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  227. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/wire.h +0 -0
  228. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  229. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  230. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  231. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  232. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/exciter.py +0 -0
  233. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/magnets.py +0 -0
  234. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/rft_element.py +0 -0
  235. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/slice_elements_edge.py +0 -0
  236. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/slice_elements_thick.py +0 -0
  237. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/slice_elements_thin.py +0 -0
  238. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/environment.py +0 -0
  239. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/footprint.py +0 -0
  240. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/general.py +0 -0
  241. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/atomicadd.h +0 -0
  242. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/checks.h +0 -0
  243. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/constants.h +0 -0
  244. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/particle_states.h +0 -0
  245. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/synrad_spectrum.h +0 -0
  246. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/track.h +0 -0
  247. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/internal_record.py +0 -0
  248. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/json.py +0 -0
  249. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/linear_normal_form.py +0 -0
  250. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/load.py +0 -0
  251. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/loss_location_refinement/__init__.py +0 -0
  252. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  253. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/lumi.py +0 -0
  254. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_loader.py +0 -0
  255. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_parser/__init__.py +0 -0
  256. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_parser/loader.py +0 -0
  257. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_parser/madx.lark +0 -0
  258. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_parser/parse.py +0 -0
  259. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_writer.py +0 -0
  260. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/madng_interface.py +0 -0
  261. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/match.py +0 -0
  262. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/__init__.py +0 -0
  263. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_position_monitor.h +0 -0
  264. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_position_monitor.py +0 -0
  265. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_profile_monitor.h +0 -0
  266. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_profile_monitor.py +0 -0
  267. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_size_monitor.h +0 -0
  268. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_size_monitor.py +0 -0
  269. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/last_turns_monitor.h +0 -0
  270. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/last_turns_monitor.py +0 -0
  271. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/particles_monitor.h +0 -0
  272. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/particles_monitor.py +0 -0
  273. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multiline.py +0 -0
  274. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multiline_legacy/__init__.py +0 -0
  275. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
  276. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multiline_legacy/shared_knobs.py +0 -0
  277. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multisetter/__init__.py +0 -0
  278. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multisetter/multisetter.py +0 -0
  279. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/__init__.py +0 -0
  280. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/constants.py +0 -0
  281. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/masses.py +0 -0
  282. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/particles.py +0 -0
  283. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/pdg.py +0 -0
  284. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/rng_src/base_rng.h +0 -0
  285. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/rng_src/particles_rng.h +0 -0
  286. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/pipeline/__init__.py +0 -0
  287. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/pipeline/core.py +0 -0
  288. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/pipeline/manager.py +0 -0
  289. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/pipeline/multitracker.py +0 -0
  290. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/progress_indicator.py +0 -0
  291. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/__init__.py +0 -0
  292. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_generators.py +0 -0
  293. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/exponential.h +0 -0
  294. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  295. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/normal.h +0 -0
  296. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/rutherford.h +0 -0
  297. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/uniform.h +0 -0
  298. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/uniform_accurate.h +0 -0
  299. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/slicing.py +0 -0
  300. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/survey.py +0 -0
  301. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/svgutils/__init__.py +0 -0
  302. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/svgutils/parser.py +0 -0
  303. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/svgutils/path.py +0 -0
  304. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/svgutils/svgutils.py +0 -0
  305. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/synctime.py +0 -0
  306. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/targets.py +0 -0
  307. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/tracker.py +0 -0
  308. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/tracker_data.py +0 -0
  309. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/tracker_src/tracker.h +0 -0
  310. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/trajectory_correction.py +0 -0
  311. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/twiss.py +0 -0
  312. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/twissplot.py +0 -0
  313. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack.egg-info/SOURCES.txt +0 -0
  314. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack.egg-info/dependency_links.txt +0 -0
  315. {xtrack-0.86.2 → xtrack-0.86.3}/xtrack.egg-info/requires.txt +0 -0
  316. {xtrack-0.86.2 → 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.2
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'
@@ -3232,7 +3232,7 @@ class Line:
3232
3232
  self, element=element, update_every=update_every, **kwargs
3233
3233
  )
3234
3234
 
3235
- def compensate_radiation_energy_loss(self, delta0=0, rtol_eneloss=1e-10,
3235
+ def compensate_radiation_energy_loss(self, delta0='zero_mean', rtol_eneloss=1e-10,
3236
3236
  max_iter=100, **kwargs):
3237
3237
 
3238
3238
  """
@@ -3242,7 +3242,9 @@ class Line:
3242
3242
  Parameters
3243
3243
  ----------
3244
3244
  delta0: float
3245
- Initial energy deviation.
3245
+ Initial energy deviation. If `delta0='zero_mean'` is specified, the
3246
+ compensation is done such that the mean energy deviation along the
3247
+ ring is zero.
3246
3248
  rtol_eneloss: float
3247
3249
  Relative tolerance on energy loss.
3248
3250
  max_iter: int
@@ -6,7 +6,7 @@ from .general import _print
6
6
  import xtrack as xt
7
7
  import xobjects as xo
8
8
 
9
- def compensate_radiation_energy_loss(line, delta0=0, rtol_eneloss=1e-12,
9
+ def compensate_radiation_energy_loss(line, delta0='zeto_mean', rtol_eneloss=1e-12,
10
10
  max_iter=100, verbose=True,
11
11
  co_search_at=None,
12
12
  **kwargs):
@@ -37,7 +37,7 @@ def compensate_radiation_energy_loss(line, delta0=0, rtol_eneloss=1e-12,
37
37
 
38
38
  # Check whether compensation is needed
39
39
  p_test = particle_on_co.copy()
40
- p_test.delta = delta0
40
+ p_test.delta = line.attr._cache['delta_taper'].multisetter.get_values()[0]
41
41
  line.track(p_test, turn_by_turn_monitor='ONE_TURN_EBE')
42
42
  mon = line.record_last_track
43
43
  eloss = -(mon.ptau[0, -1] - mon.ptau[0, 0]) * p_test.p0c[0]
@@ -67,28 +67,45 @@ def compensate_radiation_energy_loss(line, delta0=0, rtol_eneloss=1e-12,
67
67
  line.config.XTRACK_MULTIPOLE_TAPER = True
68
68
  line.config.XTRACK_DIPOLEEDGE_TAPER = True
69
69
 
70
- i_iter = 0
71
- while True:
72
- p_test = particle_on_co.copy()
73
- p_test.delta = delta0
74
- line.track(p_test, turn_by_turn_monitor='ONE_TURN_EBE')
75
- mon = line.record_last_track
70
+ if delta0 == 'zero_mean':
71
+ num_rounds = 2
72
+ delta_start = 0
73
+ else:
74
+ num_rounds = 1
75
+ delta_start = delta0
76
76
 
77
- if record_iterations:
78
- line._tapering_iterations.append(mon)
77
+ for round in range(num_rounds):
78
+ i_iter = 0
79
79
 
80
- eloss = -(mon.ptau[0, -1] - mon.ptau[0, 0]) * p_test.p0c[0]
81
- if verbose: _print(f"Energy loss: {eloss:.3f} eV ")#, end='\r', flush=True)
80
+ while True:
82
81
 
83
- if eloss < p_test.energy0[0] * rtol_eneloss:
84
- break
82
+ if round == 1 and delta0 == 'zero_mean':
83
+ delta_ave = xt.twiss.trapz(delta, ss) / ss[-1]
84
+ delta_start -= delta_ave
85
85
 
86
- v_setter.set_values(v_setter.get_values()
87
- + eloss * eneloss_partitioning)
86
+ p_test = particle_on_co.copy()
87
+ p_test.delta = delta_start
88
+ line.track(p_test, turn_by_turn_monitor='ONE_TURN_EBE')
89
+ mon = line.record_last_track
88
90
 
89
- i_iter += 1
90
- if i_iter > max_iter:
91
- raise RuntimeError("Maximum number of iterations reached")
91
+ if record_iterations:
92
+ line._tapering_iterations.append(mon)
93
+
94
+ eloss = -(mon.ptau[0, -1] - mon.ptau[0, 0]) * p_test.p0c[0]
95
+ if verbose: _print(f"Energy loss: {eloss:_.3f} eV ")#, end='\r', flush=True)
96
+
97
+ if np.abs(eloss) < p_test.energy0[0] * rtol_eneloss:
98
+ break
99
+
100
+ v_setter.set_values(v_setter.get_values()
101
+ + eloss * eneloss_partitioning)
102
+
103
+ delta = mon.delta[0, :-1]
104
+ ss = mon.s[0, :-1]
105
+
106
+ i_iter += 1
107
+ if i_iter > max_iter:
108
+ raise RuntimeError("Maximum number of iterations reached")
92
109
  if verbose: _print()
93
110
  delta_taper_full = 0.5*(mon.delta[0, :-1] + mon.delta[0, 1:]) # last point is added by the monitor
94
111
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.86.2
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
@@ -1 +0,0 @@
1
- __version__ = '0.86.2'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes