xtrack 0.89.1__tar.gz → 0.89.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 (345) hide show
  1. {xtrack-0.89.1/xtrack.egg-info → xtrack-0.89.2}/PKG-INFO +1 -1
  2. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_tapering.py +2 -2
  3. xtrack-0.89.2/xtrack/_version.py +1 -0
  4. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/base_element.py +3 -0
  5. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/dipoleedge.h +9 -10
  6. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet.h +2 -2
  7. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet.template.h +2 -2
  8. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/synrad_spectrum.h +16 -16
  9. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/tapering.py +2 -3
  10. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/track_flags.py +6 -4
  11. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/twiss.py +18 -19
  12. {xtrack-0.89.1 → xtrack-0.89.2/xtrack.egg-info}/PKG-INFO +1 -1
  13. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack.egg-info/SOURCES.txt +0 -1
  14. xtrack-0.89.1/tests/test_periodic_symmetric_twiss_and_match.py +0 -163
  15. xtrack-0.89.1/xtrack/_version.py +0 -1
  16. {xtrack-0.89.1 → xtrack-0.89.2}/LICENSE +0 -0
  17. {xtrack-0.89.1 → xtrack-0.89.2}/MANIFEST.in +0 -0
  18. {xtrack-0.89.1 → xtrack-0.89.2}/README.md +0 -0
  19. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/__init__.py +0 -0
  20. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/base_classes.py +0 -0
  21. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/BB6D.py +0 -0
  22. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  23. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/__init__.py +0 -0
  24. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/beambeam.py +0 -0
  25. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/boost.py +0 -0
  26. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  27. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  28. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/qgauss.py +0 -0
  29. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/slicing.py +0 -0
  30. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/spacecharge.py +0 -0
  31. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/elements.py +0 -0
  32. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/line.py +0 -0
  33. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/mathlibs.py +0 -0
  34. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/particles.py +0 -0
  35. {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/temp_pyparticles.py +0 -0
  36. {xtrack-0.89.1 → xtrack-0.89.2}/pyproject.toml +0 -0
  37. {xtrack-0.89.1 → xtrack-0.89.2}/setup.cfg +0 -0
  38. {xtrack-0.89.1 → xtrack-0.89.2}/setup.py +0 -0
  39. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_acceleration.py +0 -0
  40. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_amplitude_detuning.py +0 -0
  41. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_aperture_table.py +0 -0
  42. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
  43. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_apertures.py +0 -0
  44. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_attr_replicas_and_slices.py +0 -0
  45. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_bucket_with_ref_energy_change.py +0 -0
  46. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_cavity_absolute_time.py +0 -0
  47. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_chromatic_functions_vs_madx.py +0 -0
  48. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_coasting.py +0 -0
  49. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_collective_tracker.py +0 -0
  50. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_collimation.py +0 -0
  51. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_coupling_edwards_teng.py +0 -0
  52. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_electron_cooler.py +0 -0
  53. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_element_characterization_functions.py +0 -0
  54. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_element_internal_record.py +0 -0
  55. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_elements.py +0 -0
  56. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_elements_classflags.py +0 -0
  57. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_elements_thick.py +0 -0
  58. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_environment.py +0 -0
  59. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  60. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  61. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_footprint.py +0 -0
  62. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_freeze_longitudinal.py +0 -0
  63. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_full_rings.py +0 -0
  64. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_h6_sps_beamline.py +0 -0
  65. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_hvkick.py +0 -0
  66. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_ions.py +0 -0
  67. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_legacy_multiline_to_env.py +0 -0
  68. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_lhc_env.py +0 -0
  69. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_lhc_match_phase_15.py +0 -0
  70. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_line.py +0 -0
  71. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_load.py +0 -0
  72. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_load_vars.py +0 -0
  73. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_lumi.py +0 -0
  74. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_mad_writer.py +0 -0
  75. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_madloader.py +0 -0
  76. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_madnginterface.py +0 -0
  77. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_magnet.py +0 -0
  78. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_and_track_from_element.py +0 -0
  79. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_coupling_knob.py +0 -0
  80. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_nested.py +0 -0
  81. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_optics_and_ip_knob.py +0 -0
  82. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
  83. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_orbit_bump.py +0 -0
  84. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_tune_chroma_cminus.py +0 -0
  85. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_misalign.py +0 -0
  86. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_monitor.py +0 -0
  87. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_multi_bunch_gauss.py +0 -0
  88. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_multiline.py +0 -0
  89. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_multisetter.py +0 -0
  90. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_multispecies.py +0 -0
  91. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_native_madloader.py +0 -0
  92. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_optimize_for_tracking.py +0 -0
  93. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_particles.py +0 -0
  94. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_particles_basics.py +0 -0
  95. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_particles_pdg.py +0 -0
  96. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_pipeline.py +0 -0
  97. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_prebuild_kernels.py +0 -0
  98. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_ps_against_ptc.py +0 -0
  99. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_ps_multiturn_twiss.py +0 -0
  100. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_psb_chicane.py +0 -0
  101. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_pyht_interface.py +0 -0
  102. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_quadrupole_fringe_ptc.py +0 -0
  103. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_quadrupole_wedge.py +0 -0
  104. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radial_steering.py +0 -0
  105. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radiation.py +0 -0
  106. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radiation_equilibrium_emittances.py +0 -0
  107. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radiation_equilibrium_emittances_thick.py +0 -0
  108. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radiation_integrals.py +0 -0
  109. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_random_gen.py +0 -0
  110. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_random_gen_exp.py +0 -0
  111. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_random_gen_gauss.py +0 -0
  112. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_random_gen_ruth.py +0 -0
  113. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_rbend_rbarc.py +0 -0
  114. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_rbend_straight_body.py +0 -0
  115. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_rf_track.py +0 -0
  116. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_rotation_signs.py +0 -0
  117. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_second_order_taylor_map.py +0 -0
  118. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_seeds.py +0 -0
  119. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_slice_and_insert_with_replicas.py +0 -0
  120. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_slice_elements.py +0 -0
  121. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_slicing.py +0 -0
  122. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
  123. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
  124. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_spacecharge_in_ring.py +0 -0
  125. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_spin.py +0 -0
  126. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_sps_thick.py +0 -0
  127. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_survey.py +0 -0
  128. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_thick_kickers_rf_crab.py +0 -0
  129. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_thick_lhc.py +0 -0
  130. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_tilt_shifts.py +0 -0
  131. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_tracker.py +0 -0
  132. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_trajectory_correcton.py +0 -0
  133. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_twiss.py +0 -0
  134. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_twiss_vs_madx_psb.py +0 -0
  135. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_vs_madx.py +0 -0
  136. {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_xmask_orbit_correction.py +0 -0
  137. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/__init__.py +0 -0
  138. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/__init__.py +0 -0
  139. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  140. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  141. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  142. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/lhc_match/__init__.py +0 -0
  143. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  144. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  145. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  146. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/aperture_meas.py +0 -0
  147. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/__init__.py +0 -0
  148. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures.py +0 -0
  149. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  150. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  151. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  152. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  153. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  154. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  155. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/beam_interaction.py +0 -0
  156. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements.py +0 -0
  157. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/bend.h +0 -0
  158. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  159. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/crab_cavity.h +0 -0
  160. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/default_magnet_config.h +0 -0
  161. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
  162. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift.h +0 -0
  163. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_exact.h +0 -0
  164. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_exact_slice.h +0 -0
  165. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  166. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
  167. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_cavity.h +0 -0
  168. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_crab_cavity.h +0 -0
  169. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_multipole.h +0 -0
  170. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
  171. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
  172. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
  173. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
  174. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +0 -0
  175. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
  176. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/elens.h +0 -0
  177. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  178. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  179. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
  180. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  181. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/magnet.h +0 -0
  182. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
  183. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
  184. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
  185. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/marker.h +0 -0
  186. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/misalignment.h +0 -0
  187. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/multipole.h +0 -0
  188. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
  189. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  190. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/octupole.h +0 -0
  191. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
  192. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/rbend.h +0 -0
  193. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  194. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  195. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  196. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
  197. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  198. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  199. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/slnd.h +0 -0
  200. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  201. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/temprf.h +0 -0
  202. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
  203. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_cavity.h +0 -0
  204. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_crab_cavity.h +0 -0
  205. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_multipole.h +0 -0
  206. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
  207. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
  208. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
  209. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
  210. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +0 -0
  211. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
  212. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
  213. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
  214. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_cavity.h +0 -0
  215. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_crab_cavity.h +0 -0
  216. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_multipole.h +0 -0
  217. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
  218. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -0
  219. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -0
  220. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
  221. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -0
  222. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -0
  223. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
  224. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
  225. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
  226. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
  227. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -0
  228. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -0
  229. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -0
  230. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -0
  231. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_cavity.h +0 -0
  232. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  233. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  234. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
  235. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
  236. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
  237. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
  238. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
  239. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_configure.h +0 -0
  240. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
  241. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
  242. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
  243. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
  244. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_misalignments.h +0 -0
  245. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
  246. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_rf.h +0 -0
  247. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_rf.template.h +0 -0
  248. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  249. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  250. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  251. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
  252. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
  253. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_xyshift.h +0 -0
  254. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  255. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/variable_solenoid.h +0 -0
  256. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  257. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/wire.h +0 -0
  258. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  259. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  260. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  261. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  262. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/exciter.py +0 -0
  263. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/rft_element.py +0 -0
  264. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_base.py +0 -0
  265. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_elements_drift.py +0 -0
  266. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_elements_edge.py +0 -0
  267. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_elements_thick.py +0 -0
  268. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_elements_thin.py +0 -0
  269. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/environment.py +0 -0
  270. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/footprint.py +0 -0
  271. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/general.py +0 -0
  272. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/atomicadd.h +0 -0
  273. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/checks.h +0 -0
  274. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/constants.h +0 -0
  275. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/particle_states.h +0 -0
  276. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/track.h +0 -0
  277. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/internal_record.py +0 -0
  278. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/json.py +0 -0
  279. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/line.py +0 -0
  280. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/linear_normal_form.py +0 -0
  281. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/load.py +0 -0
  282. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/loss_location_refinement/__init__.py +0 -0
  283. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  284. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/lumi.py +0 -0
  285. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_loader.py +0 -0
  286. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_parser/__init__.py +0 -0
  287. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_parser/loader.py +0 -0
  288. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_parser/madx.lark +0 -0
  289. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_parser/parse.py +0 -0
  290. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_writer.py +0 -0
  291. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/madng_interface.py +0 -0
  292. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/match.py +0 -0
  293. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/__init__.py +0 -0
  294. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_position_monitor.h +0 -0
  295. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_position_monitor.py +0 -0
  296. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_profile_monitor.h +0 -0
  297. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_profile_monitor.py +0 -0
  298. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_size_monitor.h +0 -0
  299. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_size_monitor.py +0 -0
  300. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/last_turns_monitor.h +0 -0
  301. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/last_turns_monitor.py +0 -0
  302. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/particles_monitor.h +0 -0
  303. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/particles_monitor.py +0 -0
  304. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multiline.py +0 -0
  305. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multiline_legacy/__init__.py +0 -0
  306. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
  307. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multiline_legacy/shared_knobs.py +0 -0
  308. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multisetter/__init__.py +0 -0
  309. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multisetter/multisetter.py +0 -0
  310. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/__init__.py +0 -0
  311. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/constants.py +0 -0
  312. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/masses.py +0 -0
  313. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/particles.py +0 -0
  314. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/pdg.py +0 -0
  315. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/rng_src/base_rng.h +0 -0
  316. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/rng_src/particles_rng.h +0 -0
  317. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/pipeline/__init__.py +0 -0
  318. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/pipeline/core.py +0 -0
  319. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/pipeline/manager.py +0 -0
  320. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/pipeline/multitracker.py +0 -0
  321. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/progress_indicator.py +0 -0
  322. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/__init__.py +0 -0
  323. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_generators.py +0 -0
  324. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/exponential.h +0 -0
  325. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  326. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/normal.h +0 -0
  327. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/rutherford.h +0 -0
  328. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/uniform.h +0 -0
  329. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/uniform_accurate.h +0 -0
  330. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/slicing.py +0 -0
  331. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/survey.py +0 -0
  332. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/svgutils/__init__.py +0 -0
  333. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/svgutils/parser.py +0 -0
  334. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/svgutils/path.py +0 -0
  335. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/svgutils/svgutils.py +0 -0
  336. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/synctime.py +0 -0
  337. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/targets.py +0 -0
  338. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/tracker.py +0 -0
  339. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/tracker_data.py +0 -0
  340. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/tracker_src/tracker.h +0 -0
  341. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/trajectory_correction.py +0 -0
  342. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/twissplot.py +0 -0
  343. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack.egg-info/dependency_links.txt +0 -0
  344. {xtrack-0.89.1 → xtrack-0.89.2}/xtrack.egg-info/requires.txt +0 -0
  345. {xtrack-0.89.1 → xtrack-0.89.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.89.1
3
+ Version: 0.89.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
@@ -29,7 +29,7 @@ def test_tapering_and_twiss_with_radiation():
29
29
 
30
30
  # Initial twiss (no radiation)
31
31
  line.configure_radiation(model=None)
32
- tw_no_rad = line.twiss(method='4d', freeze_longitudinal=True)
32
+ tw_no_rad = line.twiss(method='4d')
33
33
 
34
34
  assert tw_no_rad.radiation_method == None
35
35
 
@@ -145,7 +145,7 @@ def test_tapering_zero_mean():
145
145
  line.particle_ref.p0c = 4e9 # eV
146
146
 
147
147
  line.configure_radiation(model=None)
148
- tw_no_rad = line.twiss(method='4d', freeze_longitudinal=True)
148
+ tw_no_rad = line.twiss(method='4d')
149
149
 
150
150
  ###############################################
151
151
  # Enable radiation and compensate energy loss #
@@ -0,0 +1 @@
1
+ __version__ = '0.89.2'
@@ -15,6 +15,7 @@ from xobjects.hybrid_class import _build_xofields_dict
15
15
  from .general import _pkg_root
16
16
  from .internal_record import RecordIdentifier, RecordIndex, generate_get_record
17
17
  from .particles import Particles
18
+ from .track_flags import c_header_flag_mapping
18
19
 
19
20
  start_per_part_block = """
20
21
  {
@@ -280,6 +281,7 @@ def _generate_per_particle_kernel_from_local_particle_function(
280
281
  for (int64_t batch_id = 0; batch_id < num_threads; batch_id++) { //only_for_context cpu_openmp
281
282
  LocalParticle lpart;
282
283
  lpart.io_buffer = io_buffer;
284
+ lpart.track_flags = 0;
283
285
  int64_t part_id = batch_id * chunk_size; //only_for_context cpu_openmp
284
286
  int64_t end_id = (batch_id + 1) * chunk_size; //only_for_context cpu_openmp
285
287
  if (end_id > num_particles_to_track) end_id = num_particles_to_track; //only_for_context cpu_openmp
@@ -452,6 +454,7 @@ class MetaBeamElement(xo.MetaHybridClass):
452
454
  _pkg_root.joinpath('headers','particle_states.h'),
453
455
  _pkg_root.joinpath('beam_elements', 'elements_src', 'track_srotation.h'),
454
456
  _pkg_root.joinpath('beam_elements', 'elements_src', 'track_drift.h'),
457
+ c_header_flag_mapping
455
458
  ]
456
459
  kernels = {}
457
460
 
@@ -18,22 +18,21 @@ void DipoleEdge_track_local_particle(DipoleEdgeData el, LocalParticle* part0){
18
18
 
19
19
  int64_t const model = DipoleEdgeData_get_model(el);
20
20
 
21
- #ifdef XTRACK_MULTIPOLE_NO_SYNRAD
22
- double const delta_taper = 0.0;
23
- #else
24
- #ifndef XTRACK_DIPOLEEDGE_TAPER
25
- double const delta_taper = DipoleEdgeData_get_delta_taper(el);
26
- #endif
21
+ double delta_taper = 0.0;
22
+ #ifndef XTRACK_MULTIPOLE_NO_SYNRAD
23
+ if (!LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
24
+ delta_taper = DipoleEdgeData_get_delta_taper(el);
25
+ }
27
26
  #endif
28
27
 
29
28
  if (model == 0){
30
29
  double r21 = DipoleEdgeData_get_r21(el);
31
30
  double r43 = DipoleEdgeData_get_r43(el);
32
31
 
33
- #ifndef XTRACK_DIPOLEEDGE_TAPER
32
+ if (!LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
34
33
  r21 = r21 * (1 + delta_taper);
35
34
  r43 = r43 * (1 + delta_taper);
36
- #endif
35
+ }
37
36
 
38
37
  #ifdef XSUITE_BACKTRACK
39
38
  r21 = -r21;
@@ -41,11 +40,11 @@ void DipoleEdge_track_local_particle(DipoleEdgeData el, LocalParticle* part0){
41
40
  #endif
42
41
 
43
42
  START_PER_PARTICLE_BLOCK(part0, part);
44
- #ifdef XTRACK_DIPOLEEDGE_TAPER
43
+ if (LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
45
44
  double const delta_taper = LocalParticle_get_delta(part);
46
45
  r21 = r21 * (1 + delta_taper);
47
46
  r43 = r43 * (1 + delta_taper);
48
- #endif
47
+ }
49
48
 
50
49
  DipoleEdgeLinear_single_particle(part, r21, r43);
51
50
  END_PER_PARTICLE_BLOCK;
@@ -400,12 +400,12 @@ void track_magnet_particles(
400
400
  #endif
401
401
 
402
402
  // Tapering
403
- #ifdef XTRACK_MULTIPOLE_TAPER // Computing the tapering
403
+ if (LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
404
404
  part0->ipart = 0;
405
405
  delta_taper = LocalParticle_get_delta(part0); // I can use part0 because
406
406
  // there is only one particle
407
407
  // when doing the tapering
408
- #endif
408
+ }
409
409
 
410
410
  #ifndef XTRACK_MULTIPOLE_NO_SYNRAD
411
411
  if (radiation_flag){
@@ -319,12 +319,12 @@ void track_magnet_particles(
319
319
  #endif
320
320
 
321
321
  // Tapering
322
- #ifdef XTRACK_MULTIPOLE_TAPER // Computing the tapering
322
+ if (LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
323
323
  part0->ipart = 0;
324
324
  delta_taper = LocalParticle_get_delta(part0); // I can use part0 because
325
325
  // there is only one particle
326
326
  // when doing the tapering
327
- #endif
327
+ }
328
328
 
329
329
  #ifndef XTRACK_MULTIPOLE_NO_SYNRAD
330
330
  if (radiation_flag){
@@ -46,33 +46,33 @@ void synrad_average_kick(LocalParticle* part, double B_T, double lpath,
46
46
  }
47
47
  #endif
48
48
 
49
- #ifdef XTRACK_SYNRAD_KICK_SAME_AS_FIRST
50
- if (part -> ipart == 0){
51
- *dp_record = LocalParticle_get_delta(part);
52
- *dpx_record = LocalParticle_get_px(part);
53
- *dpy_record = LocalParticle_get_py(part);
54
- }
55
- else{
56
- f_t = 1.0;
49
+ if (LocalParticle_check_track_flag(part, XS_FLAG_SR_KICK_SAME_AS_FIRST)){
50
+ if (part -> ipart == 0){
51
+ *dp_record = LocalParticle_get_delta(part);
52
+ *dpx_record = LocalParticle_get_px(part);
53
+ *dpy_record = LocalParticle_get_py(part);
54
+ }
55
+ else{
56
+ f_t = 1.0;
57
+ }
57
58
  }
58
- #endif
59
59
 
60
60
  LocalParticle_update_delta(part, (delta+1) * f_t - 1);
61
61
  LocalParticle_scale_px(part, f_t);
62
62
  LocalParticle_scale_py(part, f_t);
63
63
 
64
- #ifdef XTRACK_SYNRAD_KICK_SAME_AS_FIRST
65
- if (part -> ipart == 0){
66
- *dp_record = LocalParticle_get_delta(part) - *dp_record;
67
- *dpx_record = LocalParticle_get_px(part) - *dpx_record;
68
- *dpy_record = LocalParticle_get_py(part) - *dpy_record;
69
- }
64
+ if (LocalParticle_check_track_flag(part, XS_FLAG_SR_KICK_SAME_AS_FIRST)){
65
+ if (part -> ipart == 0){
66
+ *dp_record = LocalParticle_get_delta(part) - *dp_record;
67
+ *dpx_record = LocalParticle_get_px(part) - *dpx_record;
68
+ *dpy_record = LocalParticle_get_py(part) - *dpy_record;
69
+ }
70
70
  else{
71
71
  LocalParticle_update_delta(part, LocalParticle_get_delta(part) + *dp_record);
72
72
  LocalParticle_add_to_px(part, *dpx_record);
73
73
  LocalParticle_add_to_py(part, *dpy_record);
74
74
  }
75
- #endif
75
+ }
76
76
  }
77
77
 
78
78
  GPUFUN
@@ -72,9 +72,8 @@ def compensate_radiation_energy_loss(line, delta0='zero_mean', rtol_eneloss=1e-1
72
72
  f_setter.set_values(np.zeros_like(f_setter.get_values()))
73
73
 
74
74
  if verbose: _print("Share energy loss among cavities (repeat until energy loss is zero)")
75
- with xt.line._preserve_config(line):
76
- line.config.XTRACK_MULTIPOLE_TAPER = True
77
- line.config.XTRACK_DIPOLEEDGE_TAPER = True
75
+ with xt.line._preserve_track_flags(line):
76
+ line.tracker.track_flags.XS_FLAG_SR_TAPER = True
78
77
 
79
78
  if delta0 == 'zero_mean':
80
79
  num_rounds = 2
@@ -2,18 +2,20 @@ import numpy as np
2
2
 
3
3
  flag_mapping = {
4
4
  'XS_FLAG_BACKTRACK': 0,
5
- 'XS_FLAG_TAPER': 1,
6
5
  'XS_FLAG_KILL_CAVITY_KICK': 2,
7
6
  'XS_FLAG_IGNORE_GLOBAL_APERTURE': 3,
8
- 'XS_FLAG_IGNORE_LOCAL_APERTURE': 4
7
+ 'XS_FLAG_IGNORE_LOCAL_APERTURE': 4,
8
+ 'XS_FLAG_SR_TAPER': 5,
9
+ 'XS_FLAG_SR_KICK_SAME_AS_FIRST': 6
9
10
  }
10
11
 
11
12
  flag_defaults = {
12
13
  'XS_FLAG_BACKTRACK': False,
13
- 'XS_FLAG_TAPER': False,
14
14
  'XS_FLAG_KILL_CAVITY_KICK': False,
15
15
  'XS_FLAG_IGNORE_GLOBAL_APERTURE': False,
16
- 'XS_FLAG_IGNORE_LOCAL_APERTURE': False
16
+ 'XS_FLAG_IGNORE_LOCAL_APERTURE': False,
17
+ 'XS_FLAG_SR_TAPER': False,
18
+ 'XS_FLAG_SR_KICK_SAME_AS_FIRST': False
17
19
  }
18
20
 
19
21
  c_header_flag_mapping = """
@@ -527,10 +527,9 @@ def twiss_line(line, particle_ref=None, method=None,
527
527
  assert radiation_method in ['full', 'kick_as_co', 'scale_as_co']
528
528
  assert freeze_longitudinal is False
529
529
  if (radiation_method == 'kick_as_co' and (
530
- not hasattr(line.config, 'XTRACK_SYNRAD_KICK_SAME_AS_FIRST') or
531
- not line.config.XTRACK_SYNRAD_KICK_SAME_AS_FIRST)):
532
- with xt.line._preserve_config(line):
533
- line.config.XTRACK_SYNRAD_KICK_SAME_AS_FIRST = True
530
+ not line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST)):
531
+ with xt.line._preserve_track_flags(line):
532
+ line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST = True
534
533
  return _add_action_in_res(twiss_line(**kwargs), input_kwargs)
535
534
  elif (radiation_method == 'scale_as_co' and (
536
535
  not hasattr(line.config, 'XTRACK_SYNRAD_SCALE_SAME_AS_FIRST') or
@@ -540,8 +539,7 @@ def twiss_line(line, particle_ref=None, method=None,
540
539
  return _add_action_in_res(twiss_line(**kwargs), input_kwargs)
541
540
 
542
541
  if radiation_method == 'kick_as_co':
543
- assert hasattr(line.config, 'XTRACK_SYNRAD_KICK_SAME_AS_FIRST')
544
- assert line.config.XTRACK_SYNRAD_KICK_SAME_AS_FIRST
542
+ assert line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST
545
543
 
546
544
  if line.enable_time_dependent_vars:
547
545
  raise RuntimeError('Time dependent variables not supported in Twiss')
@@ -731,7 +729,7 @@ def twiss_line(line, particle_ref=None, method=None,
731
729
  with xt.line._preserve_track_flags(line):
732
730
  line.tracker.track_flags.XS_FLAG_KILL_CAVITY_KICK = True
733
731
  line.config.XTRACK_MULTIPOLE_NO_SYNRAD = True
734
- line.config.XTRACK_SYNRAD_KICK_SAME_AS_FIRST = False
732
+ line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST = False
735
733
  cols_chrom, scalars_chrom = _compute_chromatic_functions(
736
734
  line=line,
737
735
  init=init,
@@ -778,7 +776,8 @@ def twiss_line(line, particle_ref=None, method=None,
778
776
  raise ValueError('method="4d" not supported for eneloss_and_damping=True')
779
777
  if radiation_method != 'full' or twiss_res._data['R_matrix_ebe'] is None:
780
778
  with xt.line._preserve_config(line):
781
- line.config.XTRACK_SYNRAD_KICK_SAME_AS_FIRST = False
779
+ with xt.line._preserve_track_flags(line):
780
+ line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST = False
782
781
  line.config.XTRACK_SYNRAD_SCALE_SAME_AS_FIRST = False
783
782
  _, RR, _, _, _, RR_ebe = _find_periodic_solution(
784
783
  line=line, particle_on_co=particle_on_co,
@@ -1380,7 +1379,7 @@ def _compute_coupling_elements_edwards_teng(
1380
1379
  CC = RR[2:4, :2]
1381
1380
  DD = RR[2:4, 2:4]
1382
1381
 
1383
- if np.linalg.norm(BB) < 1e-12 and np.linalg.norm(CC) < 1e-12:
1382
+ if np.linalg.norm(BB) < 1e-10 and np.linalg.norm(CC) < 1e-10:
1384
1383
  R_edw_teng = np.zeros((2, 2))
1385
1384
  else:
1386
1385
  tr = np.linalg.trace
@@ -1602,7 +1601,7 @@ def _compute_chromatic_functions(line, init, delta_chrom, steps_r_matrix,
1602
1601
  include_collective=include_collective)
1603
1602
  part_chrom = line.find_closed_orbit(delta0=dd, co_guess=part_guess,
1604
1603
  start=start, end=end, num_turns=num_turns,
1605
- symmetrize=(periodic_mode == 'periodic_symmetric'),
1604
+ symmetrize=False,
1606
1605
  include_collective=include_collective,
1607
1606
  )
1608
1607
  tw_init_chrom.particle_on_co = part_chrom
@@ -1610,7 +1609,7 @@ def _compute_chromatic_functions(line, init, delta_chrom, steps_r_matrix,
1610
1609
  particle_on_co=tw_init_chrom.particle_on_co.copy(),
1611
1610
  start=start, end=end, num_turns=num_turns,
1612
1611
  steps_r_matrix=steps_r_matrix,
1613
- symmetrize=(periodic_mode == 'periodic_symmetric'),
1612
+ symmetrize=False,
1614
1613
  include_collective=include_collective,
1615
1614
  )['R_matrix']
1616
1615
  (WW_chrom, _, _, _) = lnf.compute_linear_normal_form(RR_chrom,
@@ -2113,6 +2112,9 @@ def _find_periodic_solution(line, particle_on_co, particle_ref, method,
2113
2112
 
2114
2113
  assert periodic_mode in ['periodic', 'periodic_symmetric']
2115
2114
 
2115
+ if periodic_mode == 'periodic_symmetric':
2116
+ raise ValueError('`periodic_symmetric` not supported anymore')
2117
+
2116
2118
  if start is not None or end is not None:
2117
2119
  assert start is not None and end is not None, (
2118
2120
  'start and end must be both None or both not None')
@@ -2124,6 +2126,7 @@ def _find_periodic_solution(line, particle_on_co, particle_ref, method,
2124
2126
  delta0 = 0
2125
2127
 
2126
2128
  if periodic_mode == 'periodic_symmetric':
2129
+ raise ValueError('`periodic_symmetric` not supported anymore')
2127
2130
  assert R_matrix is None, 'R_matrix must be None for `periodic_symmetric`'
2128
2131
  assert W_matrix is None, 'W_matrix must be None for `periodic_symmetric`'
2129
2132
 
@@ -2146,7 +2149,7 @@ def _find_periodic_solution(line, particle_on_co, particle_ref, method,
2146
2149
  search_for_t_rev=search_for_t_rev,
2147
2150
  spin=spin,
2148
2151
  num_turns_search_t_rev=num_turns_search_t_rev,
2149
- symmetrize=(periodic_mode == 'periodic_symmetric'),
2152
+ symmetrize=False,
2150
2153
  include_collective=include_collective
2151
2154
  )
2152
2155
  if only_orbit:
@@ -2177,7 +2180,7 @@ def _find_periodic_solution(line, particle_on_co, particle_ref, method,
2177
2180
  num_turns=num_turns,
2178
2181
  element_by_element=compute_R_element_by_element,
2179
2182
  only_markers=only_markers,
2180
- symmetrize=(periodic_mode == 'periodic_symmetric'),
2183
+ symmetrize=False,
2181
2184
  include_collective=include_collective
2182
2185
  )
2183
2186
  RR = RR_out['R_matrix']
@@ -2703,9 +2706,7 @@ def compute_one_turn_matrix_finite_differences(
2703
2706
  assert end is not None
2704
2707
  line.track(part_temp, ele_start=start, ele_stop=end)
2705
2708
  if symmetrize:
2706
- with xt.line._preserve_config(line):
2707
- line.config.XSUITE_MIRROR = True
2708
- line.track(part_temp, ele_start=start, ele_stop=end)
2709
+ raise NotImplementedError
2709
2710
  elif particle_on_co._xobject.at_element[0]>0:
2710
2711
  assert element_by_element is False, 'Not yet implemented'
2711
2712
  assert num_turns == 1, 'Not yet implemented'
@@ -2721,9 +2722,7 @@ def compute_one_turn_matrix_finite_differences(
2721
2722
  line.track(part_temp, num_turns=num_turns,
2722
2723
  turn_by_turn_monitor=monitor_setting)
2723
2724
  if symmetrize:
2724
- with xt.line._preserve_config(line):
2725
- line.config.XSUITE_MIRROR = True
2726
- line.track(part_temp, num_turns=num_turns)
2725
+ raise NotImplementedError
2727
2726
 
2728
2727
  temp_mat = np.zeros(shape=(6, 13), dtype=np.float64)
2729
2728
  temp_mat[0, :] = context.nparray_from_context_array(part_temp.x)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.89.1
3
+ Version: 0.89.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
@@ -77,7 +77,6 @@ tests/test_optimize_for_tracking.py
77
77
  tests/test_particles.py
78
78
  tests/test_particles_basics.py
79
79
  tests/test_particles_pdg.py
80
- tests/test_periodic_symmetric_twiss_and_match.py
81
80
  tests/test_pipeline.py
82
81
  tests/test_prebuild_kernels.py
83
82
  tests/test_ps_against_ptc.py
@@ -1,163 +0,0 @@
1
- import xtrack as xt
2
- import xobjects as xo
3
- import numpy as np
4
-
5
- def test_periodic_symmetric_twiss_and_match():
6
-
7
- # Build line with half a cell
8
- half_cell = xt.Line(
9
- elements={
10
- 'start_cell': xt.Marker(),
11
- 'drift0': xt.Drift(length=1.),
12
- 'qf1': xt.Quadrupole(k1=0.027/2, length=1.),
13
- 'drift1_1': xt.Drift(length=1),
14
- 'bend1': xt.Bend(k0=3e-4, h=3e-4, length=45.),
15
- 'drift1_2': xt.Drift(length=1.),
16
- 'qd1': xt.Quadrupole(k1=-0.0271/2, length=1.),
17
- 'drift2': xt.Drift(length=1),
18
- 'mid_cell': xt.Marker(),
19
- }
20
- )
21
- half_cell.particle_ref = xt.Particles(p0c=2e9)
22
-
23
- tw_half_cell = half_cell.twiss4d(init='periodic_symmetric', # <--- periodic-symmetric boundary
24
- strengths=True # to get the strengths in table
25
- )
26
-
27
- cell = xt.Line(
28
- elements={
29
- 'start_cell': xt.Marker(),
30
- 'drift0': xt.Drift(length=1.),
31
- 'qf1': xt.Quadrupole(k1=0.027/2, length=1.),
32
- 'drift1': xt.Drift(length=1),
33
- 'bend1': xt.Bend(k0=3e-4, h=3e-4, length=45.),
34
- 'drift2': xt.Drift(length=1.),
35
- 'qd1': xt.Quadrupole(k1=-0.0271/2, length=1.),
36
- 'drift3': xt.Drift(length=1),
37
- 'mid_cell': xt.Marker(),
38
- 'drift4': xt.Replica('drift3'),
39
- 'qd2': xt.Replica('qd1'),
40
- 'drift5': xt.Replica('drift2'),
41
- 'bend2': xt.Replica('bend1'),
42
- 'drift6': xt.Replica('drift1'),
43
- 'qf2': xt.Replica('qf1'),
44
- 'drift7': xt.Replica('drift0'),
45
- 'end_cell': xt.Marker(),
46
- }
47
- )
48
- cell.particle_ref = xt.Particles(p0c=2e9)
49
- tw_cell = cell.twiss4d(strengths=True)
50
-
51
- xo.assert_allclose(tw_half_cell.betx[:-1], # remove '_end_point'
52
- tw_cell.rows[:'mid_cell'].betx, atol=0, rtol=1e-8)
53
- xo.assert_allclose(tw_half_cell.bety[:-1], # remove '_end_point'
54
- tw_cell.rows[:'mid_cell'].bety, atol=0, rtol=1e-8)
55
- xo.assert_allclose(tw_half_cell.alfx[:-1], # remove '_end_point'
56
- tw_cell.rows[:'mid_cell'].alfx, atol=1e-8, rtol=0)
57
- xo.assert_allclose(tw_half_cell.alfy[:-1], # remove '_end_point'
58
- tw_cell.rows[:'mid_cell'].alfy, atol=1e-8, rtol=0)
59
- xo.assert_allclose(tw_half_cell.dx[:-1], # remove '_end_point'
60
- tw_cell.rows[:'mid_cell'].dx, atol=1e-8, rtol=0)
61
- xo.assert_allclose(tw_half_cell.dpx[:-1], # remove '_end_point'
62
- tw_cell.rows[:'mid_cell'].dpx, atol=1e-8, rtol=0)
63
-
64
- xo.assert_allclose(tw_half_cell.ax_chrom[:-1], # remove '_end_point'
65
- tw_cell.rows[:'mid_cell'].ax_chrom, atol=1e-5, rtol=0)
66
- xo.assert_allclose(tw_half_cell.ay_chrom[:-1], # remove '_end_point'
67
- tw_cell.rows[:'mid_cell'].ay_chrom, atol=1e-5, rtol=0)
68
- xo.assert_allclose(tw_half_cell.bx_chrom[:-1], # remove '_end_point'
69
- tw_cell.rows[:'mid_cell'].bx_chrom, atol=1e-5, rtol=0)
70
- xo.assert_allclose(tw_half_cell.by_chrom[:-1], # remove '_end_point'
71
- tw_cell.rows[:'mid_cell'].by_chrom, atol=1e-5, rtol=0)
72
-
73
- xo.assert_allclose(tw_half_cell.qx, tw_cell.qx / 2, atol=1e-9, rtol=0)
74
- xo.assert_allclose(tw_half_cell.qy, tw_cell.qy / 2, atol=1e-9, rtol=0)
75
- xo.assert_allclose(tw_half_cell.dqx, tw_cell.dqx / 2, atol=1e-6, rtol=0)
76
- xo.assert_allclose(tw_half_cell.dqy, tw_cell.dqy / 2, atol=1e-6, rtol=0)
77
-
78
- for ll in [cell, half_cell]:
79
- ll.vars['kqf'] = 0.027/2
80
- ll.vars['kqd'] = -0.0271/2
81
- ll.element_refs['qf1'].k1 = ll.vars['kqf']
82
- ll.element_refs['qd1'].k1 = ll.vars['kqd']
83
-
84
- tw_cell = cell.twiss4d(strengths=True)
85
- tw_half_cell = half_cell.twiss4d(init='periodic_symmetric', strengths=True)
86
-
87
- xo.assert_allclose(tw_cell.mux[-1], 0.231, atol=1e-3, rtol=0)
88
- xo.assert_allclose(tw_cell.muy[-1], 0.233, atol=1e-3, rtol=0)
89
- xo.assert_allclose(tw_half_cell.mux[-1], 0.231 / 2, atol=1e-3, rtol=0)
90
- xo.assert_allclose(tw_half_cell.muy[-1], 0.233 / 2, atol=1e-3, rtol=0)
91
-
92
- opt_halfcell = half_cell.match(
93
- method='4d',
94
- start='start_cell', end='mid_cell',
95
- init='periodic_symmetric',
96
- targets=xt.TargetSet(mux=0.2501/2, muy=0.2502/2, at='mid_cell'),
97
- vary=xt.VaryList(['kqf', 'kqd'], step=1e-5),
98
- )
99
-
100
- tw_cell = cell.twiss4d(strengths=True)
101
- tw_half_cell = half_cell.twiss4d(init='periodic_symmetric', strengths=True)
102
-
103
- xo.assert_allclose(tw_half_cell.mux[-1], 0.2501 / 2, atol=1e-3, rtol=0)
104
- xo.assert_allclose(tw_half_cell.muy[-1], 0.2502 / 2, atol=1e-3, rtol=0)
105
- xo.assert_allclose(tw_cell.mux[-1], 0.231, atol=1e-3, rtol=0) # unaffected
106
- xo.assert_allclose(tw_cell.muy[-1], 0.233, atol=1e-3, rtol=0) # unaffected
107
-
108
- opt_cell = cell.match(
109
- method='4d',
110
- start='start_cell', end='end_cell',
111
- init='periodic',
112
- targets=xt.TargetSet(mux=0.2501, muy=0.2502, at='end_cell'),
113
- vary=xt.VaryList(['kqf', 'kqd'], step=1e-5),
114
- )
115
-
116
- xo.assert_allclose(half_cell.vv['kqf'], cell.vv['kqf'], rtol=1e-9, atol=0)
117
- xo.assert_allclose(half_cell.vv['kqd'], cell.vv['kqd'], rtol=1e-9, atol=0)
118
-
119
- tw_cell = cell.twiss4d(strengths=True)
120
- tw_half_cell = half_cell.twiss4d(init='periodic_symmetric', strengths=True)
121
-
122
- xo.assert_allclose(tw_half_cell.mux[-1], 0.2501 / 2, atol=1e-3, rtol=0)
123
- xo.assert_allclose(tw_half_cell.muy[-1], 0.2502 / 2, atol=1e-3, rtol=0)
124
- xo.assert_allclose(tw_cell.mux[-1], 0.2501, atol=1e-3, rtol=0)
125
- xo.assert_allclose(tw_cell.muy[-1], 0.2502, atol=1e-3, rtol=0)
126
-
127
- xo.assert_allclose(tw_half_cell.betx[:-1], # remove '_end_point'
128
- tw_cell.rows[:'mid_cell'].betx, atol=0, rtol=1e-8)
129
- xo.assert_allclose(tw_half_cell.bety[:-1], # remove '_end_point'
130
- tw_cell.rows[:'mid_cell'].bety, atol=0, rtol=1e-8)
131
- xo.assert_allclose(tw_half_cell.alfx[:-1], # remove '_end_point'
132
- tw_cell.rows[:'mid_cell'].alfx, atol=1e-8, rtol=0)
133
- xo.assert_allclose(tw_half_cell.alfy[:-1], # remove '_end_point'
134
- tw_cell.rows[:'mid_cell'].alfy, atol=1e-8, rtol=0)
135
- xo.assert_allclose(tw_half_cell.dx[:-1], # remove '_end_point'
136
- tw_cell.rows[:'mid_cell'].dx, atol=1e-8, rtol=0)
137
- xo.assert_allclose(tw_half_cell.dpx[:-1], # remove '_end_point'
138
- tw_cell.rows[:'mid_cell'].dpx, atol=1e-8, rtol=0)
139
- xo.assert_allclose(tw_half_cell.ddx[:-1], # remove '_end_point'
140
- tw_cell.rows[:'mid_cell'].ddx, atol=1e-7, rtol=1e-8)
141
-
142
- xo.assert_allclose(tw_half_cell.ax_chrom[:-1], # remove '_end_point'
143
- tw_cell.rows[:'mid_cell'].ax_chrom, atol=1e-5, rtol=0)
144
- xo.assert_allclose(tw_half_cell.ay_chrom[:-1], # remove '_end_point'
145
- tw_cell.rows[:'mid_cell'].ay_chrom, atol=1e-5, rtol=0)
146
- xo.assert_allclose(tw_half_cell.bx_chrom[:-1], # remove '_end_point'
147
- tw_cell.rows[:'mid_cell'].bx_chrom, atol=1e-5, rtol=0)
148
- xo.assert_allclose(tw_half_cell.by_chrom[:-1], # remove '_end_point'
149
- tw_cell.rows[:'mid_cell'].by_chrom, atol=1e-5, rtol=0)
150
- xo.assert_allclose(tw_half_cell.ddx[:-1], # remove '_end_point'
151
- tw_cell.rows[:'mid_cell'].ddx, atol=1e-7, rtol=1e-8)
152
-
153
- xo.assert_allclose(tw_half_cell.qx, tw_cell.qx / 2, atol=1e-9, rtol=0)
154
- xo.assert_allclose(tw_half_cell.qy, tw_cell.qy / 2, atol=1e-9, rtol=0)
155
- xo.assert_allclose(tw_half_cell.dqx, tw_cell.dqx / 2, atol=1e-6, rtol=0)
156
- xo.assert_allclose(tw_half_cell.dqy, tw_cell.dqy / 2, atol=1e-6, rtol=0)
157
-
158
- tw_off_mom_cell = cell.twiss4d(strengths=True, delta0=1e-3)
159
- tw_off_mom_half_cell = half_cell.twiss4d(
160
- init='periodic_symmetric', strengths=True, delta0=1e-3)
161
-
162
- xo.assert_allclose(tw_off_mom_half_cell.x[:-1],
163
- tw_off_mom_cell.rows[:'mid_cell'].x, atol=1e-12, rtol=0)
@@ -1 +0,0 @@
1
- __version__ = '0.89.1'
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