xtrack 0.86.0__tar.gz → 0.86.2__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.0/xtrack.egg-info → xtrack-0.86.2}/PKG-INFO +2 -1
  2. {xtrack-0.86.0 → xtrack-0.86.2}/setup.py +1 -0
  3. xtrack-0.86.2/xtrack/_version.py +1 -0
  4. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/__init__.py +3 -2
  5. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/bend.h +7 -1
  6. xtrack-0.86.2/xtrack/beam_elements/elements_src/default_magnet_config.h +22 -0
  7. xtrack-0.86.2/xtrack/beam_elements/elements_src/drift_slice_bend.h +37 -0
  8. xtrack-0.86.2/xtrack/beam_elements/elements_src/drift_slice_octupole.h +37 -0
  9. xtrack-0.86.2/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +37 -0
  10. xtrack-0.86.2/xtrack/beam_elements/elements_src/drift_slice_rbend.h +37 -0
  11. xtrack-0.86.2/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +37 -0
  12. xtrack-0.86.2/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +37 -0
  13. xtrack-0.86.2/xtrack/beam_elements/elements_src/magnet.h +66 -0
  14. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/multipole.h +8 -6
  15. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/octupole.h +10 -17
  16. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/quadrupole.h +10 -17
  17. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/rbend.h +14 -17
  18. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/sextupole.h +10 -18
  19. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/slnd.h +12 -15
  20. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thick_slice_bend.h +24 -27
  21. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +17 -36
  22. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +17 -36
  23. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +25 -29
  24. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +17 -36
  25. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +18 -33
  26. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thin_slice_bend.h +25 -30
  27. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +69 -0
  28. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +69 -0
  29. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +16 -24
  30. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +68 -0
  31. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +68 -0
  32. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +17 -23
  33. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +68 -0
  34. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +68 -0
  35. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +26 -31
  36. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +68 -0
  37. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +68 -0
  38. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +16 -24
  39. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +68 -0
  40. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +68 -0
  41. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +68 -0
  42. xtrack-0.86.2/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +68 -0
  43. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_magnet.h +109 -70
  44. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/variable_solenoid.h +9 -13
  45. xtrack-0.86.0/xtrack/beam_elements/slice_elements.py → xtrack-0.86.2/xtrack/beam_elements/slice_elements_edge.py +5 -293
  46. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/slice_elements_thick.py +1 -1
  47. xtrack-0.86.2/xtrack/beam_elements/slice_elements_thin.py +296 -0
  48. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/line.py +10 -3
  49. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/load.py +1 -1
  50. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/madng_interface.py +6 -4
  51. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/trajectory_correction.py +4 -4
  52. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/twiss.py +6 -3
  53. {xtrack-0.86.0 → xtrack-0.86.2/xtrack.egg-info}/PKG-INFO +2 -1
  54. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack.egg-info/SOURCES.txt +4 -5
  55. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack.egg-info/requires.txt +1 -0
  56. xtrack-0.86.0/xtrack/_version.py +0 -1
  57. xtrack-0.86.0/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -32
  58. xtrack-0.86.0/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -32
  59. xtrack-0.86.0/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -32
  60. xtrack-0.86.0/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -32
  61. xtrack-0.86.0/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -32
  62. xtrack-0.86.0/xtrack/beam_elements/elements_src/magnet.h +0 -92
  63. xtrack-0.86.0/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -31
  64. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -60
  65. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -60
  66. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -47
  67. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -48
  68. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -47
  69. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -47
  70. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -60
  71. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -61
  72. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -48
  73. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -48
  74. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -51
  75. xtrack-0.86.0/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -51
  76. xtrack-0.86.0/xtrack/beam_elements/elements_src/track_bend.h +0 -162
  77. xtrack-0.86.0/xtrack/beam_elements/elements_src/track_multipole.h +0 -176
  78. xtrack-0.86.0/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -115
  79. {xtrack-0.86.0 → xtrack-0.86.2}/LICENSE +0 -0
  80. {xtrack-0.86.0 → xtrack-0.86.2}/MANIFEST.in +0 -0
  81. {xtrack-0.86.0 → xtrack-0.86.2}/README.md +0 -0
  82. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/__init__.py +0 -0
  83. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/base_classes.py +0 -0
  84. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/BB6D.py +0 -0
  85. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  86. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/__init__.py +0 -0
  87. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/beambeam.py +0 -0
  88. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/boost.py +0 -0
  89. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  90. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  91. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/qgauss.py +0 -0
  92. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/slicing.py +0 -0
  93. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/be_beamfields/spacecharge.py +0 -0
  94. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/elements.py +0 -0
  95. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/line.py +0 -0
  96. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/mathlibs.py +0 -0
  97. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/particles.py +0 -0
  98. {xtrack-0.86.0 → xtrack-0.86.2}/ducktrack/temp_pyparticles.py +0 -0
  99. {xtrack-0.86.0 → xtrack-0.86.2}/pyproject.toml +0 -0
  100. {xtrack-0.86.0 → xtrack-0.86.2}/setup.cfg +0 -0
  101. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_acceleration.py +0 -0
  102. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_amplitude_detuning.py +0 -0
  103. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_aperture_table.py +0 -0
  104. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  105. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_apertures.py +0 -0
  106. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_attr_replicas_and_slices.py +0 -0
  107. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_bucket_with_ref_energy_change.py +0 -0
  108. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_cavity_absolute_time.py +0 -0
  109. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_chromatic_functions_vs_madx.py +0 -0
  110. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_coasting.py +0 -0
  111. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_collective_tracker.py +0 -0
  112. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_collimation.py +0 -0
  113. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_electron_cooler.py +0 -0
  114. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_element_characterization_functions.py +0 -0
  115. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_element_internal_record.py +0 -0
  116. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_elements.py +0 -0
  117. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_elements_classflags.py +0 -0
  118. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_elements_thick.py +0 -0
  119. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_environment.py +0 -0
  120. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  121. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  122. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_footprint.py +0 -0
  123. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_freeze_longitudinal.py +0 -0
  124. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_full_rings.py +0 -0
  125. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_h6_sps_beamline.py +0 -0
  126. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_hvkick.py +0 -0
  127. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_ions.py +0 -0
  128. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_legacy_multiline_to_env.py +0 -0
  129. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_lhc_env.py +0 -0
  130. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_lhc_match_phase_15.py +0 -0
  131. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_line.py +0 -0
  132. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_load.py +0 -0
  133. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_lumi.py +0 -0
  134. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_mad_writer.py +0 -0
  135. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_madloader.py +0 -0
  136. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_madnginterface.py +0 -0
  137. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_magnet.py +0 -0
  138. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_match_and_track_from_element.py +0 -0
  139. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_match_coupling_knob.py +0 -0
  140. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_match_nested.py +0 -0
  141. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_match_optics_and_ip_knob.py +0 -0
  142. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
  143. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_match_orbit_bump.py +0 -0
  144. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_match_tune_chroma_cminus.py +0 -0
  145. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_monitor.py +0 -0
  146. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_multi_bunch_gauss.py +0 -0
  147. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_multiline.py +0 -0
  148. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_multisetter.py +0 -0
  149. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_multispecies.py +0 -0
  150. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_native_madloader.py +0 -0
  151. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_optimize_for_tracking.py +0 -0
  152. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_particles.py +0 -0
  153. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_particles_basics.py +0 -0
  154. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_particles_pdg.py +0 -0
  155. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
  156. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_pipeline.py +0 -0
  157. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_prebuild_kernels.py +0 -0
  158. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_ps_against_ptc.py +0 -0
  159. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_ps_multiturn_twiss.py +0 -0
  160. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_psb_chicane.py +0 -0
  161. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_pyht_interface.py +0 -0
  162. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_radial_steering.py +0 -0
  163. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_radiation.py +0 -0
  164. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_radiation_equilibrium_emittances.py +0 -0
  165. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_radiation_equilibrium_emittances_thick.py +0 -0
  166. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_radiation_integrals.py +0 -0
  167. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_random_gen.py +0 -0
  168. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_random_gen_exp.py +0 -0
  169. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_random_gen_gauss.py +0 -0
  170. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_random_gen_ruth.py +0 -0
  171. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_rbend_rbarc.py +0 -0
  172. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_rf_track.py +0 -0
  173. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_rotation_signs.py +0 -0
  174. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_second_order_taylor_map.py +0 -0
  175. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_seeds.py +0 -0
  176. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_slice_and_insert_with_replicas.py +0 -0
  177. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_slice_elements.py +0 -0
  178. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_slicing.py +0 -0
  179. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  180. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
  181. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_spacecharge_in_ring.py +0 -0
  182. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_spin.py +0 -0
  183. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_sps_thick.py +0 -0
  184. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_survey.py +0 -0
  185. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_tapering.py +0 -0
  186. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_thick_lhc.py +0 -0
  187. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_tilt_shifts.py +0 -0
  188. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_tracker.py +0 -0
  189. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_trajectory_correcton.py +0 -0
  190. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_twiss.py +0 -0
  191. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_twiss_vs_madx_psb.py +0 -0
  192. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_vs_madx.py +0 -0
  193. {xtrack-0.86.0 → xtrack-0.86.2}/tests/test_xmask_orbit_correction.py +0 -0
  194. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/__init__.py +0 -0
  195. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/_temp/__init__.py +0 -0
  196. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  197. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  198. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  199. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/_temp/lhc_match/__init__.py +0 -0
  200. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  201. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  202. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  203. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/aperture_meas.py +0 -0
  204. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/base_element.py +0 -0
  205. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/apertures.py +0 -0
  206. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  207. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  208. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  209. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  210. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  211. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  212. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/beam_interaction.py +0 -0
  213. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements.py +0 -0
  214. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  215. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
  216. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  217. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/drift.h +0 -0
  218. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  219. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
  220. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/elens.h +0 -0
  221. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  222. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  223. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
  224. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  225. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
  226. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
  227. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
  228. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/marker.h +0 -0
  229. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
  230. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  231. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  232. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  233. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  234. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  235. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  236. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  237. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_cavity.h +0 -0
  238. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  239. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  240. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
  241. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
  242. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
  243. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
  244. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
  245. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
  246. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
  247. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
  248. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
  249. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
  250. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  251. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  252. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  253. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
  254. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
  255. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  256. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  257. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/wire.h +0 -0
  258. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  259. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  260. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  261. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  262. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/exciter.py +0 -0
  263. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/magnets.py +0 -0
  264. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/beam_elements/rft_element.py +0 -0
  265. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/environment.py +0 -0
  266. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/footprint.py +0 -0
  267. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/general.py +0 -0
  268. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/headers/atomicadd.h +0 -0
  269. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/headers/checks.h +0 -0
  270. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/headers/constants.h +0 -0
  271. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/headers/particle_states.h +0 -0
  272. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/headers/synrad_spectrum.h +0 -0
  273. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/headers/track.h +0 -0
  274. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/internal_record.py +0 -0
  275. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/json.py +0 -0
  276. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/linear_normal_form.py +0 -0
  277. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/loss_location_refinement/__init__.py +0 -0
  278. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  279. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/lumi.py +0 -0
  280. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/mad_loader.py +0 -0
  281. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/mad_parser/__init__.py +0 -0
  282. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/mad_parser/loader.py +0 -0
  283. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/mad_parser/madx.lark +0 -0
  284. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/mad_parser/parse.py +0 -0
  285. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/mad_writer.py +0 -0
  286. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/match.py +0 -0
  287. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/__init__.py +0 -0
  288. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/beam_position_monitor.h +0 -0
  289. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/beam_position_monitor.py +0 -0
  290. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/beam_profile_monitor.h +0 -0
  291. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/beam_profile_monitor.py +0 -0
  292. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/beam_size_monitor.h +0 -0
  293. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/beam_size_monitor.py +0 -0
  294. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/last_turns_monitor.h +0 -0
  295. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/last_turns_monitor.py +0 -0
  296. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/particles_monitor.h +0 -0
  297. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/monitors/particles_monitor.py +0 -0
  298. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/multiline.py +0 -0
  299. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/multiline_legacy/__init__.py +0 -0
  300. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
  301. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/multiline_legacy/shared_knobs.py +0 -0
  302. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/multisetter/__init__.py +0 -0
  303. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/multisetter/multisetter.py +0 -0
  304. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/particles/__init__.py +0 -0
  305. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/particles/constants.py +0 -0
  306. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/particles/masses.py +0 -0
  307. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/particles/particles.py +0 -0
  308. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/particles/pdg.py +0 -0
  309. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/particles/rng_src/base_rng.h +0 -0
  310. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/particles/rng_src/particles_rng.h +0 -0
  311. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/pipeline/__init__.py +0 -0
  312. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/pipeline/core.py +0 -0
  313. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/pipeline/manager.py +0 -0
  314. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/pipeline/multitracker.py +0 -0
  315. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/progress_indicator.py +0 -0
  316. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/random/__init__.py +0 -0
  317. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/random/random_generators.py +0 -0
  318. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/random/random_src/exponential.h +0 -0
  319. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  320. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/random/random_src/normal.h +0 -0
  321. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/random/random_src/rutherford.h +0 -0
  322. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/random/random_src/uniform.h +0 -0
  323. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/random/random_src/uniform_accurate.h +0 -0
  324. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/slicing.py +0 -0
  325. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/survey.py +0 -0
  326. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/svgutils/__init__.py +0 -0
  327. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/svgutils/parser.py +0 -0
  328. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/svgutils/path.py +0 -0
  329. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/svgutils/svgutils.py +0 -0
  330. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/synctime.py +0 -0
  331. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/tapering.py +0 -0
  332. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/targets.py +0 -0
  333. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/tracker.py +0 -0
  334. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/tracker_data.py +0 -0
  335. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/tracker_src/tracker.h +0 -0
  336. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack/twissplot.py +0 -0
  337. {xtrack-0.86.0 → xtrack-0.86.2}/xtrack.egg-info/dependency_links.txt +0 -0
  338. {xtrack-0.86.0 → xtrack-0.86.2}/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.0
