xtrack 0.82.3__tar.gz → 0.83.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {xtrack-0.82.3/xtrack.egg-info → xtrack-0.83.0}/PKG-INFO +1 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_elements_thick.py +47 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_madloader.py +67 -2
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_radiation_equilibrium_emittances_thick.py +2 -2
- xtrack-0.83.0/tests/test_spin.py +564 -0
- xtrack-0.83.0/xtrack/_version.py +1 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/base_element.py +37 -6
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/apertures.py +6 -6
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitellipse.h +13 -10
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +31 -26
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitrect.h +12 -13
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +18 -15
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +15 -13
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements.py +61 -94
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/bend.h +4 -1
- xtrack-0.83.0/xtrack/beam_elements/elements_src/cavity.h +23 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/dipole_fringe.h +6 -12
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/dipoleedge.h +14 -9
- xtrack-0.82.3/xtrack/beam_elements/elements_src/drift_elem.h → xtrack-0.83.0/xtrack/beam_elements/elements_src/drift.h +10 -7
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_bend.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/electroncooler.h +5 -7
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/elens.h +6 -17
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/exciter.h +8 -13
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +6 -6
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +64 -76
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/magnet.h +8 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/magnet_drift.h +8 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/magnet_edge.h +4 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/magnet_kick.h +7 -3
- xtrack-0.83.0/xtrack/beam_elements/elements_src/marker.h +13 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/multipole.h +4 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/multipoleedge.h +7 -3
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +4 -6
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/octupole.h +4 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/quadrupole.h +4 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/rbend.h +4 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +7 -6
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/rfmultipole.h +10 -9
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +7 -7
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/sextupole.h +5 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/simplethinbend.h +4 -3
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +6 -3
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/solenoid.h +36 -11
- xtrack-0.83.0/xtrack/beam_elements/elements_src/srotation.h +41 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_bend.h +5 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_drift.h +6 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +5 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +5 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +5 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +5 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +8 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_bend.h +5 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +11 -7
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +11 -7
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +5 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +7 -3
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +7 -3
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +5 -2
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +5 -2
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +11 -8
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +11 -7
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +5 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +7 -3
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +7 -3
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_bend.h +9 -9
- xtrack-0.83.0/xtrack/beam_elements/elements_src/track_cavity.h +66 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +8 -2
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +8 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +4 -14
- xtrack-0.82.3/xtrack/beam_elements/elements_src/drift.h → xtrack-0.83.0/xtrack/beam_elements/elements_src/track_drift.h +6 -6
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_magnet.h +25 -12
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_magnet_drift.h +8 -15
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_magnet_edge.h +29 -22
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_magnet_kick.h +12 -9
- xtrack-0.83.0/xtrack/beam_elements/elements_src/track_magnet_radiation.h +226 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_mult_fringe.h +2 -8
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_multipolar_components.h +7 -5
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_multipole.h +5 -3
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_quadrupole.h +18 -16
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_solenoid.h +25 -59
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_srotation.h +7 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +2 -6
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +2 -7
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_wedge.h +4 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_xrotation.h +4 -2
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/track_yrotation.h +4 -2
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/wedge.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/wire.h +6 -9
- xtrack-0.83.0/xtrack/beam_elements/elements_src/xrotation.h +42 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/xyshift.h +6 -6
- xtrack-0.83.0/xtrack/beam_elements/elements_src/yrotation.h +42 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/elements_src/zetashift.h +6 -7
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/exciter.py +1 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/magnets.py +6 -27
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/slice_elements.py +30 -27
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/slice_elements_thick.py +25 -27
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/headers/checks.h +7 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/headers/synrad_spectrum.h +16 -10
- xtrack-0.83.0/xtrack/headers/track.h +112 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/line.py +137 -28
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/linear_normal_form.py +52 -43
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/mad_loader.py +40 -61
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/match.py +4 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/beam_position_monitor.h +10 -16
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/beam_profile_monitor.h +8 -13
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/beam_size_monitor.h +7 -9
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/last_turns_monitor.h +8 -8
- xtrack-0.83.0/xtrack/monitors/particles_monitor.h +79 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/particles/particles.py +13 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/particles/rng_src/base_rng.h +9 -4
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/particles/rng_src/particles_rng.h +4 -2
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/random/random_generators.py +5 -17
- xtrack-0.83.0/xtrack/random/random_src/exponential.h +44 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/random/random_src/exponential_integral_Ei.h +12 -10
- xtrack-0.83.0/xtrack/random/random_src/normal.h +48 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/random/random_src/rutherford.h +22 -17
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/random/random_src/uniform.h +25 -16
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/random/random_src/uniform_accurate.h +22 -14
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/tracker.py +1 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/twiss.py +413 -14
- {xtrack-0.82.3 → xtrack-0.83.0/xtrack.egg-info}/PKG-INFO +1 -1
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack.egg-info/SOURCES.txt +5 -1
- xtrack-0.82.3/xtrack/_version.py +0 -1
- xtrack-0.82.3/xtrack/beam_elements/elements_src/cavity.h +0 -52
- xtrack-0.82.3/xtrack/beam_elements/elements_src/srotation.h +0 -25
- xtrack-0.82.3/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -100
- xtrack-0.82.3/xtrack/beam_elements/elements_src/xrotation.h +0 -27
- xtrack-0.82.3/xtrack/beam_elements/elements_src/yrotation.h +0 -27
- xtrack-0.82.3/xtrack/monitors/particles_monitor.h +0 -78
- xtrack-0.82.3/xtrack/random/random_src/exponential.h +0 -36
- xtrack-0.82.3/xtrack/random/random_src/normal.h +0 -40
- {xtrack-0.82.3 → xtrack-0.83.0}/LICENSE +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/MANIFEST.in +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/README.md +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/base_classes.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/elements.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/line.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/particles.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/pyproject.toml +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/setup.cfg +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/setup.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_acceleration.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_aperture_table.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_apertures.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_bucket_with_ref_energy_change.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_coasting.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_collimation.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_electron_cooler.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_elements.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_environment.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_footprint.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_full_rings.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_hvkick.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_ions.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_legacy_multiline_to_env.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_lhc_env.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_line.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_lumi.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_mad_writer.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_madnginterface.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_magnet.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_match_nested.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_monitor.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_multiline.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_multisetter.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_multispecies.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_native_madloader.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_optimize_for_tracking.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_particles.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_particles_basics.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_particles_pdg.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_pipeline.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_radial_steering.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_radiation.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_random_gen.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_rbend_rbarc.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_rf_track.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_seeds.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_slice_elements.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_slicing.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_sps_thick.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_survey.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_tapering.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_tracker.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_twiss.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_vs_madx.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/aperture_meas.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/environment.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/footprint.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/general.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/headers/constants.h +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/internal_record.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/json.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/lumi.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/mad_parser/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/mad_parser/loader.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/mad_parser/parse.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/mad_writer.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/madng_interface.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/multiline.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/multiline_legacy/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/multiline_legacy/shared_knobs.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/particles/constants.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/particles/masses.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/particles/pdg.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/random/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/slicing.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/survey.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/svgutils/__init__.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/svgutils/parser.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/svgutils/path.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/svgutils/svgutils.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/synctime.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/tapering.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/targets.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/tracker_data.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack/twissplot.py +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.82.3 → xtrack-0.83.0}/xtrack.egg-info/top_level.txt +0 -0
@@ -2150,3 +2150,50 @@ def test_octupole_num_kicks():
|
|
2150
2150
|
xo.assert_allclose(tw_3slices.ptau[-1], tw_3kicks.ptau[-1], atol=1e-15, rtol=0)
|
2151
2151
|
xo.assert_allclose(tw_3slices.betx[-1], tw_3kicks.betx[-1], atol=1e-10, rtol=0)
|
2152
2152
|
xo.assert_allclose(tw_3slices.bety[-1], tw_3kicks.bety[-1], atol=1e-10, rtol=0)
|
2153
|
+
|
2154
|
+
|
2155
|
+
def test_configure_model():
|
2156
|
+
line = xt.Line(elements={
|
2157
|
+
'b1': xt.Bend(k0=10, length=4, knl=[1, 2, 3]),
|
2158
|
+
'r1': xt.RBend(k0=7, length=3, knl=[4, 5, 6]),
|
2159
|
+
'q1': xt.Quadrupole(k1=20, length=4),
|
2160
|
+
's1': xt.Sextupole(k2=50, length=8),
|
2161
|
+
'o1': xt.Octupole(k3=100, length=9),
|
2162
|
+
})
|
2163
|
+
|
2164
|
+
line.configure_bend_model(core='drift-kick-drift-exact', edge='dipole-only', integrator='teapot', num_multipole_kicks=4)
|
2165
|
+
line.configure_quadrupole_model(model='drift-kick-drift-expanded', edge='full', integrator='uniform', num_multipole_kicks=5)
|
2166
|
+
line.configure_sextupole_model(model='drift-kick-drift-exact', edge='full', integrator='yoshida4', num_multipole_kicks=6)
|
2167
|
+
line.configure_octupole_model(model='mat-kick-mat', edge=None, integrator='uniform', num_multipole_kicks=7)
|
2168
|
+
|
2169
|
+
assert line['b1'].model == 'drift-kick-drift-exact'
|
2170
|
+
assert line['b1'].edge_entry_active == True
|
2171
|
+
assert line['b1'].edge_exit_active == True
|
2172
|
+
assert line['b1'].edge_entry_model == 'dipole-only'
|
2173
|
+
assert line['b1'].edge_exit_model == 'dipole-only'
|
2174
|
+
assert line['b1'].integrator == 'teapot'
|
2175
|
+
assert line['b1'].num_multipole_kicks == 4
|
2176
|
+
|
2177
|
+
assert line['r1'].model == 'drift-kick-drift-exact'
|
2178
|
+
assert line['r1'].edge_entry_model == 'dipole-only'
|
2179
|
+
assert line['r1'].edge_exit_model == 'dipole-only'
|
2180
|
+
assert line['r1'].integrator == 'teapot'
|
2181
|
+
assert line['r1'].num_multipole_kicks == 4
|
2182
|
+
|
2183
|
+
assert line['q1'].model == 'drift-kick-drift-expanded'
|
2184
|
+
assert line['q1'].edge_entry_active == True
|
2185
|
+
assert line['q1'].edge_exit_active == True
|
2186
|
+
assert line['q1'].integrator == 'uniform'
|
2187
|
+
assert line['q1'].num_multipole_kicks == 5
|
2188
|
+
|
2189
|
+
assert line['s1'].model == 'drift-kick-drift-exact'
|
2190
|
+
assert line['s1'].edge_entry_active == True
|
2191
|
+
assert line['s1'].edge_exit_active == True
|
2192
|
+
assert line['s1'].integrator == 'yoshida4'
|
2193
|
+
assert line['s1'].num_multipole_kicks == 6
|
2194
|
+
|
2195
|
+
assert line['o1'].model == 'mat-kick-mat'
|
2196
|
+
assert line['o1'].edge_entry_active == False
|
2197
|
+
assert line['o1'].edge_exit_active == False
|
2198
|
+
assert line['o1'].integrator == 'uniform'
|
2199
|
+
assert line['o1'].num_multipole_kicks == 7
|
@@ -21,19 +21,21 @@ def test_non_zero_index():
|
|
21
21
|
assert xtrack.mad_loader.non_zero_len(lst) == 3
|
22
22
|
|
23
23
|
|
24
|
-
def
|
24
|
+
def test_add_lists_same_lengths():
|
25
25
|
a = [1, 2, 3, 1, 1, 1]
|
26
26
|
b = [1, 1, 1, 4, 5, 6]
|
27
27
|
c = xtrack.mad_loader.add_lists(a, b, 8)
|
28
28
|
assert c == [2, 3, 4, 5, 6, 7, 0, 0]
|
29
29
|
|
30
30
|
|
31
|
-
def
|
31
|
+
def test_add_lists_different_lengths_pick_longer():
|
32
32
|
a = [1, 2, 3, 1, 1, 1]
|
33
33
|
b = [1, 1, 1, 4, 5, 6, 7, 8]
|
34
34
|
c = xtrack.mad_loader.add_lists(a, b, 8)
|
35
35
|
assert c == [2, 3, 4, 5, 6, 7, 7, 8]
|
36
36
|
|
37
|
+
|
38
|
+
def test_add_lists_manually_extend():
|
37
39
|
a = [1, 2, 3, 1, 1, 1]
|
38
40
|
b = [1, 1, 1, 4, 5, 6, 7, 8]
|
39
41
|
c = xtrack.mad_loader.add_lists(a, b, 10)
|
@@ -336,6 +338,69 @@ def test_srotation():
|
|
336
338
|
assert line[1].angle == line.vars['angle']._value * 180 / np.pi
|
337
339
|
|
338
340
|
|
341
|
+
def test_thick_kicker_option():
|
342
|
+
mad = Madx(stdout=False)
|
343
|
+
|
344
|
+
mad.input("""
|
345
|
+
vk: vkicker, l=2, kick=2;
|
346
|
+
hk: hkicker, l=2, kick=3;
|
347
|
+
ki: kicker, l=2, vkick=4, hkick=5;
|
348
|
+
vk_thin: vkicker, lrad=2, kick=6;
|
349
|
+
hk_thin: hkicker, lrad=2, kick=7;
|
350
|
+
ki_thin: kicker, lrad=2, vkick=8, hkick=9;
|
351
|
+
|
352
|
+
ss: sequence, l = 6;
|
353
|
+
vk: vk, at = 1;
|
354
|
+
hk: hk, at = 3;
|
355
|
+
ki: ki, at = 5;
|
356
|
+
vk_thin: vk_thin, at = 6;
|
357
|
+
hk_thin: hk_thin, at = 6;
|
358
|
+
ki_thin: ki_thin, at = 6;
|
359
|
+
endsequence;
|
360
|
+
|
361
|
+
beam; use, sequence=ss;
|
362
|
+
""")
|
363
|
+
line = MadLoader(mad.sequence.ss, enable_expressions=True, allow_thick=True, enable_thick_kickers=True).make_line()
|
364
|
+
|
365
|
+
_, vk, hk, ki, vk_thin, hk_thin, ki_thin, _ = line.elements
|
366
|
+
|
367
|
+
assert isinstance(vk, xt.Magnet)
|
368
|
+
assert isinstance(hk, xt.Magnet)
|
369
|
+
assert isinstance(ki, xt.Magnet)
|
370
|
+
assert isinstance(vk_thin, xt.Multipole)
|
371
|
+
assert isinstance(hk_thin, xt.Multipole)
|
372
|
+
assert isinstance(ki_thin, xt.Multipole)
|
373
|
+
|
374
|
+
def assert_integrated_strength_eq(value, expected):
|
375
|
+
padded_expected = np.zeros_like(value)
|
376
|
+
padded_expected[:len(expected)] = expected
|
377
|
+
assert np.all(value == padded_expected)
|
378
|
+
|
379
|
+
assert_integrated_strength_eq(vk.knl, [0])
|
380
|
+
assert_integrated_strength_eq(vk.ksl, [2])
|
381
|
+
assert vk.length == 2
|
382
|
+
|
383
|
+
assert_integrated_strength_eq(hk.knl, [-3])
|
384
|
+
assert_integrated_strength_eq(hk.ksl, [0])
|
385
|
+
assert hk.length == 2
|
386
|
+
|
387
|
+
assert_integrated_strength_eq(ki.knl, [-5])
|
388
|
+
assert_integrated_strength_eq(ki.ksl, [4])
|
389
|
+
assert ki.length == 2
|
390
|
+
|
391
|
+
assert_integrated_strength_eq(vk_thin.knl, [0])
|
392
|
+
assert_integrated_strength_eq(vk_thin.ksl, [6])
|
393
|
+
assert vk_thin.length == 2
|
394
|
+
|
395
|
+
assert_integrated_strength_eq(hk_thin.knl, [-7])
|
396
|
+
assert_integrated_strength_eq(hk_thin.ksl, [0])
|
397
|
+
assert hk_thin.length == 2
|
398
|
+
|
399
|
+
assert_integrated_strength_eq(ki_thin.knl, [-9])
|
400
|
+
assert_integrated_strength_eq(ki_thin.ksl, [8])
|
401
|
+
assert ki_thin.length == 2
|
402
|
+
|
403
|
+
|
339
404
|
def test_xrotation():
|
340
405
|
mad = Madx(stdout=False)
|
341
406
|
|
@@ -140,7 +140,7 @@ def test_eq_emitt(conf):
|
|
140
140
|
checked = True
|
141
141
|
elif not tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
142
142
|
xo.assert_allclose(ex, 7.0714e-10, atol=0, rtol=1e-4)
|
143
|
-
xo.assert_allclose(ey, 5.
|
143
|
+
xo.assert_allclose(ey, 5.6986e-13, atol=0, rtol=4e-3)
|
144
144
|
xo.assert_allclose(ez, 3.8595e-6, atol=0, rtol=1e-4)
|
145
145
|
checked = True
|
146
146
|
elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
@@ -154,7 +154,7 @@ def test_eq_emitt(conf):
|
|
154
154
|
xo.assert_allclose(ez, 3.5828e-6, atol=0, rtol=1e-4)
|
155
155
|
checked = True
|
156
156
|
elif tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
|
157
|
-
xo.assert_allclose(ex, 2.
|
157
|
+
xo.assert_allclose(ex, 2.2393e-12, atol=0, rtol=7e-3)
|
158
158
|
xo.assert_allclose(ey, 7.1345e-10, atol=0, rtol=1e-4)
|
159
159
|
xo.assert_allclose(ez, 3.5828e-6, atol=0, rtol=1e-4)
|
160
160
|
checked = True
|