xtrack 0.76.1__tar.gz → 0.77.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.76.1 → xtrack-0.77.0}/PKG-INFO +1 -1
- xtrack-0.77.0/examples/transition_crossing/000_bucket_and_long_matching.py +107 -0
- xtrack-0.77.0/examples/transition_crossing/001_check_energy_variables.py +57 -0
- xtrack-0.77.0/examples/transition_crossing/002_transition_crossing.py +178 -0
- xtrack-0.77.0/examples/transition_crossing/t000_bucket_checks_below_transition.py +172 -0
- xtrack-0.77.0/examples/transition_crossing/t001_bucket_checks_above_transition.py +171 -0
- xtrack-0.77.0/examples/transition_crossing/t002_bucket_checks_below_transition_uncompensated_lag.py +168 -0
- xtrack-0.77.0/examples/transition_crossing/t003_bucket_checks_above_transition_uncompensated_lag.py +168 -0
- xtrack-0.77.0/examples/transition_crossing/t005_check_with_energy_program.py +187 -0
- xtrack-0.77.0/examples/transition_crossing/t006_energy_change_element.py +186 -0
- xtrack-0.77.0/tests/test_bucket_with_ref_energy_change.py +1016 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_native_madloader.py +243 -5
- xtrack-0.76.1/tests/test_particles_api.py → xtrack-0.77.0/tests/test_particles.py +54 -0
- xtrack-0.77.0/xtrack/_version.py +1 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures.py +1 -1
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/environment.py +3 -2
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/line.py +24 -3
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_parser/loader.py +244 -107
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_parser/parse.py +1 -9
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/slicing.py +5 -6
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack.egg-info/PKG-INFO +1 -1
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack.egg-info/SOURCES.txt +11 -1
- xtrack-0.76.1/xtrack/_version.py +0 -1
- {xtrack-0.76.1 → xtrack-0.77.0}/.gitattributes +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/.gitignore +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/LICENSE +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/MANIFEST.in +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/README.md +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/contributors.txt +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/base_classes.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/particles.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/acceleration/000_acceleration.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/acceleration/001_energy_ramp.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/acceleration/002_energy_ramp_transverse.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/amplitude_detuning/000_detuning.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/000_rect_aperture_standalone.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/000a_rect_aperture_with_tilt_shifts.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/001_rect_aperture_withinline.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/002_global_aperture.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/003_polygon.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/004_racetrack.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/apertures/005_import_polygon_from_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/cavity_absolute_time/000_cavity_absolute_time.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/cavity_absolute_time/001_with_functions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/coasting/001_frev_meas.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/coasting/e000_illustration.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/000_secondary_production.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/001_loss_location_refinement.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/002_loss_refinement_check_cone.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/003_all_together.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/collimation/004_check_skip_refinement_for_collimator.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/000_convert.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/001_doit +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/002_new_madloader.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/003_riccardo.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/004_load_optics_file.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/lhc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/lhc.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/optics.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/convert_lhc/squeeze_0.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/coupling_knobs/000_generate_coupling_konbs.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/coupling_knobs/001_check_against_legacy.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/coupling_knobs/002_check_twiss_complex_cmin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/crab_dispersion/000_crab_dispersion.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/crab_dispersion/001_crab_dispersion_freeze_vars.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/crab_dispersion/002_crab_dispersion_open.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/crab_trim_with_knob/000_investigate.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/dynamic_aperture/000_tracking_for_da.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_internal_record/000_internal_record.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_internal_record/001_multirecord.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_internal_record/002_record_in_individual_element.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/000_element_transform.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/000a_multipolar_components.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/001_sliced_element_transform.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/001a_sliced_multipolar_components.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/002_multipoles_in_quad.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/010_replica_loops.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t000_check_tilt_shifts_against_mad.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t000a_test_shift_x.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t000b_test_shift_y.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t000c_test_rot_s.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t001_edges_in_bend.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t001a_edges_in_bend_exit.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002b_quad_slice_ref_thin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002c_bend_slice_ref_thin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002d_sext_slice_ref_thin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002e_oct_slice_ref_thin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t002g_drift_slice_ref_thin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t004b_quad_slice_ref_thick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t004c_bend_slice_ref_thick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t004d_sext_slice_ref_thick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t004e_oct_slice_ref_thick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t005a_check_attr.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t009_check_is_drift.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t011_check_flags.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t012_check_traansformations_against_sandwitch.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t014_check_survey.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t015_insert_in_replicas.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t015a_insert_in_replicas_thin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/t016_insert_thick_change_s.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/element_transformations/ttt.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee/000_build_xsuite_model.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee/001_match_emittance.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee/002_vertical_ring_check.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee/install_wigglers.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/004a_prepare_fcc_lattice_with_solenoid.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/004b_correction.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/004c_radiation.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t000_compare_against_boris.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t000_investigate_tilt.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t000a_plot_benchmark.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t000b_simplified_illustration.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t001_dispersion_boris.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fcc_ee_solenoid/t002_check_tilted_drift.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/fodo/000_fodo.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/footprint/000_footprint.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/footprint/001_footprint_frozen_longitudinal.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/footprint/002_footprint_checks.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/footprint/003_stability_diagram.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/freeze_longitudinal/000_freeze_unfreeze_explicit.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/freeze_longitudinal/001_freeze_context_manager.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/freeze_longitudinal/002_freeze_individual_methods.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/000_tracking_example.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/005_one_turn_check.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/006_timing.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/007_test_freeze_vars.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/full_ring/make_short_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/functions_in_knobs/000_define_function.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/functions_in_knobs/001_track_with_function.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/insert_elements/000_multiple_thick_insertions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/ion_fragments/000_dev.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/knobs/000_fodo.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/knobs/001_lhc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/knobs/002_from_json.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_and_optics_files/000_example.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_and_optics_files/pimm_lattice.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_and_optics_files/pimm_optics.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000_environemnt.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000a_subline.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000b_builder.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000c_repeated_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/000d_env_to_json.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/003_view.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/006_select_in_multiline.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007a_element_creation_and_placing.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007b_insert_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007c_insert_individual.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007d_insert_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007e_append_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007f_remove_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007g_replace_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/007h_insert_element_instantiated_by_user.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/008a_line_composition.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/008b_composition_with_replicas.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/008c_place_line_at_s.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/008d_environment.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009a_insert_repeated_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009b_insert_with_anchors.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009c_insert_anchor_in_new_and_old.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009d_insert_object.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009e_individual_insertions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009f_individual_insertions_anchor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/009g_insert_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/010_anchors.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/010b_anchors_compact.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/010c_check_timing_on_large_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/010d_anchor_lines.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/011_remove_element_env.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/011a_remove_element_from_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/012_replace_element.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/013_slice_repeated_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/014_append.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/015_twin_lines.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/016_extend_multipoles.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/ring.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/ring.json.gz +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t000_test_env.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t001_check_with_subline.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t002_issue_rep_elems.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t003_issue_ref.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t005_env_methods.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t006_get_eval_etc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lattice_design/t007_builder_length.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/legacy_multiline_to_environment/000_convert.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lep/000_lep.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lep/001_check_against_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lep/lep.opt9 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lep/lep.seq9 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/001_check.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/000_runsix.sh +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.16 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.2 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.3.offmom +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.3.onmom +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_against_sixtrack/sixtrack_lhc_no_bb/fort.8 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_native_python/000_generate_py_lattice_file.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_native_python/001_inspect_py_lattice.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_native_python/003_env_from_mad_native_loader.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_native_python/lhc_seq.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/000_makethin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/001_insert_thin_elements_after_makethin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/002_compare_thick_twiss_vs_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/003_makethin_convergence_speed_vs_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/004_slice_every_x_meters.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_thick/t000_thick_sextupole.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_with_env/000_make_env.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/lhc_with_env/001_check_env.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/000_collider_from_mad.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/001_check_b2.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/003_load_thick_with_errors.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/004_check_power_op.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/convert_multipole.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/job.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_loader/multipole.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/000_to_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/001_to_madng.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/001a_madng_rdt.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/001c_dev_madng_interface.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/001d_madng_tilt_shift.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/002_madng_checks.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/003_example_pymadng_from_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/005_skew_quad.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/006_check_skew_quad.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/007_check_octupole.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/008_check_to_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/mad_writer/t000_investigate_sympl.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/000_match_basic.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/001_match_interactive.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/002_match_bump_basic.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/002a_match_bump_init_end.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/002b_match_bump_init_middle.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/003_match_bump_from_table.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/004_match_bump_common_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/005_match_bump_common_ele_callable_ineq.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/005a_match_bump_common_targets_from_table.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/006_match_action.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/007_match_knob.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match/t003_match_bump_from_table_collider.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_octupole_phase_knob/.gitignore +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_octupole_phase_knob/000_dev.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/000_build_xsuite_model.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/001_change_ip15_phase.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/001a_change_beta_star.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/001b_match_on_disp.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/002_check_optics_and_orbit_knobs_xsuite_and_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/010_check_phase_advances.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/011_match_all_arcs.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/012_match_ir2.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/020_match_ir7.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/020t_time_vs_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/030_FODO_with_knobs.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/make_one_crossing_knob.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/notes.txt +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t000b_match_arc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t000c_match_arc_nested_optim.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t000d_match_all_arcs.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t004_time_madx_ip15_phase.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/match_optics/t005_match_options.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/000_example_quick_monitor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/001_example_custom_monitor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/002_example_custom_monitor_multiframe.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/003_monitors_as_beam_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/monitor/004_monitor_standalone.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/multisetter/000_sps_50hz_ripple.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/000_multipole.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/001_bend.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/002_dipole_edge.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/003_quadrupole.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/004_sextupole.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/005_octupole.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/multispecies_check/006_cavity.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/000_pimms.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/001_psb.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/002_lhc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/004_ps.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/native_madloader/005_leir.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/nonlinear_lens/000_compare_against_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/nonlinear_tunes/detuning.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/nonlinear_tunes/nonlinear_tunes.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/optics_correction/000_dev.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/optics_correction/001_md.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/optimize_function/000_dev.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/optimized_tracker/000_optimized_tracker.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/optimized_tracker/001_time_tracking_on_gpu.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/optimized_tracker/002_time_tracking_on_cpu.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/000_closed_orbit_correction_basic.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/001_closed_orbit_correction_micado.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/002_closed_orbit_correction_customize.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/003_closed_orbit_correction_thread.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/004_thread_before_co_corr.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/005_transfer_line_correction.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/orbit_and_tracjectory_correction/006_fcc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pipeline/000_multitracker.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pipeline/001_tracker_only.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/print_package_paths.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000a_all_xsuite_import_model.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000b_setup_chicane.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000c_chicane_time_functions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000d_correct_beta_beating.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000e_makethin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000f_track.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/000g_multiturn_inj.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/001_compare_against_ptc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/001b_compare_against_ptc_from_json.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/002_compare_fringe_implem.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/003_backtrack_thick_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/004_dev_acceleration.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/005_double_harmonic.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/102_vs_ptc_approaching_half_integer.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/psb/ptc_ref.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/000_tracking_example_with_pyht.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/001_pyht_synchrotron.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/002_headtailInstability.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/003_headtailInstability_cpu_gpu.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/004_imped_spacech_cpu_gpu.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/LHC.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/madx_sps/lhc_q20.str +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/madx_sps/macro.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/madx_sps/sps.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/pyheadtail_interface/wakes/wakeforhdtl_PyZbase_Allthemachine_7000GeV_B1_2021_TeleIndex1_wake.dat +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radial_steering/000_radial_steering.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radial_steering/001_radial_steering_psb.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/.gitignore +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/002_single_dipole.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/003_kick_histogram.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/004_damping_against_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/005_radiation_example.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/006_make_gaussian_bunch.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/007_record_photons.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/008_convergence_bend.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/009a_sps_with_vertical_bump.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/009b_sps_illustrate_dumping_and_excitation.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/009c_sps_single_kicker.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/009d_sps_wiggler.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/n_photons.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/radiation/t005_mad_only.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/random_number_generator/000_zero_occurrence_and_min.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/random_number_generator/001_usage_in_beam_element.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rbendrbarc/000_dev.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/relative_errors/000_basic_error_definition.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/relative_errors/001_random_errors_on_quad_family.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/relative_errors/003_check_all_elems_kick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/000_toy_ring_xt.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/001_toy_ring_rft_volume.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/002_toy_ring_rft_element.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/003_analysis.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/100_particle_losses.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/200_fodo_cell.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/300_solenoid.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/400_Ez_on-axis_TD26__vg1p8_r05_CC_EDMS.txt +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/rf_track/400_rf_fieldmap_1d.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/sequence/000_sequence.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/slipstacking/000_slip_stacking.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/slipstacking/dev.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/000_elena_chromatic_functions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/001_check_against_ptc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/002_compare_contributions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/003_pimms.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/004_pimms_extract.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/005_pimms_extract_spiral_step.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/006_pimms_survey.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/007_clean_up_extraction.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/small_rings/t001_check_ps.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/solenoid/001_multipole_shifts.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/solenoid/002_multipole_rotations.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/spacecharge/000_spacecharge_example.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/spacecharge/001_spacecharge_footprint.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/spacecharge/footprint.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/symm_twiss_and_match/000_symm_twiss_and_match.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/symm_twiss_and_match/t000_test_twiss_symm.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/t007_vars_features.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/000_taper.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/001_taper_and_compare_twiss_methods.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/002_taper_coupling_check.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/003_track_no_taper.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/100_generate_fcc_line_no_rad.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/101_fccee_madx_radiation_thick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tapering/fccee_t.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/taylor_map/000_line_with_maps.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/taylor_map/001_check_against_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/to_json/000_lattice_to_json.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/000_toy_ring.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/000a_toy_ring_specify_s.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/001_analysis.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/002_expressions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/003_slicing.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/004_inspect.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/005_insert_element.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/006a_dynamic_bump_sin.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/006b_dynamic_bump_piece_wise_linear.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/006c_dynamic_bump_sin_env.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/007_cut_at_s.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/toy_ring/008_repeated_elements_clones_replicas.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tracker/000_track.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tracker/001_tracker_start_stop.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/tracker/002_backtrack.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/000_basics.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/001_MuonCollider_example.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/002_check_with_twiss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/003_check_longitudinal.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/004_multiple_buckets.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/transfer_matrix/005_radiation.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000_twiss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000a_twiss_range.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000b_twiss_range_periodic.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000c_twiss_range_init_middle.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000d_twiss_ele_co_search.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000e_twiss_reverse.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/000f_twiss_default.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/001_check_against_mad.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/002_twiss_on_fodo.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003_match_tune_chroma.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003a_match_coupling.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003b_match_4c_bump.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003c_match_bump_with_weights.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003d_match_bump_inequalities.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003e_match_phase_ineq.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/003f_match_clone.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/004_twiss_b4_vs_b2.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/005_survey.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/006_survey_b4_vs_b2.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/007_survey_element0.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/008_4d_twiss_and_particle_match.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/009_twiss_zeta0_delta0.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/010_coupled_beta.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/011_tune_vs_delta.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/012_compute_norm_coordinates.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/013_R_matrix_between_two_points.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/014_check_W_propagation.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/015_remove_thin_groups.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/016_local_twiss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/017_table_slicing.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/018_compute_beam_sizes.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/021_time_small_twiss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/022_custom_twiss_init.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/023_build_chroma_knob.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/026a_chromatic_functions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/026b_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/026c_measure_triplet_chromaticity.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/026d_match_w_chrom.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/027_optics_from_sigma_mat.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/028_ddx_ddqx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/029_strengths_in_twiss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/030_one_turn_arbitrary_start.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/031_twiss_plot.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/032_twiss_with_collective.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/t000_mem_issue.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss/t003f_match_clone_checks.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss_multiturn/000_sps.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/examples/twiss_multiturn/001_ps.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/pyproject.toml +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/release.sh +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/setup.cfg +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/setup.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/clic_dr/000_make_lines.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/clic_dr/line.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/clic_dr/line_for_taper.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/clic_dr/sequence.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/elena/elena.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/elena/highenergy.beam +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/elena/highenergy.str +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/000_build_xsuite_model.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/Bz_closed_before_quads.dat +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_h.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_h_thin.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_t.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_w.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/fccee_z.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fcc_ee/install_wigglers.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/.gitignore +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/fringe.lua +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/fringe_vs_madng.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/initial_particles.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/octupole_fringe.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/quadrupole_fringe.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/fringe_vs_madng/sextupole_fringe.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/h6_experimental_line/h6-fm.str +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/h6_experimental_line/h6fm04.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/.gitignore +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/final_errors.tfs +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/final_seq.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/from_pymask/000_pymask.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/from_pymask/config.yaml +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_input_mad/from_pymask/optics_specific_tools.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/000_generate_line_jsons.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/lhcb1_seq.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/lhcb4_seq.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/line_b1.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc14_no_errors_with_coupling_knobs/line_b4.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_collider/collider_00_from_mad.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_collider/get_from_xmask.sh +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/000_sequence_from_optics_repo.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/001_xtline_from_madseq.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/002_thick_sequence_from_optics_repo.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/line_and_particle.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/line_w_knobs_and_particle.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/sequence.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/sequence_b4.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_noerrors_nobb/sequence_with_crabs.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/000_build_thick_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/001_build_thick_collider.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/hllhc15_collider_thick.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/hllhc15_collider_thick_legacy_multiline.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/hllhc_sequence.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/lhc.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/lhc_thick_with_knobs.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/lhcb4.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/opt_round_150_1500.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc15_thick/opt_round_300_1500.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/000_test_against_sixtrack_and_save_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/fort.2 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/fort.3 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/line_and_particle.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/hllhc_14/runsix +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/leir/leir.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/leir/leir_inj_nominal.beam +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/leir/leir_inj_nominal.str +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_2024/injection_optics.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_2024/lhc.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/000_make_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/fort.16 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/fort.2 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/fort.3 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/fort.8 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/line_and_particle.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/runsix +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/fort.16 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/fort.2 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/fort.3 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/fort.8 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_no_bb/sixtrack_timing/sim_time.dat +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/000_generate_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/fort.16 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/fort.2 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/fort.3 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/fort.8 +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/line_and_particle.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/lhc_with_bb/runsix +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/pimms/PIMM.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/pimms/PIMMS.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/pimms/betatron.str +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/ps_sftpro/ps.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/ps_sftpro/ps_hs_sftpro.str +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/README +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/Ramp_and_RF_functions.dat +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/chicane_collapse.csv +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/inj_distrib.dat +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/psb.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/psb_fb_lhc.str +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_chicane/ptc_ref.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_injection/000_generate_xsuite_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_injection/line_and_particle.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/psb_injection/psb_injection.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_ions/000_make_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_ions/SPS_2021_Pb_ions_thin_test.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_ions/line_and_particle.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_thick/aperturedb_classes.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_thick/aperturedb_elements.madx +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_thick/lhc_q20.str +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_thick/sps.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_to_lhc_ti2/ti2.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_to_lhc_ti2/ti2_liu.str +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_w_spacecharge/000_prepare_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_w_spacecharge/line_no_spacecharge_and_particle.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_w_spacecharge/line_with_spacecharge_and_particle.json +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/test_data/sps_w_spacecharge/sps_thin.seq +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/conftest.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/pytest_onebyone.sh +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_acceleration.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_apertures.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_coasting.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_collimation.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_elements_thick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_environment.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_footprint.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_full_rings.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_hvkick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_ions.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_legacy_multiline_to_env.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_lhc_env.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_line.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_lumi.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_mad_writer.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_madloader.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_madnginterface.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_nested.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_monitor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_multiline.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_multisetter.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_multispecies.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_pipeline.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_radial_steering.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_radiation.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_random_gen.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_rbend_rbarc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_rf_track.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_seeds.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_slice_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_slicing.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_sps_thick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_survey.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_tapering.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_tracker.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_twiss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_vs_madx.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/update_cprght_statement.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/base_element.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/bend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/octupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/rbend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_bend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_multipolar_components.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/slice_elements.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/beam_elements/slice_elements_thick.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/footprint.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/general.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/checks.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/constants.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/internal_record.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/json.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/lumi.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_loader.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_parser/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/mad_writer.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/madng_interface.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/match.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multiline.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multiline_legacy/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multiline_legacy/shared_knobs.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/constants.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/particles.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/__init__.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/survey.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/synctime.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/tapering.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/targets.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/tracker.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/tracker_data.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/twiss.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack/twissplot.py +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.76.1 → xtrack-0.77.0}/xtrack.egg-info/top_level.txt +0 -0
@@ -0,0 +1,107 @@
|
|
1
|
+
import xtrack as xt
|
2
|
+
import xpart as xp
|
3
|
+
from xpart.longitudinal.rf_bucket import RFBucket
|
4
|
+
|
5
|
+
import numpy as np
|
6
|
+
from scipy.constants import c as clight
|
7
|
+
from scipy.constants import e as qe
|
8
|
+
import matplotlib.pyplot as plt
|
9
|
+
|
10
|
+
gamma0 = 5 # defines the energy of the beam
|
11
|
+
gamma_transition = 4.
|
12
|
+
momentum_compaction_factor = 1 / gamma_transition**2
|
13
|
+
compensate_phase = True
|
14
|
+
|
15
|
+
particle_ref = xt.Particles(gamma0=gamma0,
|
16
|
+
mass0=xt.PROTON_MASS_EV)
|
17
|
+
|
18
|
+
circumference = 1000.
|
19
|
+
t_rev = circumference / (particle_ref.beta0[0] * clight)
|
20
|
+
f_rev = 1 / t_rev
|
21
|
+
|
22
|
+
energy_ref_increment = 50e3 # eV
|
23
|
+
|
24
|
+
eta = momentum_compaction_factor - 1 / particle_ref.gamma0[0]**2
|
25
|
+
|
26
|
+
h_rf = 40
|
27
|
+
|
28
|
+
f_rf = h_rf * f_rev
|
29
|
+
v_rf = 100e3
|
30
|
+
lag_rf = 180. if eta > 0. else 0.
|
31
|
+
|
32
|
+
# Compute momentum increment using auxiliary particle
|
33
|
+
dp0c_eV = energy_ref_increment / particle_ref.beta0[0]
|
34
|
+
|
35
|
+
if compensate_phase:
|
36
|
+
phi = np.arcsin(dp0c_eV * particle_ref.beta0[0] / v_rf)
|
37
|
+
if eta > 0:
|
38
|
+
phi = np.pi - phi
|
39
|
+
lag_rf = np.rad2deg(phi)
|
40
|
+
|
41
|
+
otm = xt.LineSegmentMap(
|
42
|
+
betx=1., bety=1,
|
43
|
+
qx=6.3, qy=6.4,
|
44
|
+
momentum_compaction_factor=momentum_compaction_factor,
|
45
|
+
longitudinal_mode="nonlinear",
|
46
|
+
voltage_rf=v_rf,
|
47
|
+
frequency_rf=f_rf,
|
48
|
+
lag_rf=lag_rf,
|
49
|
+
length=circumference,
|
50
|
+
energy_ref_increment=energy_ref_increment
|
51
|
+
)
|
52
|
+
|
53
|
+
line = xt.Line(elements=[otm], particle_ref=particle_ref)
|
54
|
+
|
55
|
+
tw = line.twiss()
|
56
|
+
|
57
|
+
delta_test = np.linspace(0, 5e-3, 20)
|
58
|
+
p = line.build_particles(delta=delta_test)
|
59
|
+
|
60
|
+
line.track(p, turn_by_turn_monitor=True, num_turns=1000)
|
61
|
+
mon = line.record_last_track
|
62
|
+
|
63
|
+
p_gauss, matcher = xp.generate_matched_gaussian_bunch(
|
64
|
+
line=line,
|
65
|
+
num_particles=10_000,
|
66
|
+
nemitt_x=2.5e-6,
|
67
|
+
nemitt_y=2.5e-6,
|
68
|
+
sigma_z=2.,
|
69
|
+
return_matcher=True)
|
70
|
+
|
71
|
+
rfb = line._get_bucket()
|
72
|
+
z_separatrix = np.linspace(rfb.z_left, rfb.z_right, 1000)
|
73
|
+
delta_separatrix = rfb.separatrix(z_separatrix)
|
74
|
+
|
75
|
+
plt.close('all')
|
76
|
+
plt.figure(1)
|
77
|
+
plt.plot(p_gauss.zeta, p_gauss.delta, '.', color='k', alpha=0.5)
|
78
|
+
plt.plot(mon.zeta.T, mon.delta.T, color='C0')
|
79
|
+
plt.plot(z_separatrix, delta_separatrix, color='C1')
|
80
|
+
plt.plot(z_separatrix, -delta_separatrix, color='C1')
|
81
|
+
plt.xlabel('zeta [m]')
|
82
|
+
plt.ylabel('delta')
|
83
|
+
|
84
|
+
# Check the force and hamiltonian
|
85
|
+
z_test = np.linspace(-30, 30, 1000)
|
86
|
+
force = rfb.total_force(z_test)
|
87
|
+
hamiltonian = rfb.hamiltonian(z_test, 0)
|
88
|
+
|
89
|
+
plt.figure(2)
|
90
|
+
ax1 = plt.subplot(2,1,1)
|
91
|
+
ax1.plot(z_test, force)
|
92
|
+
ax1.set_ylabel(r'F($\zeta$)')
|
93
|
+
ax2 = plt.subplot(2,1,2, sharex=ax1)
|
94
|
+
ax2.plot(z_test, hamiltonian)
|
95
|
+
ax2.set_xlabel(r'$\zeta$ [m]')
|
96
|
+
ax2.set_ylabel(r'$H(\zeta, 0)$')
|
97
|
+
|
98
|
+
# Check hamiltonian on the delta axis
|
99
|
+
delta_test = np.linspace(-1e-2, 1e-2, 1000)
|
100
|
+
plt.figure(3)
|
101
|
+
plt.plot(delta_test, matcher.rfbucket.hamiltonian(0, delta_test))
|
102
|
+
plt.plot(delta_test, matcher.psi_object.H(0, delta_test))
|
103
|
+
plt.plot(delta_test, matcher.rfbucket.hamiltonian(0, delta_test, make_convex=True), '--')
|
104
|
+
plt.xlabel(r'$\delta$')
|
105
|
+
plt.ylabel(r'$H(0, \delta)$')
|
106
|
+
|
107
|
+
plt.show()
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import xtrack as xt
|
2
|
+
import xobjects as xo
|
3
|
+
import numpy as np
|
4
|
+
from scipy.constants import c as clight
|
5
|
+
|
6
|
+
p = xt.Particles(mass0=xt.PROTON_MASS_EV, q0=1,
|
7
|
+
kinetic_energy0=50e6, delta=0.1)
|
8
|
+
|
9
|
+
beta0 = p.beta0[0]
|
10
|
+
gamma0 = p.gamma0[0]
|
11
|
+
mass0_ev = p.mass0
|
12
|
+
energy0 = p.energy0[0]
|
13
|
+
energy = p.energy[0]
|
14
|
+
p0c = p.p0c[0]
|
15
|
+
|
16
|
+
delta = p.delta[0]
|
17
|
+
ptau = p.ptau[0]
|
18
|
+
pzeta = p.pzeta[0]
|
19
|
+
|
20
|
+
beta = beta0 * p.rvv[0]
|
21
|
+
gamma = energy / energy0 * gamma0
|
22
|
+
|
23
|
+
xo.assert_allclose(gamma0, 1 / np.sqrt(1 - beta0**2), rtol=0, atol=1e-14)
|
24
|
+
xo.assert_allclose(gamma, 1 / np.sqrt(1 - beta**2), rtol=0, atol=1e-14)
|
25
|
+
xo.assert_allclose(energy, mass0_ev * gamma, rtol=0, atol=1e-6) # 1e-6 eV
|
26
|
+
xo.assert_allclose(energy0, mass0_ev * gamma0, rtol=0, atol=1e-6) # 1e-6 eV
|
27
|
+
|
28
|
+
Pc = p0c * (1 + delta)
|
29
|
+
xo.assert_allclose(Pc, mass0_ev * gamma * beta, rtol=0, atol=1e-6) # 1e-6 eV
|
30
|
+
|
31
|
+
# Definitions delta/ptau/pzeta
|
32
|
+
xo.assert_allclose(delta, (Pc - p0c) / p0c, rtol=0, atol=1e-14)
|
33
|
+
xo.assert_allclose(ptau, (energy - energy0) / energy0 / beta0, rtol=0, atol=1e-14)
|
34
|
+
xo.assert_allclose(pzeta,(energy - energy0) / energy0 / beta0**2, rtol=0, atol=1e-14)
|
35
|
+
xo.assert_allclose(pzeta,(energy - energy0) / p0c / beta0, rtol=0, atol=1e-14)
|
36
|
+
|
37
|
+
# Conversions
|
38
|
+
xo.assert_allclose(delta, np.sqrt(ptau**2 + 2*ptau/beta0 + 1) - 1, rtol=0, atol=1e-14)
|
39
|
+
xo.assert_allclose(delta, np.sqrt(beta0**2 * pzeta**2 + 2*pzeta + 1) - 1, rtol=0, atol=1e-14)
|
40
|
+
xo.assert_allclose(delta, beta * ptau + (beta - beta0)/beta0, rtol=0, atol=1e-14)
|
41
|
+
xo.assert_allclose(delta, beta * beta0 * pzeta + (beta - beta0)/beta0, rtol=0, atol=1e-14)
|
42
|
+
|
43
|
+
# More relations from the physics manual
|
44
|
+
xo.assert_allclose(gamma, gamma0 * (1 + beta0 * ptau), rtol=0, atol=1e-14)
|
45
|
+
xo.assert_allclose(beta, np.sqrt(1 - (1 - beta0**2)/(1 + beta0 * ptau)**2), rtol=0, atol=1e-14)
|
46
|
+
|
47
|
+
# Check relations for small energy deviations
|
48
|
+
p_small = xt.Particles(mass0=xt.PROTON_MASS_EV, q0=1,
|
49
|
+
kinetic_energy0=50e6, delta=1e-4)
|
50
|
+
delta_small = p_small.delta[0]
|
51
|
+
ptau_small = p_small.ptau[0]
|
52
|
+
pzeta_small = p_small.pzeta[0]
|
53
|
+
beta_small = beta0 * p_small.rvv[0]
|
54
|
+
|
55
|
+
xo.assert_allclose(delta_small, ptau_small/beta0, rtol=0, atol=1e-8)
|
56
|
+
xo.assert_allclose(delta_small, pzeta_small, rtol=0, atol=1e-8)
|
57
|
+
xo.assert_allclose(beta_small, beta0 + (1 - beta0**2) * ptau_small, rtol=0, atol=1e-8)
|
@@ -0,0 +1,178 @@
|
|
1
|
+
import xtrack as xt
|
2
|
+
import xpart as xp
|
3
|
+
from xpart.longitudinal.rf_bucket import RFBucket
|
4
|
+
|
5
|
+
import numpy as np
|
6
|
+
from scipy.constants import c as clight
|
7
|
+
from scipy.constants import e as qe
|
8
|
+
from scipy.interpolate import interp1d
|
9
|
+
import matplotlib.pyplot as plt
|
10
|
+
|
11
|
+
gamma0 = 3. # defines the energy of the beam
|
12
|
+
gamma_transition = 4.
|
13
|
+
momentum_compaction_factor = 1 / gamma_transition**2
|
14
|
+
compensate_phase = True
|
15
|
+
|
16
|
+
particle_ref = xt.Particles(gamma0=gamma0,
|
17
|
+
mass0=xt.PROTON_MASS_EV)
|
18
|
+
|
19
|
+
circumference = 1000.
|
20
|
+
t_rev = circumference / (particle_ref.beta0[0] * clight)
|
21
|
+
f_rev = 1 / t_rev
|
22
|
+
|
23
|
+
energy_ref_increment = 50e3
|
24
|
+
|
25
|
+
eta = momentum_compaction_factor - 1 / particle_ref.gamma0[0]**2
|
26
|
+
|
27
|
+
h_rf = 40
|
28
|
+
|
29
|
+
f_rf = h_rf * f_rev
|
30
|
+
v_rf = 100e3
|
31
|
+
lag_rf = 180. if eta > 0. else 0.
|
32
|
+
|
33
|
+
# Compute momentum increment using auxiliary particle
|
34
|
+
dp0c_eV = energy_ref_increment / particle_ref.beta0[0]
|
35
|
+
|
36
|
+
if compensate_phase:
|
37
|
+
phi_below = np.arcsin(dp0c_eV * particle_ref.beta0[0] / v_rf)
|
38
|
+
phi_above = np.pi - phi_below
|
39
|
+
lag_rf_above = np.rad2deg(phi_above)
|
40
|
+
lag_rf_below = np.rad2deg(phi_below)
|
41
|
+
if eta > 0:
|
42
|
+
lag_rf = lag_rf_above
|
43
|
+
else:
|
44
|
+
lag_rf = lag_rf_below
|
45
|
+
|
46
|
+
otm = xt.LineSegmentMap(
|
47
|
+
betx=1., bety=1,
|
48
|
+
qx=6.3, qy=6.4,
|
49
|
+
momentum_compaction_factor=momentum_compaction_factor,
|
50
|
+
longitudinal_mode="nonlinear",
|
51
|
+
voltage_rf=v_rf,
|
52
|
+
frequency_rf=f_rf,
|
53
|
+
lag_rf=lag_rf,
|
54
|
+
length=circumference,
|
55
|
+
energy_ref_increment=energy_ref_increment
|
56
|
+
)
|
57
|
+
|
58
|
+
line = xt.Line(elements={'otm': otm}, particle_ref=particle_ref)
|
59
|
+
|
60
|
+
tw = line.twiss()
|
61
|
+
|
62
|
+
p, matcher = xp.generate_matched_gaussian_bunch(
|
63
|
+
line=line,
|
64
|
+
num_particles=10_000,
|
65
|
+
nemitt_x=2.5e-6,
|
66
|
+
nemitt_y=2.5e-6,
|
67
|
+
sigma_z=5,
|
68
|
+
return_matcher=True)
|
69
|
+
|
70
|
+
|
71
|
+
# Logger (log every ten turns)
|
72
|
+
num_turns = 50_000
|
73
|
+
log_every = 20
|
74
|
+
n_log = num_turns // log_every
|
75
|
+
mon = xt.ParticlesMonitor(
|
76
|
+
start_at_turn=0,
|
77
|
+
stop_at_turn=1,
|
78
|
+
n_repetitions=n_log,
|
79
|
+
repetition_period=log_every,
|
80
|
+
num_particles=len(p.x))
|
81
|
+
|
82
|
+
#########
|
83
|
+
# Track #
|
84
|
+
#########
|
85
|
+
|
86
|
+
jumped = False
|
87
|
+
i_jumped = None
|
88
|
+
while p.at_turn[0] < num_turns:
|
89
|
+
print(f'Turn {p.at_turn[0]}/{num_turns} ', end='\r', flush=True)
|
90
|
+
|
91
|
+
# Phase jump
|
92
|
+
if p.gamma0[0] > gamma_transition and not jumped:
|
93
|
+
print(f'Jumped at turn: {p.at_turn[0]}')
|
94
|
+
line['otm'].lag_rf = lag_rf_above
|
95
|
+
i_jumped = p.at_turn[0]
|
96
|
+
jumped = True
|
97
|
+
|
98
|
+
# Track
|
99
|
+
line.track(p, num_turns=100, turn_by_turn_monitor=mon)
|
100
|
+
p.reorganize() # (put lost particles at the end)
|
101
|
+
|
102
|
+
############
|
103
|
+
# Plotting #
|
104
|
+
############
|
105
|
+
|
106
|
+
# Generate separatrix for video
|
107
|
+
i_separatrix = []
|
108
|
+
z_separatrix = []
|
109
|
+
delta_separatrix = []
|
110
|
+
for i_sep in np.arange(0, num_turns, 100):
|
111
|
+
print(f'Separatrix {i_sep}/{num_turns} ', end='\r', flush=True)
|
112
|
+
line.particle_ref.gamma0 = mon.gamma0[i_sep//log_every, 0, 0]
|
113
|
+
line['otm'].lag_rf = lag_rf_above if i_sep >= i_jumped else lag_rf_below
|
114
|
+
try:
|
115
|
+
rfb = line._get_bucket()
|
116
|
+
i_separatrix.append(i_sep)
|
117
|
+
z_separatrix.append(np.linspace(rfb.z_left, rfb.z_right, 1000))
|
118
|
+
delta_separatrix.append(rfb.separatrix(z_separatrix[-1]))
|
119
|
+
except:
|
120
|
+
i_separatrix.append(i_sep)
|
121
|
+
z_separatrix.append(np.zeros(1000))
|
122
|
+
delta_separatrix.append(np.zeros(1000))
|
123
|
+
z_separatrix[-1][:] = -1e20
|
124
|
+
delta_separatrix[-1][:] = 0
|
125
|
+
|
126
|
+
sigma_z_rms = np.squeeze(mon.zeta.std(axis=1))
|
127
|
+
z_separatrix = np.array(z_separatrix)
|
128
|
+
delta_separatrix = np.array(delta_separatrix)
|
129
|
+
i_separatrix = np.array(i_separatrix)
|
130
|
+
|
131
|
+
plt.close('all')
|
132
|
+
fig1 = plt.figure(1)
|
133
|
+
plt.plot(mon.at_turn[:, 0, 0], sigma_z_rms)
|
134
|
+
plt.xlabel('Turn')
|
135
|
+
plt.ylabel('Bunch length [m]')
|
136
|
+
plt.show()
|
137
|
+
|
138
|
+
f_sep_z = interp1d(i_separatrix, z_separatrix, axis=0,
|
139
|
+
bounds_error=False, fill_value='extrapolate')
|
140
|
+
f_sep_delta = interp1d(i_separatrix, delta_separatrix, axis=0,
|
141
|
+
bounds_error=False, fill_value='extrapolate')
|
142
|
+
|
143
|
+
# Make movie (needed `conda install -c conda-forge ffmpeg``)
|
144
|
+
def update_plot(i_log, fig):
|
145
|
+
i_turn = mon.at_turn[i_log, 0, 0]
|
146
|
+
z_sep = f_sep_z(i_turn)
|
147
|
+
delta_sep = f_sep_delta(i_turn)
|
148
|
+
|
149
|
+
plot_separatrix = True
|
150
|
+
if np.abs(i_turn - i_jumped) < 100:
|
151
|
+
plot_separatrix = False
|
152
|
+
|
153
|
+
phi_rf_deg = np.rad2deg(phi_above) if i_turn >= i_jumped else np.rad2deg(phi_below)
|
154
|
+
plt.clf()
|
155
|
+
plt.plot(mon.zeta[i_log, :], mon.delta[i_log, :], '.', markersize=1)
|
156
|
+
if plot_separatrix:
|
157
|
+
plt.plot(z_sep, delta_sep, color='C1', linewidth=2)
|
158
|
+
plt.plot(z_sep, -delta_sep, color='C1', linewidth=2)
|
159
|
+
plt.xlim(-10, 10)
|
160
|
+
plt.ylim(-10e-3, 10e-3)
|
161
|
+
plt.xlabel('z [m]')
|
162
|
+
plt.ylabel(r'$\Delta p / p_0$')
|
163
|
+
plt.title(f'Turn {i_turn} '
|
164
|
+
r'$\sigma_\zeta = $' f'{sigma_z_rms[i_log]:.2f}\n'
|
165
|
+
r'$\gamma_0 = $' f'{mon.gamma0[i_log, 0, 0]:.2f} '
|
166
|
+
r'$\gamma_t = $' f'{gamma_transition:.2f} '
|
167
|
+
r'$\phi_{\mathrm{rf}} = $' f'{phi_rf_deg:.2f}')
|
168
|
+
plt.subplots_adjust(left=0.2, top=0.82)
|
169
|
+
plt.grid(alpha=0.5)
|
170
|
+
|
171
|
+
fig = plt.figure()
|
172
|
+
from matplotlib.animation import FFMpegFileWriter
|
173
|
+
moviewriter = FFMpegFileWriter(fps=15)
|
174
|
+
with moviewriter.saving(fig, 'transition.mp4', dpi=100):
|
175
|
+
for j in range(0, len(mon.zeta[:, 0, 0]), 1):
|
176
|
+
print(f'Frame {j}/{len(mon.zeta[:, 0, 0])} ', end='\r', flush=True)
|
177
|
+
update_plot(j, fig)
|
178
|
+
moviewriter.grab_frame()
|
@@ -0,0 +1,172 @@
|
|
1
|
+
import xtrack as xt
|
2
|
+
import xpart as xp
|
3
|
+
import xobjects as xo
|
4
|
+
from xpart.longitudinal.rf_bucket import RFBucket
|
5
|
+
|
6
|
+
import numpy as np
|
7
|
+
from scipy.constants import c as clight
|
8
|
+
from scipy.constants import e as qe
|
9
|
+
import matplotlib.pyplot as plt
|
10
|
+
|
11
|
+
gamma0 = 3 # defines the energy of the beam
|
12
|
+
gamma_transition = 4.
|
13
|
+
momentum_compaction_factor = 1 / gamma_transition**2
|
14
|
+
|
15
|
+
particle_ref = xt.Particles(gamma0=gamma0,
|
16
|
+
mass0=xt.PROTON_MASS_EV)
|
17
|
+
|
18
|
+
circumference = 1000.
|
19
|
+
t_rev = circumference / (particle_ref.beta0[0] * clight)
|
20
|
+
f_rev = 1 / t_rev
|
21
|
+
|
22
|
+
energy_ref_increment = 50e3 # eV
|
23
|
+
|
24
|
+
eta = momentum_compaction_factor - 1 / particle_ref.gamma0[0]**2
|
25
|
+
assert eta < 0
|
26
|
+
|
27
|
+
h_rf = 40
|
28
|
+
|
29
|
+
f_rf = h_rf * f_rev
|
30
|
+
v_rf = 100e3
|
31
|
+
lag_rf = 180. if eta > 0. else 0.
|
32
|
+
|
33
|
+
# Compute momentum increment using auxiliary particle
|
34
|
+
dp0c_eV = energy_ref_increment / particle_ref.beta0[0]
|
35
|
+
|
36
|
+
phi = np.arcsin(dp0c_eV * particle_ref.beta0[0] / v_rf)
|
37
|
+
if eta > 0:
|
38
|
+
phi = np.pi - phi
|
39
|
+
lag_rf = np.rad2deg(phi)
|
40
|
+
|
41
|
+
otm = xt.LineSegmentMap(
|
42
|
+
betx=1., bety=1,
|
43
|
+
qx=6.3, qy=6.4,
|
44
|
+
momentum_compaction_factor=momentum_compaction_factor,
|
45
|
+
longitudinal_mode="nonlinear",
|
46
|
+
voltage_rf=v_rf,
|
47
|
+
frequency_rf=f_rf,
|
48
|
+
lag_rf=lag_rf,
|
49
|
+
length=circumference,
|
50
|
+
energy_ref_increment=energy_ref_increment
|
51
|
+
)
|
52
|
+
|
53
|
+
line = xt.Line(elements={'otm': otm}, particle_ref=particle_ref)
|
54
|
+
|
55
|
+
tw = line.twiss()
|
56
|
+
xo.assert_allclose(tw.slip_factor, eta, atol=1e-3, rtol=0)
|
57
|
+
xo.assert_allclose(tw.qs, 0.0032729, atol=1e-7, rtol=0)
|
58
|
+
|
59
|
+
rfb = line._get_bucket()
|
60
|
+
|
61
|
+
# Mostly checking that they do not change
|
62
|
+
xo.assert_allclose(line['otm'].lag_rf[0], 30., # degrees
|
63
|
+
atol=1e-4, rtol=0)
|
64
|
+
|
65
|
+
xo.assert_allclose(np.rad2deg(rfb.dphi[0]), 30.,
|
66
|
+
atol=1e-4, rtol=0)
|
67
|
+
|
68
|
+
xo.assert_allclose(rfb.z_sfp, 0, atol=1e-4, rtol=0)
|
69
|
+
xo.assert_allclose(rfb.z_ufp, -8.33333, atol=1e-4, rtol=0)
|
70
|
+
xo.assert_allclose(rfb.z_left, rfb.z_ufp, atol=1e-4, rtol=0)
|
71
|
+
xo.assert_allclose(rfb.z_right, 4.7699056, atol=1e-4, rtol=0)
|
72
|
+
|
73
|
+
xo.assert_allclose(rfb.h_sfp(), -30.78255, atol=1e-3, rtol=0)
|
74
|
+
xo.assert_allclose(rfb.h_sfp(), rfb.hamiltonian(0, 0), atol=1e-3, rtol=0)
|
75
|
+
xo.assert_allclose(rfb.h_sfp(make_convex=True), 30.78255, atol=1e-3, rtol=0)
|
76
|
+
xo.assert_allclose(rfb.h_sfp(make_convex=True),
|
77
|
+
rfb.hamiltonian(rfb.z_sfp, 0, make_convex=True),
|
78
|
+
atol=1e-3, rtol=0)
|
79
|
+
|
80
|
+
# Build separatrix
|
81
|
+
z_separatrix_up = np.linspace(rfb.z_left, rfb.z_right, 1000)
|
82
|
+
delta_separatrix_up = rfb.separatrix(z_separatrix_up)
|
83
|
+
|
84
|
+
z_separatrix = np.array(
|
85
|
+
list(z_separatrix_up) + list(z_separatrix_up[::-1]))
|
86
|
+
delta_separatrix = np.array(
|
87
|
+
list(delta_separatrix_up) + list(-delta_separatrix_up[::-1]))
|
88
|
+
|
89
|
+
# Hamiltonian is defined to be zero on the separatrix
|
90
|
+
xo.assert_allclose(rfb.hamiltonian(z_separatrix, delta_separatrix), 0,
|
91
|
+
atol=1e-3, rtol=0)
|
92
|
+
xo.assert_allclose(rfb.hamiltonian(z_separatrix, delta_separatrix, make_convex=True), 0,
|
93
|
+
atol=1e-3, rtol=0)
|
94
|
+
|
95
|
+
# Check that the separatrix behaves as such in tracking
|
96
|
+
p = line.build_particles(delta=delta_separatrix[::10]*0.99, zeta=z_separatrix[::10]*0.99)
|
97
|
+
line.track(p, turn_by_turn_monitor=True, num_turns=3000)
|
98
|
+
mon = line.record_last_track
|
99
|
+
assert np.all(mon.zeta < rfb.z_right)
|
100
|
+
assert np.all(mon.zeta > rfb.z_left)
|
101
|
+
|
102
|
+
p = line.build_particles(delta=delta_separatrix[::10]*1.01, zeta=z_separatrix[::10]*1.01)
|
103
|
+
line.track(p, turn_by_turn_monitor=True, num_turns=3000)
|
104
|
+
mon = line.record_last_track
|
105
|
+
assert not np.all(mon.zeta < rfb.z_right)
|
106
|
+
assert not np.all(mon.zeta > rfb.z_left)
|
107
|
+
|
108
|
+
# Check the stable fixed point against tracking
|
109
|
+
p = line.build_particles(delta=0, zeta=rfb.z_sfp)
|
110
|
+
line.track(p, turn_by_turn_monitor=True, num_turns=3000)
|
111
|
+
mon = line.record_last_track
|
112
|
+
xo.assert_allclose(mon.zeta, rfb.z_sfp, atol=2e-3*(rfb.z_right - rfb.z_left),
|
113
|
+
rtol=0)
|
114
|
+
bucket_height = rfb.separatrix(rfb.z_sfp)[0]
|
115
|
+
xo.assert_allclose(mon.delta, 0, atol=2e-2*bucket_height, rtol=0)
|
116
|
+
|
117
|
+
# Fix numpy random seed
|
118
|
+
np.random.seed(0)
|
119
|
+
|
120
|
+
# Match a bunch
|
121
|
+
sigma_z = 2.
|
122
|
+
p, matcher = xp.generate_matched_gaussian_bunch(
|
123
|
+
line=line,
|
124
|
+
num_particles=100_000,
|
125
|
+
nemitt_x=2.5e-6,
|
126
|
+
nemitt_y=2.5e-6,
|
127
|
+
sigma_z=sigma_z,
|
128
|
+
return_matcher=True)
|
129
|
+
sigma_delta = p.delta.std()
|
130
|
+
|
131
|
+
assert np.all(p.zeta < rfb.z_right)
|
132
|
+
assert np.all(p.zeta > rfb.z_left)
|
133
|
+
assert np.all(p.delta < bucket_height)
|
134
|
+
assert np.all(p.delta > -bucket_height)
|
135
|
+
|
136
|
+
xo.assert_allclose(p.delta.max(), bucket_height, atol=0, rtol=0.03)
|
137
|
+
xo.assert_allclose(p.delta.min(), -bucket_height, atol=0, rtol=0.03)
|
138
|
+
xo.assert_allclose(p.zeta.max(), rfb.z_right, atol=0, rtol=0.03)
|
139
|
+
xo.assert_allclose(p.zeta.min(), rfb.z_left, atol=0, rtol=0.05) # this part of the bucket is poorly populated
|
140
|
+
xo.assert_allclose(p.zeta.std(), sigma_z, atol=0, rtol=0.001)
|
141
|
+
|
142
|
+
# Check that the distribution stays roughly stable over one synchrotron period
|
143
|
+
p, matcher = xp.generate_matched_gaussian_bunch(
|
144
|
+
line=line,
|
145
|
+
num_particles=10_000,
|
146
|
+
nemitt_x=2.5e-6,
|
147
|
+
nemitt_y=2.5e-6,
|
148
|
+
sigma_z=sigma_z,
|
149
|
+
return_matcher=True)
|
150
|
+
|
151
|
+
num_turns = int(np.round(1/tw.qs))
|
152
|
+
log_every = 3
|
153
|
+
n_log = num_turns // log_every
|
154
|
+
mon = xt.ParticlesMonitor(
|
155
|
+
start_at_turn=0,
|
156
|
+
stop_at_turn=1,
|
157
|
+
n_repetitions=n_log,
|
158
|
+
repetition_period=log_every,
|
159
|
+
num_particles=len(p.x))
|
160
|
+
|
161
|
+
line.track(p, num_turns=num_turns, turn_by_turn_monitor=mon,
|
162
|
+
with_progress=10)
|
163
|
+
|
164
|
+
z_mean = np.squeeze(np.mean(mon.zeta, axis=1))
|
165
|
+
z_std = np.squeeze(np.std(mon.zeta, axis=1))
|
166
|
+
delta_mean = np.squeeze(np.mean(mon.delta, axis=1))
|
167
|
+
delta_std = np.squeeze(np.std(mon.delta, axis=1))
|
168
|
+
|
169
|
+
xo.assert_allclose(z_mean, np.mean(z_mean), atol=0.02*sigma_z)
|
170
|
+
xo.assert_allclose(z_std, np.mean(z_std), atol=0.02*sigma_z)
|
171
|
+
xo.assert_allclose(delta_mean, np.mean(delta_mean), atol=0.02*sigma_delta)
|
172
|
+
xo.assert_allclose(delta_std, np.mean(delta_std), atol=0.02*sigma_delta)
|
@@ -0,0 +1,171 @@
|
|
1
|
+
import xtrack as xt
|
2
|
+
import xpart as xp
|
3
|
+
import xobjects as xo
|
4
|
+
from xpart.longitudinal.rf_bucket import RFBucket
|
5
|
+
|
6
|
+
import numpy as np
|
7
|
+
from scipy.constants import c as clight
|
8
|
+
from scipy.constants import e as qe
|
9
|
+
import matplotlib.pyplot as plt
|
10
|
+
|
11
|
+
gamma0 = 10. # defines the energy of the beam
|
12
|
+
gamma_transition = 4.
|
13
|
+
momentum_compaction_factor = 1 / gamma_transition**2
|
14
|
+
|
15
|
+
particle_ref = xt.Particles(gamma0=gamma0,
|
16
|
+
mass0=xt.PROTON_MASS_EV)
|
17
|
+
|
18
|
+
circumference = 1000.
|
19
|
+
t_rev = circumference / (particle_ref.beta0[0] * clight)
|
20
|
+
f_rev = 1 / t_rev
|
21
|
+
|
22
|
+
energy_ref_increment = 50e3 # eV
|
23
|
+
|
24
|
+
eta = momentum_compaction_factor - 1 / particle_ref.gamma0[0]**2
|
25
|
+
assert eta > 0
|
26
|
+
|
27
|
+
h_rf = 40
|
28
|
+
|
29
|
+
f_rf = h_rf * f_rev
|
30
|
+
v_rf = 100e3
|
31
|
+
lag_rf = 180. if eta > 0. else 0.
|
32
|
+
|
33
|
+
# Compute momentum increment using auxiliary particle
|
34
|
+
dp0c_eV = energy_ref_increment / particle_ref.beta0[0]
|
35
|
+
phi = np.arcsin(dp0c_eV * particle_ref.beta0[0] / v_rf)
|
36
|
+
if eta > 0:
|
37
|
+
phi = np.pi - phi
|
38
|
+
lag_rf = np.rad2deg(phi)
|
39
|
+
|
40
|
+
otm = xt.LineSegmentMap(
|
41
|
+
betx=1., bety=1,
|
42
|
+
qx=6.3, qy=6.4,
|
43
|
+
momentum_compaction_factor=momentum_compaction_factor,
|
44
|
+
longitudinal_mode="nonlinear",
|
45
|
+
voltage_rf=v_rf,
|
46
|
+
frequency_rf=f_rf,
|
47
|
+
lag_rf=lag_rf,
|
48
|
+
length=circumference,
|
49
|
+
energy_ref_increment=energy_ref_increment
|
50
|
+
)
|
51
|
+
|
52
|
+
line = xt.Line(elements={'otm': otm}, particle_ref=particle_ref)
|
53
|
+
|
54
|
+
tw = line.twiss()
|
55
|
+
xo.assert_allclose(tw.slip_factor, eta, atol=1e-3, rtol=0)
|
56
|
+
xo.assert_allclose(tw.qs, 0.00176525, atol=1e-7, rtol=0)
|
57
|
+
|
58
|
+
rfb = line._get_bucket()
|
59
|
+
|
60
|
+
# Mostly checking that they do not change
|
61
|
+
xo.assert_allclose(line['otm'].lag_rf[0], 180-30., # degrees
|
62
|
+
atol=1e-4, rtol=0)
|
63
|
+
|
64
|
+
xo.assert_allclose(np.rad2deg(rfb.dphi[0]), 180-30.,
|
65
|
+
atol=1e-4, rtol=0)
|
66
|
+
|
67
|
+
xo.assert_allclose(rfb.z_sfp, 0, atol=1e-4, rtol=0)
|
68
|
+
xo.assert_allclose(rfb.z_ufp, 8.33333, atol=1e-4, rtol=0)
|
69
|
+
xo.assert_allclose(rfb.z_left, -4.76990, atol=1e-4, rtol=0)
|
70
|
+
xo.assert_allclose(rfb.z_right, rfb.z_ufp, atol=1e-4, rtol=0)
|
71
|
+
|
72
|
+
xo.assert_allclose(rfb.h_sfp(), 8.75048, atol=1e-3, rtol=0)
|
73
|
+
xo.assert_allclose(rfb.h_sfp(), rfb.hamiltonian(0, 0), atol=1e-3, rtol=0)
|
74
|
+
xo.assert_allclose(rfb.h_sfp(make_convex=True), 8.75048, atol=1e-3, rtol=0)
|
75
|
+
xo.assert_allclose(rfb.h_sfp(make_convex=True),
|
76
|
+
rfb.hamiltonian(rfb.z_sfp, 0, make_convex=True),
|
77
|
+
atol=1e-3, rtol=0)
|
78
|
+
|
79
|
+
# Build separatrix
|
80
|
+
z_separatrix_up = np.linspace(rfb.z_left, rfb.z_right, 1000)
|
81
|
+
delta_separatrix_up = rfb.separatrix(z_separatrix_up)
|
82
|
+
|
83
|
+
z_separatrix = np.array(
|
84
|
+
list(z_separatrix_up) + list(z_separatrix_up[::-1]))
|
85
|
+
delta_separatrix = np.array(
|
86
|
+
list(delta_separatrix_up) + list(-delta_separatrix_up[::-1]))
|
87
|
+
|
88
|
+
# Hamiltonian is defined to be zero on the separatrix
|
89
|
+
xo.assert_allclose(rfb.hamiltonian(z_separatrix, delta_separatrix), 0,
|
90
|
+
atol=1e-3, rtol=0)
|
91
|
+
xo.assert_allclose(rfb.hamiltonian(z_separatrix, delta_separatrix, make_convex=True), 0,
|
92
|
+
atol=1e-3, rtol=0)
|
93
|
+
|
94
|
+
# Check that the separatrix behaves as such in tracking
|
95
|
+
p = line.build_particles(delta=delta_separatrix[::10]*0.98, zeta=z_separatrix[::10]*0.98)
|
96
|
+
line.track(p, turn_by_turn_monitor=True, num_turns=3000)
|
97
|
+
mon = line.record_last_track
|
98
|
+
assert np.all(mon.zeta < rfb.z_right)
|
99
|
+
assert np.all(mon.zeta > rfb.z_left)
|
100
|
+
|
101
|
+
p = line.build_particles(delta=delta_separatrix[::10]*1.01, zeta=z_separatrix[::10]*1.01)
|
102
|
+
line.track(p, turn_by_turn_monitor=True, num_turns=3000)
|
103
|
+
mon = line.record_last_track
|
104
|
+
assert not np.all(mon.zeta < rfb.z_right)
|
105
|
+
assert not np.all(mon.zeta > rfb.z_left)
|
106
|
+
|
107
|
+
# Check the stable fixed point against tracking
|
108
|
+
p = line.build_particles(delta=0, zeta=rfb.z_sfp)
|
109
|
+
line.track(p, turn_by_turn_monitor=True, num_turns=3000)
|
110
|
+
mon = line.record_last_track
|
111
|
+
xo.assert_allclose(mon.zeta, rfb.z_sfp, atol=2e-3*(rfb.z_right - rfb.z_left),
|
112
|
+
rtol=0)
|
113
|
+
bucket_height = rfb.separatrix(rfb.z_sfp)[0]
|
114
|
+
xo.assert_allclose(mon.delta, 0, atol=2e-2*bucket_height, rtol=0)
|
115
|
+
|
116
|
+
# Fix numpy random seed
|
117
|
+
np.random.seed(0)
|
118
|
+
|
119
|
+
# Match a bunch
|
120
|
+
sigma_z = 2.
|
121
|
+
p, matcher = xp.generate_matched_gaussian_bunch(
|
122
|
+
line=line,
|
123
|
+
num_particles=100_000,
|
124
|
+
nemitt_x=2.5e-6,
|
125
|
+
nemitt_y=2.5e-6,
|
126
|
+
sigma_z=sigma_z,
|
127
|
+
return_matcher=True)
|
128
|
+
sigma_delta = p.delta.std()
|
129
|
+
|
130
|
+
assert np.all(p.zeta < rfb.z_right)
|
131
|
+
assert np.all(p.zeta > rfb.z_left)
|
132
|
+
assert np.all(p.delta < bucket_height)
|
133
|
+
assert np.all(p.delta > -bucket_height)
|
134
|
+
|
135
|
+
xo.assert_allclose(p.delta.max(), bucket_height, atol=0, rtol=0.03)
|
136
|
+
xo.assert_allclose(p.delta.min(), -bucket_height, atol=0, rtol=0.03)
|
137
|
+
xo.assert_allclose(p.zeta.max(), rfb.z_right, atol=0, rtol=0.7) # this part of the bucket is poorly populated
|
138
|
+
xo.assert_allclose(p.zeta.min(), rfb.z_left, atol=0, rtol=0.03)
|
139
|
+
xo.assert_allclose(p.zeta.std(), sigma_z, atol=0, rtol=0.002)
|
140
|
+
|
141
|
+
# Check that the distribution stays roughly stable over one synchrotron period
|
142
|
+
p, matcher = xp.generate_matched_gaussian_bunch(
|
143
|
+
line=line,
|
144
|
+
num_particles=10_000,
|
145
|
+
nemitt_x=2.5e-6,
|
146
|
+
nemitt_y=2.5e-6,
|
147
|
+
sigma_z=sigma_z,
|
148
|
+
return_matcher=True)
|
149
|
+
|
150
|
+
num_turns = int(np.round(1/tw.qs))
|
151
|
+
log_every = 3
|
152
|
+
n_log = num_turns // log_every
|
153
|
+
mon = xt.ParticlesMonitor(
|
154
|
+
start_at_turn=0,
|
155
|
+
stop_at_turn=1,
|
156
|
+
n_repetitions=n_log,
|
157
|
+
repetition_period=log_every,
|
158
|
+
num_particles=len(p.x))
|
159
|
+
|
160
|
+
line.track(p, num_turns=num_turns, turn_by_turn_monitor=mon,
|
161
|
+
with_progress=10)
|
162
|
+
|
163
|
+
z_mean = np.squeeze(np.mean(mon.zeta, axis=1))
|
164
|
+
z_std = np.squeeze(np.std(mon.zeta, axis=1))
|
165
|
+
delta_mean = np.squeeze(np.mean(mon.delta, axis=1))
|
166
|
+
delta_std = np.squeeze(np.std(mon.delta, axis=1))
|
167
|
+
|
168
|
+
xo.assert_allclose(z_mean, np.mean(z_mean), atol=0.02*sigma_z)
|
169
|
+
xo.assert_allclose(z_std, np.mean(z_std), atol=0.02*sigma_z)
|
170
|
+
xo.assert_allclose(delta_mean, np.mean(delta_mean), atol=0.02*sigma_delta)
|
171
|
+
xo.assert_allclose(delta_std, np.mean(delta_std), atol=0.02*sigma_delta)
|