3
+ Version: 0.86.2
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
@@ -14,6 +14,7 @@ Requires-Dist: numpy>=1.0
14
14
  Requires-Dist: pandas>=2.0
15
15
  Requires-Dist: scipy
16
16
  Requires-Dist: tqdm
17
+ Requires-Dist: requests
17
18
  Requires-Dist: xobjects
18
19
  Requires-Dist: xdeps
19
20
  Provides-Extra: tests
@@ -44,6 +44,7 @@ setup(
44
44
  "pandas>=2.0",
45
45
  'scipy',
46
46
  'tqdm',
47
+ 'requests',
47
48
  'xobjects',
48
49
  'xdeps'
49
50
  ],
@@ -0,0 +1 @@
1
+ __version__ = '0.86.2'
@@ -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,
@@ -8,38 +8,29 @@
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 Octupole_track_local_particle(
14
15
  OctupoleData el,
15
16
  LocalParticle* part0
16
17
  ) {
17
- int64_t model = OctupoleData_get_model(el);
18
- int64_t integrator = OctupoleData_get_integrator(el);
19
- int64_t num_multipole_kicks = OctupoleData_get_num_multipole_kicks(el);
20
-
21
- if (model == 0) { // adaptive
22
- model = 6; // drift-kick-drift-expanded
23
- }
24
- if (integrator == 0) { // adaptive
25
- integrator = 3; // uniform
26
- }
27
- if (num_multipole_kicks == 0) {
28
- num_multipole_kicks = 1;
29
- }
30
18
 
31
19
  track_magnet_particles(
20
+ /*weight*/ 1.,
32
21
  /*part0*/ part0,
33
22
  /*length*/ OctupoleData_get_length(el),
34
23
  /*order*/ OctupoleData_get_order(el),
35
24
  /*inv_factorial_order*/ OctupoleData_get_inv_factorial_order(el),
36
25
  /*knl*/ OctupoleData_getp1_knl(el, 0),
37
26
  /*ksl*/ OctupoleData_getp1_ksl(el, 0),
38
- /*factor_knl_ksl*/ 1.,
39
- /*num_multipole_kicks*/ num_multipole_kicks,
40
- /*model*/ model,
41
- /*integrator*/ integrator,
27
+ /*num_multipole_kicks*/ OctupoleData_get_num_multipole_kicks(el),
28
+ /*model*/ OctupoleData_get_model(el),
29
+ /*default_model*/ OCTUPOLE_DEFAULT_MODEL,
30
+ /*integrator*/ OctupoleData_get_integrator(el),
31
+ /*default_integrator*/ OCTUPOLE_DEFAULT_INTEGRATOR,
42
32
  /*radiation_flag*/ OctupoleData_get_radiation_flag(el),
33
+ /*radiation_flag_parent*/ 0, // not used here
43
34
  /*radiation_record*/ NULL,
44
35
  /*delta_taper*/ OctupoleData_get_delta_taper(el),
45
36
  /*h*/ 0.,
@@ -54,6 +45,8 @@ void Octupole_track_local_particle(
54
45
  /*k3s*/ OctupoleData_get_k3s(el),
55
46
  /*ks*/ 0.,
56
47
  /*dks_ds*/ 0.,
48
+ /*rbend_model*/ -1, // not rbend
49
+ /*body_active*/ 1,
57
50
  /*edge_entry_active*/ OctupoleData_get_edge_entry_active(el),
58
51
  /*edge_exit_active*/ OctupoleData_get_edge_exit_active(el),
59
52
  /*edge_entry_model*/ 1,
@@ -8,38 +8,29 @@
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 Quadrupole_track_local_particle(
14
15
  QuadrupoleData el,
15
16
  LocalParticle* part0
16
17
  ) {
17
- int64_t model = QuadrupoleData_get_model(el);
18
- int64_t integrator = QuadrupoleData_get_integrator(el);
19
- int64_t num_multipole_kicks = QuadrupoleData_get_num_multipole_kicks(el);
20
-
21
- if (model == 0) { // adaptive
22
- model = 4; // mat-kick-mat
23
- }
24
- if (integrator == 0) { // adaptive
25
- integrator = 3; // uniform
26
- }
27
- if (num_multipole_kicks == 0) {
28
- num_multipole_kicks = 1;
29
- }
30
18
 
31
19
  track_magnet_particles(
20
+ /*weight*/ 1.,
32
21
  /*part0*/ part0,
33
22
  /*length*/ QuadrupoleData_get_length(el),
34
23
  /*order*/ QuadrupoleData_get_order(el),
35
24
  /*inv_factorial_order*/ QuadrupoleData_get_inv_factorial_order(el),
36
25
  /*knl*/ QuadrupoleData_getp1_knl(el, 0),
37
26
  /*ksl*/ QuadrupoleData_getp1_ksl(el, 0),
38
- /*factor_knl_ksl*/ 1.,
39
- /*num_multipole_kicks*/ num_multipole_kicks,
40
- /*model*/ model,
41
- /*integrator*/ integrator,
27
+ /*num_multipole_kicks*/ QuadrupoleData_get_num_multipole_kicks(el),
28
+ /*model*/ QuadrupoleData_get_model(el),
29
+ /*default_model*/ QUADRUPOLE_DEFAULT_MODEL,
30
+ /*integrator*/ QuadrupoleData_get_integrator(el),
31
+ /*default_integrator*/ QUADRUPOLE_DEFAULT_INTEGRATOR,
42
32
  /*radiation_flag*/ QuadrupoleData_get_radiation_flag(el),
33
+ /*radiation_flag_parent*/ 0, // not used here
43
34
  /*radiation_record*/ NULL,
44
35
  /*delta_taper*/ QuadrupoleData_get_delta_taper(el),
45
36
  /*h*/ 0.,
@@ -54,6 +45,8 @@ void Quadrupole_track_local_particle(
54
45
  /*k3s*/ 0.,
55
46
  /*ks*/ 0.,
56
47
  /*dks_ds*/ 0.,
48
+ /*rbend_model*/ -1, // not rbend
49
+ /*body_active*/ 1,
57
50
  /*edge_entry_active*/ QuadrupoleData_get_edge_entry_active(el),
58
51
  /*edge_exit_active*/ QuadrupoleData_get_edge_exit_active(el),
59
52
  /*edge_entry_model*/ 1,
@@ -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 RBend_track_local_particle(
@@ -15,30 +16,24 @@ void RBend_track_local_particle(
15
16
  LocalParticle* part0
16
17
  ) {
17
18
 
18
- double length = RBendData_get_length(el);
19
- const double h = RBendData_get_h(el);
20
- const double angle = length * h;
21
-
22
- const double edge_entry_angle = RBendData_get_edge_entry_angle(el) + angle / 2;
23
- const double edge_entry_angle_fdown = RBendData_get_edge_entry_angle_fdown(el);
24
- const double edge_exit_angle = RBendData_get_edge_exit_angle(el) + angle / 2;
25
- const double edge_exit_angle_fdown = RBendData_get_edge_exit_angle_fdown(el);
26
-
27
19
  track_magnet_particles(
20
+ /*weight*/ 1.,
28
21
  /*part0*/ part0,
29
- /*length*/ length,
22
+ /*length*/ RBendData_get_length(el),
30
23
  /*order*/ RBendData_get_order(el),
31
24
  /*inv_factorial_order*/ RBendData_get_inv_factorial_order(el),
32
25
  /*knl*/ RBendData_getp1_knl(el, 0),
33
26
  /*ksl*/ RBendData_getp1_ksl(el, 0),
34
- /*factor_knl_ksl*/ 1.,
35
27
  /*num_multipole_kicks*/ RBendData_get_num_multipole_kicks(el),
36
28
  /*model*/ RBendData_get_model(el),
29
+ /*default_model*/ RBEND_DEFAULT_MODEL,
37
30
  /*integrator*/ RBendData_get_integrator(el),
31
+ /*default_integrator*/ RBEND_DEFAULT_INTEGRATOR,
38
32
  /*radiation_flag*/ RBendData_get_radiation_flag(el),
33
+ /*radiation_flag_parent*/ 0, // not used here
39
34
  /*radiation_record*/ NULL,
40
35
  /*delta_taper*/ RBendData_get_delta_taper(el),
41
- /*h*/ h,
36
+ /*h*/ RBendData_get_h(el),
42
37
  /*hxl*/ 0.,
43
38
  /*k0*/ RBendData_get_k0(el),
44
39
  /*k1*/ RBendData_get_k1(el),
@@ -50,18 +45,20 @@ void RBend_track_local_particle(
50
45
  /*k3s*/ 0.,
51
46
  /*ks*/ 0.,
52
47
  /*dks_ds*/ 0.,
48
+ /*rbend_model*/ 0, // auto mode, curved body
49
+ /*body_active*/ 1,
53
50
  /*edge_entry_active*/ RBendData_get_edge_entry_active(el),
54
51
  /*edge_exit_active*/ RBendData_get_edge_exit_active(el),
55
52
  /*edge_entry_model*/ RBendData_get_edge_entry_model(el),
56
53
  /*edge_exit_model*/ RBendData_get_edge_exit_model(el),
57
- /*edge_entry_angle*/ edge_entry_angle,
58
- /*edge_exit_angle*/ edge_exit_angle,
59
- /*edge_entry_angle_fdown*/edge_entry_angle_fdown,
60
- /*edge_exit_angle_fdown*/ edge_exit_angle_fdown,
54
+ /*edge_entry_angle*/ RBendData_get_edge_entry_angle(el),
55
+ /*edge_exit_angle*/ RBendData_get_edge_exit_angle(el),
56
+ /*edge_entry_angle_fdown*/RBendData_get_edge_entry_angle_fdown(el),
57
+ /*edge_exit_angle_fdown*/ RBendData_get_edge_exit_angle_fdown(el),
61
58
  /*edge_entry_fint*/ RBendData_get_edge_entry_fint(el),
62
59
  /*edge_exit_fint*/ RBendData_get_edge_exit_fint(el),
63
60
  /*edge_entry_hgap*/ RBendData_get_edge_entry_hgap(el),
64
- /*edge_exit_hga*/ RBendData_get_edge_exit_hgap(el)
61
+ /*edge_exit_hgap*/ RBendData_get_edge_exit_hgap(el)
65
62
  );
66
63
  }
67
64