xtrack 0.83.4__tar.gz → 0.84.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 (308) hide show
  1. {xtrack-0.83.4/xtrack.egg-info → xtrack-0.84.0}/PKG-INFO +1 -1
  2. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_madloader.py +9 -3
  3. xtrack-0.84.0/xtrack/_version.py +1 -0
  4. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +3 -0
  5. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/line.py +2 -2
  6. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/tracker.py +0 -4
  7. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/twiss.py +187 -0
  8. {xtrack-0.83.4 → xtrack-0.84.0/xtrack.egg-info}/PKG-INFO +1 -1
  9. xtrack-0.83.4/xtrack/_version.py +0 -1
  10. {xtrack-0.83.4 → xtrack-0.84.0}/LICENSE +0 -0
  11. {xtrack-0.83.4 → xtrack-0.84.0}/MANIFEST.in +0 -0
  12. {xtrack-0.83.4 → xtrack-0.84.0}/README.md +0 -0
  13. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/__init__.py +0 -0
  14. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/base_classes.py +0 -0
  15. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/BB6D.py +0 -0
  16. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  17. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/__init__.py +0 -0
  18. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/beambeam.py +0 -0
  19. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/boost.py +0 -0
  20. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  21. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  22. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/qgauss.py +0 -0
  23. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/slicing.py +0 -0
  24. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/be_beamfields/spacecharge.py +0 -0
  25. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/elements.py +0 -0
  26. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/line.py +0 -0
  27. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/mathlibs.py +0 -0
  28. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/particles.py +0 -0
  29. {xtrack-0.83.4 → xtrack-0.84.0}/ducktrack/temp_pyparticles.py +0 -0
  30. {xtrack-0.83.4 → xtrack-0.84.0}/pyproject.toml +0 -0
  31. {xtrack-0.83.4 → xtrack-0.84.0}/setup.cfg +0 -0
  32. {xtrack-0.83.4 → xtrack-0.84.0}/setup.py +0 -0
  33. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_acceleration.py +0 -0
  34. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_amplitude_detuning.py +0 -0
  35. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_aperture_table.py +0 -0
  36. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  37. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_apertures.py +0 -0
  38. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_attr_replicas_and_slices.py +0 -0
  39. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_bucket_with_ref_energy_change.py +0 -0
  40. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_cavity_absolute_time.py +0 -0
  41. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_chromatic_functions_vs_madx.py +0 -0
  42. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_coasting.py +0 -0
  43. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_collective_tracker.py +0 -0
  44. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_collimation.py +0 -0
  45. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_electron_cooler.py +0 -0
  46. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_element_characterization_functions.py +0 -0
  47. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_element_internal_record.py +0 -0
  48. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_elements.py +0 -0
  49. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_elements_classflags.py +0 -0
  50. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_elements_thick.py +0 -0
  51. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_environment.py +0 -0
  52. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  53. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  54. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_footprint.py +0 -0
  55. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_freeze_longitudinal.py +0 -0
  56. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_full_rings.py +0 -0
  57. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_h6_sps_beamline.py +0 -0
  58. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_hvkick.py +0 -0
  59. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_ions.py +0 -0
  60. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_legacy_multiline_to_env.py +0 -0
  61. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_lhc_env.py +0 -0
  62. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_lhc_match_phase_15.py +0 -0
  63. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_line.py +0 -0
  64. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_lumi.py +0 -0
  65. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_mad_writer.py +0 -0
  66. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_madnginterface.py +0 -0
  67. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_magnet.py +0 -0
  68. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_match_and_track_from_element.py +0 -0
  69. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_match_coupling_knob.py +0 -0
  70. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_match_nested.py +0 -0
  71. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_match_optics_and_ip_knob.py +0 -0
  72. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
  73. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_match_orbit_bump.py +0 -0
  74. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_match_tune_chroma_cminus.py +0 -0
  75. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_monitor.py +0 -0
  76. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_multi_bunch_gauss.py +0 -0
  77. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_multiline.py +0 -0
  78. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_multisetter.py +0 -0
  79. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_multispecies.py +0 -0
  80. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_native_madloader.py +0 -0
  81. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_optimize_for_tracking.py +0 -0
  82. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_particles.py +0 -0
  83. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_particles_basics.py +0 -0
  84. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_particles_pdg.py +0 -0
  85. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
  86. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_pipeline.py +0 -0
  87. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_prebuild_kernels.py +0 -0
  88. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_ps_against_ptc.py +0 -0
  89. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_ps_multiturn_twiss.py +0 -0
  90. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_psb_chicane.py +0 -0
  91. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_pyht_interface.py +0 -0
  92. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_radial_steering.py +0 -0
  93. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_radiation.py +0 -0
  94. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_radiation_equilibrium_emittances.py +0 -0
  95. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_radiation_equilibrium_emittances_thick.py +0 -0
  96. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_random_gen.py +0 -0
  97. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_random_gen_exp.py +0 -0
  98. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_random_gen_gauss.py +0 -0
  99. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_random_gen_ruth.py +0 -0
  100. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_rbend_rbarc.py +0 -0
  101. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_rf_track.py +0 -0
  102. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_rotation_signs.py +0 -0
  103. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_second_order_taylor_map.py +0 -0
  104. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_seeds.py +0 -0
  105. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_slice_and_insert_with_replicas.py +0 -0
  106. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_slice_elements.py +0 -0
  107. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_slicing.py +0 -0
  108. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  109. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_spacecharge_in_ring.py +0 -0
  110. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_spin.py +0 -0
  111. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_sps_thick.py +0 -0
  112. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_survey.py +0 -0
  113. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_tapering.py +0 -0
  114. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_thick_lhc.py +0 -0
  115. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_tilt_shifts.py +0 -0
  116. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_tracker.py +0 -0
  117. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_trajectory_correcton.py +0 -0
  118. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_twiss.py +0 -0
  119. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_twiss_vs_madx_psb.py +0 -0
  120. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_vs_madx.py +0 -0
  121. {xtrack-0.83.4 → xtrack-0.84.0}/tests/test_xmask_orbit_correction.py +0 -0
  122. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/__init__.py +0 -0
  123. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/_temp/__init__.py +0 -0
  124. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  125. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  126. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  127. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/_temp/lhc_match/__init__.py +0 -0
  128. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  129. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  130. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  131. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/aperture_meas.py +0 -0
  132. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/base_element.py +0 -0
  133. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/__init__.py +0 -0
  134. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/apertures.py +0 -0
  135. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  136. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  137. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  138. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  139. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  140. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  141. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/beam_interaction.py +0 -0
  142. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements.py +0 -0
  143. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/bend.h +0 -0
  144. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  145. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
  146. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  147. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/drift.h +0 -0
  148. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  149. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
  150. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
  151. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
  152. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
  153. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
  154. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
  155. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/elens.h +0 -0
  156. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  157. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  158. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/magnet.h +0 -0
  159. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
  160. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
  161. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
  162. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/marker.h +0 -0
  163. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/multipole.h +0 -0
  164. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
  165. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  166. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/octupole.h +0 -0
  167. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
  168. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/rbend.h +0 -0
  169. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  170. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  171. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  172. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
  173. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  174. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  175. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
  176. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  177. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
  178. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
  179. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
  180. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
  181. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
  182. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
  183. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
  184. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
  185. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
  186. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
  187. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
  188. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -0
  189. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -0
  190. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
  191. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -0
  192. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -0
  193. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
  194. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
  195. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
  196. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
  197. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -0
  198. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -0
  199. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_bend.h +0 -0
  200. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_cavity.h +0 -0
  201. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  202. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  203. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
  204. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
  205. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_magnet.h +0 -0
  206. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
  207. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
  208. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
  209. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
  210. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
  211. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_multipolar_components.h +0 -0
  212. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
  213. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -0
  214. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
  215. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  216. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  217. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  218. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
  219. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
  220. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  221. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  222. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/wire.h +0 -0
  223. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  224. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  225. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  226. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  227. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/exciter.py +0 -0
  228. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/magnets.py +0 -0
  229. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/rft_element.py +0 -0
  230. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/slice_elements.py +0 -0
  231. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/beam_elements/slice_elements_thick.py +0 -0
  232. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/environment.py +0 -0
  233. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/footprint.py +0 -0
  234. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/general.py +0 -0
  235. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/headers/atomicadd.h +0 -0
  236. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/headers/checks.h +0 -0
  237. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/headers/constants.h +0 -0
  238. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/headers/particle_states.h +0 -0
  239. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/headers/synrad_spectrum.h +0 -0
  240. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/headers/track.h +0 -0
  241. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/internal_record.py +0 -0
  242. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/json.py +0 -0
  243. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/linear_normal_form.py +0 -0
  244. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/loss_location_refinement/__init__.py +0 -0
  245. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  246. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/lumi.py +0 -0
  247. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/mad_loader.py +0 -0
  248. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/mad_parser/__init__.py +0 -0
  249. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/mad_parser/loader.py +0 -0
  250. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/mad_parser/madx.lark +0 -0
  251. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/mad_parser/parse.py +0 -0
  252. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/mad_writer.py +0 -0
  253. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/madng_interface.py +0 -0
  254. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/match.py +0 -0
  255. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/__init__.py +0 -0
  256. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/beam_position_monitor.h +0 -0
  257. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/beam_position_monitor.py +0 -0
  258. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/beam_profile_monitor.h +0 -0
  259. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/beam_profile_monitor.py +0 -0
  260. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/beam_size_monitor.h +0 -0
  261. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/beam_size_monitor.py +0 -0
  262. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/last_turns_monitor.h +0 -0
  263. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/last_turns_monitor.py +0 -0
  264. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/particles_monitor.h +0 -0
  265. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/monitors/particles_monitor.py +0 -0
  266. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/multiline.py +0 -0
  267. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/multiline_legacy/__init__.py +0 -0
  268. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
  269. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/multiline_legacy/shared_knobs.py +0 -0
  270. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/multisetter/__init__.py +0 -0
  271. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/multisetter/multisetter.py +0 -0
  272. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/particles/__init__.py +0 -0
  273. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/particles/constants.py +0 -0
  274. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/particles/masses.py +0 -0
  275. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/particles/particles.py +0 -0
  276. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/particles/pdg.py +0 -0
  277. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/particles/rng_src/base_rng.h +0 -0
  278. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/particles/rng_src/particles_rng.h +0 -0
  279. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/pipeline/__init__.py +0 -0
  280. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/pipeline/core.py +0 -0
  281. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/pipeline/manager.py +0 -0
  282. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/pipeline/multitracker.py +0 -0
  283. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/progress_indicator.py +0 -0
  284. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/random/__init__.py +0 -0
  285. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/random/random_generators.py +0 -0
  286. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/random/random_src/exponential.h +0 -0
  287. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  288. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/random/random_src/normal.h +0 -0
  289. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/random/random_src/rutherford.h +0 -0
  290. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/random/random_src/uniform.h +0 -0
  291. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/random/random_src/uniform_accurate.h +0 -0
  292. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/slicing.py +0 -0
  293. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/survey.py +0 -0
  294. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/svgutils/__init__.py +0 -0
  295. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/svgutils/parser.py +0 -0
  296. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/svgutils/path.py +0 -0
  297. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/svgutils/svgutils.py +0 -0
  298. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/synctime.py +0 -0
  299. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/tapering.py +0 -0
  300. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/targets.py +0 -0
  301. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/tracker_data.py +0 -0
  302. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/tracker_src/tracker.h +0 -0
  303. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/trajectory_correction.py +0 -0
  304. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack/twissplot.py +0 -0
  305. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack.egg-info/SOURCES.txt +0 -0
  306. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack.egg-info/dependency_links.txt +0 -0
  307. {xtrack-0.83.4 → xtrack-0.84.0}/xtrack.egg-info/requires.txt +0 -0
  308. {xtrack-0.83.4 → xtrack-0.84.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.83.4
3
+ Version: 0.84.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
@@ -304,11 +304,11 @@ def test_matrix():
304
304
 
305
305
  mad.input("""
306
306
  a11=1;
307
- m1: matrix,
307
+ mat: matrix,l=0.4,
308
308
  rm11:=a11,rm12=2,rm21=3,rm22=4,
309
309
  kick1=0.1,kick2=0.2,kick3=0.3;
310
310
 
311
- ss: sequence, l=1; m1: m1, at=0; endsequence;
311
+ ss: sequence, l=1; mm: mat, at=0.3; endsequence;
312
312
 
313
313
  beam; use, sequence=ss;
314
314
  """)
@@ -316,7 +316,13 @@ def test_matrix():
316
316
  line = MadLoader(mad.sequence.ss).make_line()
317
317
  line = MadLoader(mad.sequence.ss, enable_expressions=True).make_line()
318
318
  line.vars['a11'] = 2.0
319
- assert line[1].m1[0, 0] == line.vars['a11']._value
319
+ assert line['mm'].m1[0, 0] == line.vars['a11']._value
320
+
321
+ line.reset_s_at_end_turn
322
+
323
+ part = xt.Particles()
324
+ line['mm'].track(part)
325
+ xo.assert_allclose(part.s, 0.4, atol=1e-12, rtol=0)
320
326
 
321
327
 
322
328
  def test_srotation():
@@ -0,0 +1 @@
1
+ __version__ = '0.84.0'
@@ -12,6 +12,8 @@
12
12
  GPUFUN
13
13
  void FirstOrderTaylorMap_track_local_particle(FirstOrderTaylorMapData el, LocalParticle* part0){
14
14
 
15
+ double const length = FirstOrderTaylorMapData_get_length(el);
16
+
15
17
  START_PER_PARTICLE_BLOCK(part0, part);
16
18
  double x0 = LocalParticle_get_x(part);
17
19
  double px0 = LocalParticle_get_px(part);
@@ -66,6 +68,7 @@ void FirstOrderTaylorMap_track_local_particle(FirstOrderTaylorMapData el, LocalP
66
68
 
67
69
  LocalParticle_update_ptau(part, ptau);
68
70
  LocalParticle_set_zeta(part,tau*beta0);
71
+ LocalParticle_add_to_s(part, length);
69
72
  END_PER_PARTICLE_BLOCK;
70
73
  }
71
74
 
@@ -2249,7 +2249,7 @@ class Line:
2249
2249
  """Slice the line so that positions in s never fall inside an element."""
2250
2250
 
2251
2251
  if not self._has_valid_tracker():
2252
- self.build_tracker() # To resolve replicase and slices
2252
+ self.build_tracker(compile=False) # To resolve replicas and slices
2253
2253
 
2254
2254
  self.discard_tracker()
2255
2255
 
@@ -3100,7 +3100,7 @@ class Line:
3100
3100
  raise NameError('mode is deprecated, use model instead')
3101
3101
 
3102
3102
  if not self._has_valid_tracker():
3103
- self.build_tracker()
3103
+ self.build_tracker(compile=False)
3104
3104
 
3105
3105
  assert model in [None, 'mean', 'quantum']
3106
3106
  assert model_beamstrahlung in [None, 'mean', 'quantum']
@@ -61,10 +61,6 @@ class Tracker:
61
61
  raise ValueError("`enable_pipeline_hold` is not implemented in "
62
62
  "non-collective mode")
63
63
 
64
- if not compile and self.iscollective:
65
- raise NotImplementedError("Skip compilation is not implemented in "
66
- "collective mode")
67
-
68
64
  if local_particle_src is None:
69
65
  local_particle_src = xt.Particles.gen_local_particle_api()
70
66
 
@@ -8,6 +8,8 @@ import logging
8
8
  import io
9
9
  import json
10
10
  from functools import partial
11
+ from typing import Literal
12
+
11
13
  import numpy as np
12
14
  from scipy.constants import c as clight
13
15
  from scipy.constants import hbar
@@ -3241,6 +3243,191 @@ class TwissTable(Table):
3241
3243
  **kwargs,
3242
3244
  )
3243
3245
 
3246
+ def get_ibs_and_synrad_emittance_evolution(
3247
+ self,
3248
+ formalism: Literal["Nagaitsev", "Bjorken-Mtingwa", "B&M"],
3249
+ total_beam_intensity: int,
3250
+ gemitt_x: float | None = None,
3251
+ nemitt_x: float | None = None,
3252
+ gemitt_y: float | None = None,
3253
+ nemitt_y: float | None = None,
3254
+ gemitt_zeta: float | None = None,
3255
+ nemitt_zeta: float | None = None,
3256
+ overwrite_sigma_zeta: float | None = None,
3257
+ overwrite_sigma_delta: float | None = None,
3258
+ emittance_coupling_factor: float = 0,
3259
+ emittance_constraint: Literal["coupling", "excitation"] | None = "coupling",
3260
+ rtol: float = 1e-6,
3261
+ tstep: float | None = None,
3262
+ max_steps: float | None = None,
3263
+ verbose: bool = True,
3264
+ **kwargs,
3265
+ ) -> Table:
3266
+ """
3267
+ Compute the evolution of emittances due to Synchrotron Radiation
3268
+ and Intra-Beam Scattering until convergence to equilibrium values.
3269
+ The equilibrium state is determined by an iterative process which
3270
+ consists in computing the IBS growth rates and the emittance time
3271
+ derivatives, then computing the emittances at the next time step,
3272
+ potentially including the effect of transverse constraints, and
3273
+ checking for convergence. The convergence criteria can be chosen
3274
+ by the user.
3275
+
3276
+ Transverse emittances can be constrained to follow two scenarios:
3277
+ - An emittance exchange originating from betatron coupling.
3278
+ - A vertical emittance originating from an excitation.
3279
+
3280
+ The impact from the longitudinal impedance (e.g. bunch lengthening
3281
+ or microwave instability) can be accounted for by specifying the RMS
3282
+ bunch length and momentum spread.
3283
+
3284
+ Notes
3285
+ -----
3286
+ It is required that radiation has been configured in the line,
3287
+ and that this `TwissTable` holds information on the equilibrium
3288
+ state from Synchrotron Radiation. This means calling first
3289
+ `line.configure_radiation(model="mean")` and then the `.twiss()`
3290
+ method with `eneloss_and_damping=True`.
3291
+
3292
+ Warning
3293
+ -------
3294
+ If the user does not provide a starting emittance, the program
3295
+ defaults to using the SR equilibrium value from this `TwissTable`,
3296
+ which is a reasonable defaults for light sources. If a constraint
3297
+ is provided via `emittance_constraint` the starting emittances are
3298
+ re-computed to respect that constraint (this is logged to the user).
3299
+
3300
+ If the user does provide starting emittances **and** a constraint, it
3301
+ is up to the user to make sure these provided values are consistent
3302
+ with the provided constraint!
3303
+
3304
+ Parameters
3305
+ ----------
3306
+ formalism : str
3307
+ Which formalism to use for the computation of the IBS growth rates.
3308
+ Can be ``Nagaitsev`` or ``Bjorken-Mtingwa`` (also accepts ``B&M``),
3309
+ case-insensitively.
3310
+ total_beam_intensity : int
3311
+ The bunch intensity, in [particles per bunch].
3312
+ gemitt_x : float, optional
3313
+ Starting horizontal geometric emittance, in [m]. If neither this nor
3314
+ the normalized one is provided, the SR equilibrium value from this
3315
+ `TwissTable` is used.
3316
+ nemitt_x : float, optional
3317
+ Starting horizontal normalized emittance, in [m]. If neither this nor
3318
+ the geometric one is provided, the SR equilibrium value from this
3319
+ `TwissTable` is used.
3320
+ gemitt_y : float, optional
3321
+ Starting vertical geometric emittance, in [m]. If neither this nor
3322
+ the normalized one is provided, the SR equilibrium value from this
3323
+ `TwissTable` is used.
3324
+ nemitt_y : float, optional
3325
+ Starting vertical normalized emittance, in [m]. If neither this nor
3326
+ the geometric one is provided, the SR equilibrium value from this
3327
+ `TwissTable` is used.
3328
+ gemitt_zeta : float, optional
3329
+ Starting longitudinal geometric emittance, in [m]. If neither this
3330
+ nor the normalized one is provided, the SR equilibrium value from
3331
+ this `TwissTable` is used.
3332
+ nemitt_zeta : float, optional
3333
+ Starting longitudinal normalized emittance, in [m]. If neither this
3334
+ nor the geometric one is provided, the SR equilibrium value from this
3335
+ `TwissTable` is used.
3336
+ emittance_coupling_factor : float, optional
3337
+ The ratio of perturbed transverse emittances due to betatron coupling.
3338
+ If a value is provided, it is taken into account for the evolution of
3339
+ emittances and induces an emittance sharing between the two planes.
3340
+ See the next parameter for possible scenarios and how this value is
3341
+ used. Defaults to 0.
3342
+ emittance_constraint : str, optional
3343
+ If an accepted value is provided, enforces constraints on the transverse
3344
+ emittances. Can be either "coupling" or "excitation", case-insensitively.
3345
+ Defaults to "coupling".
3346
+ - If `coupling`, vertical emittance is the result of linear coupling. In
3347
+ this case both the vertical and horizontal emittances are altered and
3348
+ determined based on the value of `emittance_coupling_factor` and the
3349
+ damping partition numbers. If the horizontal and vertical partition
3350
+ numbers are equal then the total transverse emittance is preserved.
3351
+ - If `excitation`, vertical emittance is the result of an excitation
3352
+ (e.g. from a feedback system) and is determined from the horizontal
3353
+ emittance based on the value of `emittance_coupling_factor`. In this
3354
+ case the total transverse emittance is NOT preserved.
3355
+ Providing `None` allows one to study a scenario without constraint. Note
3356
+ that as `emittance_coupling_factor` defaults to 0, the constraint has no
3357
+ effect unless a non-zero factor is provided.
3358
+ overwrite_sigma_zeta : float, optional
3359
+ The RMS bunch length, in [m]. If provided, overwrites the one computed from
3360
+ the longitudinal emittance and forces a recompute of the longitudinal
3361
+ emittance. Defaults to `None`.
3362
+ overwrite_sigma_delta : float, optional
3363
+ The RMS momentum spread of the bunch. If provided, overwrites the one
3364
+ computed from the longitudinal emittance and forces a recompute of the
3365
+ longitudinal emittance. Defaults to `None`.
3366
+ rtol : float, optional
3367
+ Relative tolerance to determine when convergence is reached: if the relative
3368
+ difference between the computed emittances and those at the previous step is
3369
+ below `rtol`, then convergence is considered achieved. Defaults to 1e-6.
3370
+ tstep : float, optional
3371
+ Time step to use for each iteration, in [s]. If not provided, an
3372
+ adaptive time step is computed based on the IBS growth rates and
3373
+ the damping constants. Defaults to `None`.
3374
+ max_steps : float, optional
3375
+ The maximum number of iterations to perform before stopping the iterative
3376
+ process. If not provided, the process continues until it reaches convergence
3377
+ (according to the provided `rtol`). Defaults to `None`.
3378
+ verbose : bool, optional
3379
+ Whether to print out information on the current iteration step and estimated
3380
+ convergence progress. Defaults to `True`.
3381
+ **kwargs : dict
3382
+ Keyword arguments are passed to the growth rates computation method of
3383
+ the chosen IBS formalism implementation. See the formalism classes in
3384
+ the ``xfields.ibs._analytical`` for more details.
3385
+
3386
+ Returns
3387
+ -------
3388
+ xtrack.Table
3389
+ The convergence calculations results. The table contains the following
3390
+ columns, as time-step by time-step quantities:
3391
+ - time: time values at which quantities are computed, in [s].
3392
+ - gemitt_x: horizontal geometric emittances, in [m].
3393
+ - nemitt_x: horizontal normalized emittances, in [m].
3394
+ - gemitt_y: vertical geometric emittances, in [m].
3395
+ - nemitt_y: vertical normalized emittances, in [m].
3396
+ - gemitt_zeta: longitudinal geometric emittances, in [m].
3397
+ - nemitt_zeta: longitudinal normalized emittances, in [m].
3398
+ - sigma_zeta: bunch lengths, in [m].
3399
+ - sigma_delta: momentum spreads, in [-].
3400
+ - Kx: horizontal IBS amplitude growth rates, in [s^-1].
3401
+ - Ky: vertical IBS amplitude growth rates, in [s^-1].
3402
+ - Kz: longitudinal IBS amplitude growth rates, in [s^-1].
3403
+ The table also contains the following global quantities:
3404
+ - damping_constants_s: radiation damping constants used, in [s].
3405
+ - partition_numbers: damping partition numbers used.
3406
+ - eq_gemitt_x: horizontal equilibrium geometric emittance from synchrotron radiation used, in [m].
3407
+ - eq_gemitt_y: vertical equilibrium geometric emittance from synchrotron radiation used, in [m].
3408
+ - eq_gemitt_zeta: longitudinal equilibrium geometric emittance from synchrotron radiation used, in [m].
3409
+ - eq_sr_ibs_gemitt_x: final horizontal equilibrium geometric emittance converged to, in [m].
3410
+ - eq_sr_ibs_nemitt_x: final horizontal equilibrium normalized emittance converged to, in [m].
3411
+ - eq_sr_ibs_gemitt_y: final vertical equilibrium geometric emittance converged to, in [m].
3412
+ - eq_sr_ibs_gemitt_y: final vertical equilibrium normalized emittance converged to, in [m].
3413
+ - eq_sr_ibs_gemitt_zeta: final longitudinal equilibrium geometric emittance converged to, in [m].
3414
+ - eq_sr_ibs_gemitt_zeta: final longitudinal equilibrium normalized emittance converged to, in [m].
3415
+ """
3416
+ try:
3417
+ from xfields.ibs import get_ibs_and_synrad_emittance_evolution
3418
+ except ImportError:
3419
+ raise ImportError("Please install xfields to use this feature.")
3420
+ return get_ibs_and_synrad_emittance_evolution(
3421
+ self, formalism=formalism, total_beam_intensity=total_beam_intensity,
3422
+ gemitt_x=gemitt_x, nemitt_x=nemitt_x, gemitt_y=gemitt_y, nemitt_y=nemitt_y,
3423
+ gemitt_zeta=gemitt_zeta, nemitt_zeta=nemitt_zeta,
3424
+ overwrite_sigma_zeta=overwrite_sigma_zeta,
3425
+ overwrite_sigma_delta=overwrite_sigma_delta,
3426
+ emittance_coupling_factor=emittance_coupling_factor,
3427
+ emittance_constraint=emittance_constraint,
3428
+ rtol=rtol, tstep=tstep, max_steps=max_steps, verbose=verbose, **kwargs,
3429
+ )
3430
+
3244
3431
  def get_R_matrix(self, start, end):
3245
3432
 
3246
3433
  assert self.values_at == 'entry', 'Not yet implemented for exit'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.83.4
3
+ Version: 0.84.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
@@ -1 +0,0 @@
1
- __version__ = '0.83.4'
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
File without changes