xtrack 0.69.4__tar.gz → 0.69.5__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.69.4/xtrack.egg-info → xtrack-0.69.5}/PKG-INFO +1 -1
- xtrack-0.69.5/tests/test_rbend_rbarc.py +72 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_twiss.py +44 -0
- xtrack-0.69.5/xtrack/_version.py +1 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/environment.py +2 -2
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/line.py +4 -1
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/twiss.py +41 -9
- {xtrack-0.69.4 → xtrack-0.69.5/xtrack.egg-info}/PKG-INFO +1 -1
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack.egg-info/SOURCES.txt +1 -0
- xtrack-0.69.4/xtrack/_version.py +0 -1
- {xtrack-0.69.4 → xtrack-0.69.5}/LICENSE +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/MANIFEST.in +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/README.md +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/base_classes.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/elements.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/line.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/particles.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/pyproject.toml +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/setup.cfg +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/setup.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_acceleration.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_apertures.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_coasting.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_collimation.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_elements.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_elements_thick.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_environment.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_footprint.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_full_rings.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_hvkick.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_ions.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_line.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_lumi.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_mad_writer.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_madloader.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_match_nested.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_monitor.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_multiline.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_multisetter.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_multispecies.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_particles_api.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_pipeline.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_radial_steering.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_radiation.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_random_gen.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_rf_track.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_seeds.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_slice_elements.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_slicing.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_sps_thick.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_survey.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_tapering.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_tracker.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_vs_madx.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/base_element.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/bend.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/octupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_bend.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_multipolar_components.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/slice_elements.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/beam_elements/slice_elements_thick.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/footprint.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/general.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/headers/checks.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/headers/constants.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/internal_record.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/json_utils.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/lumi.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/mad_loader.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/mad_writer.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/match.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/multiline/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/multiline/multiline.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/multiline/shared_knobs.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/particles/constants.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/particles/particles.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/random/__init__.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/slicing.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/survey.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/synctime.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/tapering.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/targets.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/tracker.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/tracker_data.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack/twissplot.py +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.69.4 → xtrack-0.69.5}/xtrack.egg-info/top_level.txt +0 -0
@@ -0,0 +1,72 @@
|
|
1
|
+
import numpy as np
|
2
|
+
import xtrack as xt
|
3
|
+
import xobjects as xo
|
4
|
+
from cpymad.madx import Madx
|
5
|
+
|
6
|
+
def test_rbend_rbarc():
|
7
|
+
mad = Madx()
|
8
|
+
mad.input('''
|
9
|
+
ang = 0.6;
|
10
|
+
lb = 0.5;
|
11
|
+
rb: rbend, l=lb, angle=ang;
|
12
|
+
|
13
|
+
beam, particle=proton, energy=1.0;
|
14
|
+
seq: sequence, l=2;
|
15
|
+
rb, at=1;
|
16
|
+
endsequence;
|
17
|
+
use, sequence=seq;
|
18
|
+
''')
|
19
|
+
tw = xt.Table(mad.twiss(betx=1.0, bety=1.0))
|
20
|
+
|
21
|
+
ds_madx = tw['s', 'rb:1'] - tw['s', 'rb:1<<1']
|
22
|
+
|
23
|
+
line = xt.Line.from_madx_sequence(mad.sequence.seq)
|
24
|
+
|
25
|
+
xo.assert_allclose(ds_madx, line['rb'].length, atol=0, rtol=1e-12)
|
26
|
+
|
27
|
+
env = xt.Environment()
|
28
|
+
env['lb'] = 0.5
|
29
|
+
env['ang'] = 0.6
|
30
|
+
env.new('rb_rbarc', xt.Bend)
|
31
|
+
env.set('rb_rbarc', length='lb', angle='ang', rbend=True, rbarc=True, k0_from_h=True)
|
32
|
+
|
33
|
+
xo.assert_allclose(env['rb_rbarc'].length, ds_madx, atol=0, rtol=1e-12)
|
34
|
+
xo.assert_allclose(env['rb_rbarc'].h * env['rb_rbarc'].length, 0.6, atol=0, rtol=1e-12)
|
35
|
+
xo.assert_allclose(env['rb_rbarc'].edge_entry_angle, 0.3, atol=0, rtol=1e-12)
|
36
|
+
xo.assert_allclose(env['rb_rbarc'].edge_exit_angle, 0.3, atol=0, rtol=1e-12)
|
37
|
+
|
38
|
+
assert env['rb_rbarc'].get_expr('length') == "(vars['lb'] / f['sinc']((0.5 * vars['ang'])))"
|
39
|
+
assert env['rb_rbarc'].get_expr('h') == "(f['sin']((0.5 * vars['ang'])) / (0.5 * vars['lb']))"
|
40
|
+
assert env['rb_rbarc'].get_expr('k0') == env['rb_rbarc'].get_expr('h')
|
41
|
+
assert env['rb_rbarc'].get_expr('edge_entry_angle') == "(0.0 + (vars['ang'] / 2))"
|
42
|
+
assert env['rb_rbarc'].get_expr('edge_exit_angle') == "(0.0 + (vars['ang'] / 2))"
|
43
|
+
|
44
|
+
env.new('rb_norbarc', xt.Bend)
|
45
|
+
env.set('rb_norbarc', length='lb', angle='ang', rbend=True, rbarc=False, k0_from_h=True)
|
46
|
+
|
47
|
+
xo.assert_allclose(env['rb_norbarc'].length, 0.5, atol=0, rtol=1e-12)
|
48
|
+
xo.assert_allclose(env['rb_norbarc'].h * env['rb_norbarc'].length, 0.6, atol=0, rtol=1e-12)
|
49
|
+
xo.assert_allclose(env['rb_norbarc'].k0, env['rb_norbarc'].h, atol=0, rtol=1e-12)
|
50
|
+
xo.assert_allclose(env['rb_norbarc'].edge_entry_angle, 0.3, atol=0, rtol=1e-12)
|
51
|
+
xo.assert_allclose(env['rb_norbarc'].edge_exit_angle, 0.3, atol=0, rtol=1e-12)
|
52
|
+
|
53
|
+
assert env['rb_norbarc'].get_expr('length') == "vars['lb']"
|
54
|
+
assert env['rb_norbarc'].get_expr('h') == "(vars['ang'] / vars['lb'])"
|
55
|
+
assert env['rb_norbarc'].get_expr('k0') == env['rb_norbarc'].get_expr('h')
|
56
|
+
assert env['rb_norbarc'].get_expr('edge_entry_angle') == "(0.0 + (vars['ang'] / 2))"
|
57
|
+
assert env['rb_norbarc'].get_expr('edge_exit_angle') == "(0.0 + (vars['ang'] / 2))"
|
58
|
+
|
59
|
+
# Check an sbend
|
60
|
+
env.new('sb', xt.Bend)
|
61
|
+
env.set('sb', length='lb', angle='ang', rbend=False, rbarc=True, k0_from_h=True)
|
62
|
+
|
63
|
+
xo.assert_allclose(env['sb'].length, 0.5, atol=0, rtol=1e-12)
|
64
|
+
xo.assert_allclose(env['sb'].h * env['sb'].length, 0.6, atol=0, rtol=1e-12)
|
65
|
+
xo.assert_allclose(env['sb'].edge_entry_angle, 0, atol=1e-12, rtol=0)
|
66
|
+
xo.assert_allclose(env['sb'].edge_exit_angle, 0, atol=1e-12, rtol=0)
|
67
|
+
|
68
|
+
assert env['sb'].get_expr('length') == "vars['lb']"
|
69
|
+
assert env['sb'].get_expr('h') == "(vars['ang'] / vars['lb'])"
|
70
|
+
assert env['sb'].get_expr('k0') == env['sb'].get_expr('h')
|
71
|
+
assert env['sb'].get_expr('edge_entry_angle') == None
|
72
|
+
assert env['sb'].get_expr('edge_exit_angle') == None
|
@@ -1930,3 +1930,47 @@ def test_twiss_add_strengths(test_context):
|
|
1930
1930
|
assert "length" not in tw.keys()
|
1931
1931
|
tw.add_strengths()
|
1932
1932
|
assert "length" in tw.keys()
|
1933
|
+
|
1934
|
+
def test_coupling_calculations():
|
1935
|
+
|
1936
|
+
# Load a line and build tracker
|
1937
|
+
line = xt.Line.from_json(test_data_folder /
|
1938
|
+
'hllhc14_no_errors_with_coupling_knobs/line_b1.json')
|
1939
|
+
line.particle_ref = xt.Particles(mass0=xt.PROTON_MASS_EV, q0=1, energy0=7e12)
|
1940
|
+
line.cycle('ip1', inplace=True)
|
1941
|
+
line.twiss_default['method'] = '4d'
|
1942
|
+
|
1943
|
+
# Flat machine
|
1944
|
+
for nn in line.vars.get_table().rows['on_.*|corr_.*'].name:
|
1945
|
+
line.vars[nn] = 0
|
1946
|
+
|
1947
|
+
line['cmrskew'] = 0
|
1948
|
+
line['cmiskew'] = 0
|
1949
|
+
tw0 = line.twiss()
|
1950
|
+
|
1951
|
+
line['cmrskew'] = 0.5e-4
|
1952
|
+
line['cmiskew'] = -0.3e-4
|
1953
|
+
|
1954
|
+
tw = line.twiss(strengths = True)
|
1955
|
+
|
1956
|
+
c_min_from_k1s = (0+0j) * tw.s
|
1957
|
+
for ii in xt.progress_indicator.progress(range(len(tw.s))):
|
1958
|
+
c_min_from_k1s[ii] = 1 / (2*np.pi) * np.sum(tw.k1sl * np.sqrt(tw0.betx * tw0.bety)
|
1959
|
+
* np.exp(1j * 2 * np.pi * ((tw0.mux - tw0.mux[ii]) - (tw0.muy - tw0.muy[ii]))))
|
1960
|
+
|
1961
|
+
xo.assert_allclose(tw.c_minus_re + 1j*tw.c_minus_im, c_min_from_k1s, rtol=5e-2, atol=0)
|
1962
|
+
# Check phi1
|
1963
|
+
xo.assert_allclose(tw.c_minus_re + 1j*tw.c_minus_im,
|
1964
|
+
tw.c_minus * np.exp(1j * tw.c_phi1), rtol=1e-10, atol=0)
|
1965
|
+
# Check phi2
|
1966
|
+
xo.assert_allclose(tw.c_minus_re + 1j*tw.c_minus_im,
|
1967
|
+
tw.c_minus * np.exp(1j * (np.pi - tw.c_phi2)), rtol=3e-2, atol=0)
|
1968
|
+
# Check r1
|
1969
|
+
xo.assert_allclose(tw.c_r1, np.sqrt(tw.bety1 / tw.betx1), rtol=1e-5, atol=0)
|
1970
|
+
# Check r2
|
1971
|
+
xo.assert_allclose(tw.c_r2, np.sqrt(tw.betx2 / tw.bety2), rtol=1e-5, atol=0)
|
1972
|
+
|
1973
|
+
# Check c_minus
|
1974
|
+
xo.assert_allclose(np.abs(tw.c_minus_re + 1j*tw.c_minus_im), tw.c_minus, rtol=1e-10, atol=0)
|
1975
|
+
xo.assert_allclose(tw.c_minus_re_0, tw.c_minus_re[0], rtol=1e-10, atol=0)
|
1976
|
+
xo.assert_allclose(tw.c_minus_im_0, tw.c_minus_im[0], rtol=1e-10, atol=0)
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = '0.69.5'
|
@@ -603,7 +603,7 @@ class EnvRef:
|
|
603
603
|
def _handle_bend_kwargs(kwargs, _eval, env=None, name=None):
|
604
604
|
|
605
605
|
kwargs = kwargs.copy()
|
606
|
-
rbarc = kwargs.pop('rbarc',
|
606
|
+
rbarc = kwargs.pop('rbarc', True)
|
607
607
|
rbend = kwargs.pop('rbend', False)
|
608
608
|
|
609
609
|
if rbarc:
|
@@ -644,7 +644,7 @@ def _handle_bend_kwargs(kwargs, _eval, env=None, name=None):
|
|
644
644
|
else:
|
645
645
|
angle = kwargs.get('h', 0) * length
|
646
646
|
|
647
|
-
if
|
647
|
+
if rbend:
|
648
648
|
edge_entry_angle = kwargs.pop('edge_entry_angle', 0.)
|
649
649
|
if isinstance(edge_entry_angle, str):
|
650
650
|
edge_entry_angle = _eval(edge_entry_angle)
|
@@ -4402,6 +4402,9 @@ class Line:
|
|
4402
4402
|
def frac(x):
|
4403
4403
|
return x % 1
|
4404
4404
|
|
4405
|
+
def sinc(x):
|
4406
|
+
return np.sinc(x / np.pi)
|
4407
|
+
|
4405
4408
|
class Functions:
|
4406
4409
|
|
4407
4410
|
_mathfunctions = dict(
|
@@ -4419,7 +4422,7 @@ class Functions:
|
|
4419
4422
|
sinh = math.sinh,
|
4420
4423
|
cosh = math.cosh,
|
4421
4424
|
tanh = math.tanh,
|
4422
|
-
sinc =
|
4425
|
+
sinc = sinc,
|
4423
4426
|
abs = math.fabs,
|
4424
4427
|
erf = math.erf,
|
4425
4428
|
erfc = math.erfc,
|
@@ -221,6 +221,12 @@ def twiss_line(line, particle_ref=None, method=None,
|
|
221
221
|
- bety1: computed vertical beta function (Mais-Ripken) in meters
|
222
222
|
- betx2: computed horizontal beta function (Mais-Ripken) in meters
|
223
223
|
- bety2: computed vertical beta function (Mais-Ripken) in meters
|
224
|
+
- c_minus_re: real part of the closest tune approach coefficient
|
225
|
+
- c_minus_im: imaginary part of the closest tune approach coefficient
|
226
|
+
- c_r1: horizontal r1 coefficient for betatron coupling
|
227
|
+
- c_r2: vertical r2 coefficient for betatron coupling
|
228
|
+
- c_phi1: phase advance of the closest tune approach coefficient
|
229
|
+
- c_phi2: phase advance of the closest tune approach coefficient
|
224
230
|
The table also contains the following global quantities:
|
225
231
|
- qx: horizontal tune
|
226
232
|
- qy: vertical tune
|
@@ -230,6 +236,8 @@ def twiss_line(line, particle_ref=None, method=None,
|
|
230
236
|
- ddqx: horizontal second order chromaticity (d^2 qx / d delta^2)
|
231
237
|
- ddqy: vertical second order chromaticity (d^2 qy / d delta^2)
|
232
238
|
- c_minus: closest tune approach coefficient
|
239
|
+
- c_minus_re_0: real part of the closest tune approach coefficient (at start of the ring)
|
240
|
+
- c_minus_im_0: imaginary part of the closest tune approach coefficient (at start of the ring)
|
233
241
|
- slip_factor: slip factor (-1 / f_ref * d f_ref / d delta) (positive above transition)
|
234
242
|
- momentum_compaction_factor: momentum compaction factor (slip_factor + 1/gamma_0^2)
|
235
243
|
- T_rev0: reference revolution period in seconds
|
@@ -1223,27 +1231,51 @@ def _compute_global_quantities(line, twiss_res):
|
|
1223
1231
|
if 'mux' in twiss_res._data: # Lattice functions are available
|
1224
1232
|
mux = twiss_res['mux']
|
1225
1233
|
muy = twiss_res['muy']
|
1234
|
+
|
1226
1235
|
# Coupling
|
1227
|
-
|
1228
|
-
|
1229
|
-
|
1230
|
-
|
1236
|
+
# from Y. Luo et al., "Possible phase loop for the global betatron decoupling",
|
1237
|
+
# C-A/AP/#174, https://www.agsrhichome.bnl.gov//AP/ap_notes/ap_note_174.pdf
|
1238
|
+
w11 = W_matrix[:, 0, 0]
|
1239
|
+
w13 = W_matrix[:, 0, 2]
|
1240
|
+
w14 = W_matrix[:, 0, 3]
|
1241
|
+
w31 = W_matrix[:, 2, 0]
|
1242
|
+
w32 = W_matrix[:, 2, 1]
|
1243
|
+
w33 = W_matrix[:, 2, 2]
|
1244
|
+
|
1245
|
+
c_r1 = np.sqrt(w31**2 + w32**2) / w11
|
1246
|
+
c_r2 = np.sqrt(w13**2 + w14**2) / w33
|
1247
|
+
c_phi1 = np.arctan2(w32, w31)
|
1248
|
+
c_phi2 = np.arctan2(w14, w13)
|
1231
1249
|
|
1232
1250
|
# Coupling (https://arxiv.org/pdf/2005.02753.pdf)
|
1233
|
-
|
1251
|
+
# R. Jones, Measuring Tune, Chromaticity and Coupling,
|
1252
|
+
# Proceedings of the 2018 CERN–Accelerator–School
|
1253
|
+
cmin_arr = (2 * np.sqrt(c_r1*c_r2) *
|
1234
1254
|
np.abs(np.mod(mux[-1], 1) - np.mod(muy[-1], 1))
|
1235
|
-
/(1 +
|
1255
|
+
/(1 + c_r1 * c_r2))
|
1236
1256
|
c_minus = trapz(cmin_arr, s_vect)/(circumference)
|
1237
|
-
|
1238
|
-
|
1257
|
+
|
1258
|
+
c_minus_cplx = c_minus * np.exp(1j * c_phi1)
|
1259
|
+
c_minus_re = np.real(c_minus_cplx)
|
1260
|
+
c_minus_im = np.imag(c_minus_cplx)
|
1239
1261
|
|
1240
1262
|
qs = np.abs(twiss_res['muzeta'][-1])
|
1241
1263
|
|
1264
|
+
# Scalars
|
1242
1265
|
twiss_res._data.update({
|
1243
1266
|
'qx': mux[-1], 'qy': muy[-1], 'qs': qs,
|
1244
|
-
'c_minus': c_minus,
|
1267
|
+
'c_minus': c_minus,
|
1268
|
+
'c_minus_re_0': c_minus_re[0], 'c_minus_im_0': c_minus_im[0],
|
1245
1269
|
})
|
1246
1270
|
|
1271
|
+
# Coupling columns
|
1272
|
+
twiss_res['c_minus_re'] = c_minus_re
|
1273
|
+
twiss_res['c_minus_im'] = c_minus_im
|
1274
|
+
twiss_res['c_r1'] = c_r1
|
1275
|
+
twiss_res['c_r2'] = c_r2
|
1276
|
+
twiss_res['c_phi1'] = c_phi1
|
1277
|
+
twiss_res['c_phi2'] = c_phi2
|
1278
|
+
|
1247
1279
|
def _compute_chromatic_functions(line, init, delta_chrom, steps_r_matrix,
|
1248
1280
|
matrix_responsiveness_tol, matrix_stability_tol, symplectify,
|
1249
1281
|
method='6d', use_full_inverse=False,
|
xtrack-0.69.4/xtrack/_version.py
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = '0.69.4'
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|