xtrack 0.69.2__tar.gz → 0.69.3__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.2/xtrack.egg-info → xtrack-0.69.3}/PKG-INFO +1 -1
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_environment.py +71 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_survey.py +9 -4
- xtrack-0.69.3/xtrack/_version.py +1 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/environment.py +12 -1
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/line.py +42 -18
- {xtrack-0.69.2 → xtrack-0.69.3/xtrack.egg-info}/PKG-INFO +1 -1
- xtrack-0.69.2/xtrack/_version.py +0 -1
- {xtrack-0.69.2 → xtrack-0.69.3}/LICENSE +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/MANIFEST.in +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/README.md +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/base_classes.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/elements.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/line.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/particles.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/pyproject.toml +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/setup.cfg +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/setup.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_acceleration.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_apertures.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_coasting.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_collimation.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_elements.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_elements_thick.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_footprint.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_full_rings.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_hvkick.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_ions.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_line.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_lumi.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_mad_writer.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_madloader.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_nested.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_monitor.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_multiline.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_multisetter.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_multispecies.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_particles_api.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_pipeline.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_radial_steering.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_radiation.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_random_gen.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_rf_track.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_seeds.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_slice_elements.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_slicing.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_sps_thick.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_tapering.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_tracker.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_twiss.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_vs_madx.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/base_element.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/bend.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/octupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_bend.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_multipolar_components.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/slice_elements.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/beam_elements/slice_elements_thick.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/footprint.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/general.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/checks.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/constants.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/internal_record.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/json_utils.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/lumi.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/mad_loader.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/mad_writer.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/match.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multiline/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multiline/multiline.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multiline/shared_knobs.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/constants.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/particles.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/__init__.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/slicing.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/survey.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/synctime.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/tapering.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/targets.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/tracker.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/tracker_data.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/twiss.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack/twissplot.py +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack.egg-info/SOURCES.txt +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.69.2 → xtrack-0.69.3}/xtrack.egg-info/top_level.txt +0 -0
@@ -1782,3 +1782,74 @@ def test_select_in_multiline():
|
|
1782
1782
|
== "((-vars['acbch7.r1b1']) + vars['aaa'])")
|
1783
1783
|
assert line_sel.get('mcbch.7r1.b1').knl[0] == 1e-6
|
1784
1784
|
assert line.get('mcbch.7r1.b1').knl[0] == 1e-6
|
1785
|
+
|
1786
|
+
@pytest.mark.parametrize('container_type', ['env', 'line'])
|
1787
|
+
def test_inpection_methods(container_type):
|
1788
|
+
|
1789
|
+
env = xt.Environment()
|
1790
|
+
|
1791
|
+
env.vars({
|
1792
|
+
'k.1': 1.,
|
1793
|
+
'a': 2.,
|
1794
|
+
'b': '2 * a + k.1',
|
1795
|
+
})
|
1796
|
+
|
1797
|
+
line = env.new_line([
|
1798
|
+
env.new('bb', xt.Bend, k0='2 * b', length=3+env.vars['a'] + env.vars['b'],
|
1799
|
+
h=5., ksl=[0, '3*b']),
|
1800
|
+
])
|
1801
|
+
|
1802
|
+
ee = {'env': env, 'line': line}[container_type]
|
1803
|
+
|
1804
|
+
# Line/Env methods (get, set, eval, get_expr, new_expr, info)
|
1805
|
+
assert ee.get('b') == 2 * 2 + 1
|
1806
|
+
assert ee.get('bb') is env.element_dict['bb']
|
1807
|
+
|
1808
|
+
assert str(ee.get_expr('b')) == "((2.0 * vars['a']) + vars['k.1'])"
|
1809
|
+
|
1810
|
+
assert ee.eval('3*a - sqrt(k.1)') == 5
|
1811
|
+
|
1812
|
+
ne = ee.new_expr('sqrt(3*a + 3)')
|
1813
|
+
assert xd.refs.is_ref(ne)
|
1814
|
+
assert str(ne) == "f.sqrt(((3.0 * vars['a']) + 3.0))"
|
1815
|
+
|
1816
|
+
ee.info('bb') # Check that it works
|
1817
|
+
ee.info('b')
|
1818
|
+
ee.info('a')
|
1819
|
+
|
1820
|
+
ee.set('c', '6*a')
|
1821
|
+
assert ee.get('c') == 6 * 2
|
1822
|
+
|
1823
|
+
# Line/Env containers (env[...], env.ref[...]
|
1824
|
+
assert ee['b'] == 2 * 2 + 1
|
1825
|
+
assert type(ee['bb']).__name__ == 'View'
|
1826
|
+
assert ee['bb'].__class__.__name__ == 'Bend'
|
1827
|
+
|
1828
|
+
# Vars methods (get, set, eval, get_expr, new_expr, info, get_table)
|
1829
|
+
assert ee.vars.get('b') == 2 * 2 + 1
|
1830
|
+
|
1831
|
+
assert str(ee.vars.get_expr('b')) == "((2.0 * vars['a']) + vars['k.1'])"
|
1832
|
+
|
1833
|
+
assert ee.vars.eval('3*a - sqrt(k.1)') == 5
|
1834
|
+
|
1835
|
+
ne = ee.vars.new_expr('sqrt(3*a + 3)')
|
1836
|
+
assert xd.refs.is_ref(ne)
|
1837
|
+
assert str(ne) == "f.sqrt(((3.0 * vars['a']) + 3.0))"
|
1838
|
+
|
1839
|
+
ee.vars.info('b')
|
1840
|
+
ee.vars.info('a')
|
1841
|
+
|
1842
|
+
ee.vars.set('d', '7*a')
|
1843
|
+
assert ee.vars.get('d') == 7 * 2
|
1844
|
+
|
1845
|
+
assert xd.refs.is_ref(ee.vars['b'])
|
1846
|
+
|
1847
|
+
# View methods get_expr, get_value, get_info, get_table (for now)
|
1848
|
+
assert xd.refs.is_ref(ee['bb'].get_expr('k0'))
|
1849
|
+
assert str(ee['bb'].get_expr('k0')) == "(2.0 * vars['b'])"
|
1850
|
+
assert ee['bb'].get_expr('k0')._value == 2 * (2 * 2 + 1)
|
1851
|
+
assert ee['bb'].get_value('k0') == 2 * (2 * 2 + 1)
|
1852
|
+
|
1853
|
+
tt = ee['bb'].get_table()
|
1854
|
+
assert tt['value', 'k0'] == 2 * (2 * 2 + 1)
|
1855
|
+
assert tt['expr', 'k0'] == "(2.0 * vars['b'])"
|
@@ -12,6 +12,11 @@ tilted = True
|
|
12
12
|
orientation = 'acw'
|
13
13
|
transform_to_actual_elements = True
|
14
14
|
|
15
|
+
if hasattr(np, 'trapezoid'): # numpy >= 2.0
|
16
|
+
trapz = np.trapezoid
|
17
|
+
else:
|
18
|
+
trapz = np.trapz
|
19
|
+
|
15
20
|
@for_all_test_contexts
|
16
21
|
@pytest.mark.parametrize(
|
17
22
|
'slice_mode',
|
@@ -103,17 +108,17 @@ def test_survey_slicing(test_context, slice_mode, tilted, orientation,
|
|
103
108
|
|
104
109
|
if not tilted and orientation == 'acw':
|
105
110
|
assert_allclose(np.abs(sv.Y), 0, rtol=0, atol=1e-14)
|
106
|
-
assert_allclose(
|
111
|
+
assert_allclose(trapz(sv.X, sv.Z), -4.818 , rtol=0, # anti-clockwise
|
107
112
|
atol=(2e-3 if slice_mode is not None else 0.5))
|
108
113
|
elif not tilted and orientation == 'cw':
|
109
114
|
assert_allclose(np.abs(sv.Y), 0, rtol=0, atol=1e-14)
|
110
|
-
assert_allclose(
|
115
|
+
assert_allclose(trapz(sv.X, sv.Z), 4.818 , rtol=0, # clockwise
|
111
116
|
atol=(2e-3 if slice_mode is not None else 0.5))
|
112
117
|
elif tilted and orientation == 'acw':
|
113
118
|
assert_allclose(np.abs(sv.X), 0, rtol=0, atol=1e-14)
|
114
|
-
assert_allclose(
|
119
|
+
assert_allclose(trapz(sv.Y, sv.Z), -4.818 , rtol=0, # anti-clockwise
|
115
120
|
atol=(2e-3 if slice_mode is not None else 0.5))
|
116
121
|
elif tilted and orientation == 'cw':
|
117
122
|
assert_allclose(np.abs(sv.X), 0, rtol=0, atol=1e-14)
|
118
|
-
assert_allclose(
|
123
|
+
assert_allclose(trapz(sv.Y, sv.Z), 4.818 , rtol=0, # clockwise
|
119
124
|
atol=(2e-3 if slice_mode is not None else 0.5))
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = '0.69.3'
|
@@ -40,6 +40,12 @@ class Environment:
|
|
40
40
|
self._drift_counter = 0
|
41
41
|
self.ref = EnvRef(self)
|
42
42
|
|
43
|
+
@property
|
44
|
+
def manager(self):
|
45
|
+
if not hasattr(self, '_var_management') or self._var_management is None:
|
46
|
+
self._init_var_management()
|
47
|
+
return self._var_management['manager']
|
48
|
+
|
43
49
|
def new_line(self, components=None, name=None):
|
44
50
|
out = xt.Line()
|
45
51
|
out.particle_ref = self.particle_ref
|
@@ -198,6 +204,11 @@ Environment.replace_replica = xt.Line.replace_replica
|
|
198
204
|
Environment.__getitem__ = xt.Line.__getitem__
|
199
205
|
Environment.set = xt.Line.set
|
200
206
|
Environment.get = xt.Line.get
|
207
|
+
Environment.eval = xt.Line.eval
|
208
|
+
Environment.info = xt.Line.info
|
209
|
+
Environment.get_expr = xt.Line.get_expr
|
210
|
+
Environment.new_expr = xt.Line.new_expr
|
211
|
+
|
201
212
|
|
202
213
|
class Place:
|
203
214
|
|
@@ -356,7 +367,7 @@ def _resolve_s_positions(seq_all_places, env):
|
|
356
367
|
aux_s_center.append(ss)
|
357
368
|
aux_tt['s_center'] = np.concatenate([aux_s_center, [0]])
|
358
369
|
|
359
|
-
i_sorted = np.argsort(aux_s_center, stable
|
370
|
+
i_sorted = np.argsort(aux_s_center, kind='stable')
|
360
371
|
|
361
372
|
name_sorted = [str(aux_tt.name[ii]) for ii in i_sorted]
|
362
373
|
|
@@ -3405,7 +3405,8 @@ class Line:
|
|
3405
3405
|
|
3406
3406
|
def __add__(self, other):
|
3407
3407
|
self._env_if_needed
|
3408
|
-
assert isinstance(other, Line), 'Only Line can be added to Line'
|
3408
|
+
#assert isinstance(other, Line), 'Only Line can be added to Line'
|
3409
|
+
assert other.__class__.__name__=="Line", 'Only Line can be added to Line'
|
3409
3410
|
assert other.env is self.env, 'Lines must be in the same environment'
|
3410
3411
|
out = self.env.new_line(
|
3411
3412
|
components=list(self.element_names) + list(other.element_names))
|
@@ -3555,6 +3556,35 @@ class Line:
|
|
3555
3556
|
else:
|
3556
3557
|
raise KeyError(f'Element or variable {key} not found')
|
3557
3558
|
|
3559
|
+
def info(self, key, limit=12):
|
3560
|
+
if key in self.element_dict:
|
3561
|
+
return self[key].get_info()
|
3562
|
+
elif key in self.vars:
|
3563
|
+
return self.vars.info(key, limit=limit)
|
3564
|
+
else:
|
3565
|
+
raise KeyError(f'Element or variable {key} not found')
|
3566
|
+
|
3567
|
+
# def get_value(self, key):
|
3568
|
+
# if key in self.element_dict:
|
3569
|
+
# return self.element_dict[key].get_value()
|
3570
|
+
# elif key in self.vars:
|
3571
|
+
# return self.vars.get_value(key)
|
3572
|
+
# else:
|
3573
|
+
# raise KeyError(f'Element or variable {key} not found')
|
3574
|
+
|
3575
|
+
@property
|
3576
|
+
def manager(self):
|
3577
|
+
return self._xdeps_manager
|
3578
|
+
|
3579
|
+
def eval(self, expr):
|
3580
|
+
return self.vars.eval(expr)
|
3581
|
+
|
3582
|
+
def new_expr(self, expr):
|
3583
|
+
return self.vars.new_expr(expr)
|
3584
|
+
|
3585
|
+
def get_expr(self, vars):
|
3586
|
+
return self.vars.get_expr(vars)
|
3587
|
+
|
3558
3588
|
def _env_if_needed(self):
|
3559
3589
|
if not hasattr(self, 'env') or self.env is None:
|
3560
3590
|
self.env = xt.Environment(element_dict=self.element_dict,
|
@@ -4700,26 +4730,17 @@ class LineVars:
|
|
4700
4730
|
|
4701
4731
|
return xd.Table({'name': name, 'value': value, 'expr': expr})
|
4702
4732
|
|
4703
|
-
def
|
4704
|
-
|
4705
|
-
if isinstance(var,str):
|
4706
|
-
ref=self.line._xdeps_vref[var]
|
4707
|
-
elif is_expr(var):
|
4708
|
-
ref=var
|
4709
|
-
else:
|
4710
|
-
raise ValueError(f"`{var}` not valid, must be str or expr")
|
4711
|
-
expr=ref._expr
|
4712
|
-
if expr is None:
|
4713
|
-
raise NameError(f"`{var}` does not have any expression")
|
4714
|
-
return expr
|
4733
|
+
def new_expr(self, expr):
|
4734
|
+
return self.line._xdeps_eval.eval(expr)
|
4715
4735
|
|
4716
4736
|
def eval(self, expr):
|
4717
|
-
|
4718
|
-
return self.line._xdeps_eval.eval(expr)
|
4737
|
+
return self.new_expr(expr)._get_value()
|
4719
4738
|
|
4720
|
-
def
|
4721
|
-
|
4722
|
-
|
4739
|
+
def info(self, var, limit=10):
|
4740
|
+
return self[var]._info(limit=limit)
|
4741
|
+
|
4742
|
+
def get_expr(self, var):
|
4743
|
+
return self[var]._expr
|
4723
4744
|
|
4724
4745
|
def __contains__(self, key):
|
4725
4746
|
if self.line._xdeps_vref is None:
|
@@ -4844,6 +4865,9 @@ class LineVars:
|
|
4844
4865
|
else:
|
4845
4866
|
self[name] = value
|
4846
4867
|
|
4868
|
+
def get(self, name):
|
4869
|
+
return self[name]._value
|
4870
|
+
|
4847
4871
|
class ActionVars(Action):
|
4848
4872
|
|
4849
4873
|
def __init__(self, line):
|
xtrack-0.69.2/xtrack/_version.py
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = '0.69.2'
|
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
|
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
|