xtrack 0.57.3__tar.gz → 0.59.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.57.3 → xtrack-0.59.0}/PKG-INFO +1 -1
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_attr_replicas_and_slices.py +59 -8
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_elements_thick.py +5 -5
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_prebuild_kernels.py +17 -16
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_slice_elements.py +616 -27
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_slicing.py +4 -4
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_tilt_shifts.py +5 -0
- xtrack-0.59.0/xtrack/_version.py +1 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/base_element.py +49 -9
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements.py +170 -23
- xtrack-0.59.0/xtrack/beam_elements/elements_src/octupole.h +56 -0
- xtrack-0.59.0/xtrack/beam_elements/elements_src/quadrupole.h +40 -0
- xtrack-0.59.0/xtrack/beam_elements/elements_src/sextupole.h +57 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +6 -1
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +17 -1
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +13 -9
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_bend.h +1 -1
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +6 -1
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +6 -1
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +6 -1
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_bend.h +0 -69
- xtrack-0.59.0/xtrack/beam_elements/elements_src/track_multipolar_components.h +78 -0
- xtrack-0.59.0/xtrack/beam_elements/elements_src/track_quadrupole.h +78 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/slice_elements.py +10 -6
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/slice_elements_thick.py +1 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/line.py +9 -2
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/mad_writer.py +2 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/__init__.py +2 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multisetter/multisetter.py +23 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/particles.py +10 -4
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/__init__.py +2 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_generators.py +1 -1
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/tracker.py +18 -6
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack.egg-info/PKG-INFO +1 -1
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack.egg-info/SOURCES.txt +1 -3
- xtrack-0.57.3/xtrack/_version.py +0 -1
- xtrack-0.57.3/xtrack/beam_elements/elements_src/octupole.h +0 -66
- xtrack-0.57.3/xtrack/beam_elements/elements_src/quadrupole.h +0 -26
- xtrack-0.57.3/xtrack/beam_elements/elements_src/sextupole.h +0 -67
- xtrack-0.57.3/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -44
- xtrack-0.57.3/xtrack/prebuild_kernels.py +0 -352
- xtrack-0.57.3/xtrack/prebuilt_kernels/__init__.py +0 -0
- xtrack-0.57.3/xtrack/prebuilt_kernels/kernel_definitions.py +0 -238
- {xtrack-0.57.3 → xtrack-0.59.0}/LICENSE +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/MANIFEST.in +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/README.md +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/base_classes.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/elements.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/line.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/particles.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/pyproject.toml +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/setup.cfg +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/setup.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_acceleration.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_apertures.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_coasting.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_collimation.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_elements.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_footprint.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_full_rings.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_ions.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_line.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_lumi.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_mad_writer.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_madloader.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_nested.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_monitor.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_multiline.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_multisetter.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_multispecies.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_orbit_correction.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_particles_api.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_pipeline.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_radial_steering.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_radiation.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_random_gen.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_rf_track.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_sps_thick.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_survey.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_tapering.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_tracker.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_twiss.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_var_cache.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/tests/test_vs_madx.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/bend.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/fringe.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/fringe_track.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/wedge_track.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/footprint.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/general.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/checks.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/constants.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/internal_record.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/lumi.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/mad_loader.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/match.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multiline/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multiline/multiline.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multiline/shared_knobs.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/constants.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/slicing.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/survey.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/synctime.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/tapering.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/targets.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/tracker_data.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/twiss.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack/twissplot.py +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.57.3 → xtrack-0.59.0}/xtrack.egg-info/top_level.txt +0 -0
@@ -6,18 +6,20 @@ import pytest
|
|
6
6
|
assert_allclose = np.testing.assert_allclose
|
7
7
|
|
8
8
|
def _make_line_no_expressions():
|
9
|
-
bend = xt.Bend(
|
10
|
-
|
11
|
-
|
9
|
+
bend = xt.Bend(
|
10
|
+
k0=0.4, h=0.3, length=1,
|
11
|
+
shift_x=1e-3, shift_y=2e-3, shift_s=2e-3, rot_s_rad=0.2,
|
12
|
+
k1=0.1,
|
13
|
+
knl=[0.7, 0.8, 0.9, 1.0], ksl=[0.1, 0.2, 0.3, 0.4])
|
12
14
|
quad = xt.Quadrupole(k1=0.1, k1s=0.2,
|
13
|
-
|
15
|
+
length=0.5, shift_x=2e-3, shift_y=1e-3, shift_s=-1e-3, rot_s_rad=0.1)
|
14
16
|
sext = xt.Sextupole(k2=0.1, k2s=0.2,
|
15
|
-
|
17
|
+
length=0.3, shift_x=3e-3, shift_y=4e-3, shift_s=-2e-3, rot_s_rad=0.3)
|
16
18
|
octu = xt.Octupole(k3=0.1, k3s=0.2,
|
17
|
-
|
19
|
+
length=0.4, shift_x=5e-3, shift_y=6e-3, shift_s=-1e-3, rot_s_rad=0.4)
|
18
20
|
mult = xt.Multipole(knl=[0.7, 0.8, 0.9, 1.0], ksl=[0.1, 0.2, 0.3, 0.4],
|
19
|
-
|
20
|
-
|
21
|
+
length=0.4, shift_x=5e-3, shift_y=6e-3, shift_s=-1e-3, rot_s_rad=0.7,
|
22
|
+
hxl=0.1)
|
21
23
|
drift = xt.Drift(length=5.0)
|
22
24
|
|
23
25
|
line = xt.Line(elements=[bend, quad, sext, octu, mult, drift, xt.Replica(parent_name='e0')])
|
@@ -39,6 +41,7 @@ def _make_line_with_expressions():
|
|
39
41
|
line.vars['length_bend'] = 999.
|
40
42
|
line.vars['shift_x_bend'] = 999.
|
41
43
|
line.vars['shift_y_bend'] = 999.
|
44
|
+
line.vars['shift_s_bend'] = 999.
|
42
45
|
line.vars['rot_s_rad_bend'] = 999.
|
43
46
|
line.vars['k1_bend'] = 999.
|
44
47
|
line.vars['knl_bend_0'] = 999.
|
@@ -55,6 +58,7 @@ def _make_line_with_expressions():
|
|
55
58
|
line.vars['length_quad'] = 999.
|
56
59
|
line.vars['shift_x_quad'] = 999.
|
57
60
|
line.vars['shift_y_quad'] = 999.
|
61
|
+
line.vars['shift_s_quad'] = 999.
|
58
62
|
line.vars['rot_s_rad_quad'] = 999.
|
59
63
|
|
60
64
|
line.vars['k2_sext'] = 999.
|
@@ -62,6 +66,7 @@ def _make_line_with_expressions():
|
|
62
66
|
line.vars['length_sext'] = 999.
|
63
67
|
line.vars['shift_x_sext'] = 999.
|
64
68
|
line.vars['shift_y_sext'] = 999.
|
69
|
+
line.vars['shift_s_sext'] = 999.
|
65
70
|
line.vars['rot_s_rad_sext'] = 999.
|
66
71
|
|
67
72
|
line.vars['k3_octu'] = 999.
|
@@ -69,6 +74,7 @@ def _make_line_with_expressions():
|
|
69
74
|
line.vars['length_octu'] = 999.
|
70
75
|
line.vars['shift_x_octu'] = 999.
|
71
76
|
line.vars['shift_y_octu'] = 999.
|
77
|
+
line.vars['shift_s_octu'] = 999.
|
72
78
|
line.vars['rot_s_rad_octu'] = 999.
|
73
79
|
|
74
80
|
line.vars['knl_mult_0'] = 999.
|
@@ -82,6 +88,7 @@ def _make_line_with_expressions():
|
|
82
88
|
line.vars['length_mult'] = 999.
|
83
89
|
line.vars['shift_x_mult'] = 999.
|
84
90
|
line.vars['shift_y_mult'] = 999.
|
91
|
+
line.vars['shift_s_mult'] = 999.
|
85
92
|
line.vars['rot_s_rad_mult'] = 999.
|
86
93
|
line.vars['hxl_mult'] = 999.
|
87
94
|
|
@@ -92,6 +99,7 @@ def _make_line_with_expressions():
|
|
92
99
|
line.element_refs['e0'].length = line.vars['length_bend']
|
93
100
|
line.element_refs['e0'].shift_x = line.vars['shift_x_bend']
|
94
101
|
line.element_refs['e0'].shift_y = line.vars['shift_y_bend']
|
102
|
+
line.element_refs['e0'].shift_s = line.vars['shift_s_bend']
|
95
103
|
line.element_refs['e0'].rot_s_rad = line.vars['rot_s_rad_bend']
|
96
104
|
line.element_refs['e0'].k1 = line.vars['k1_bend']
|
97
105
|
line.element_refs['e0'].knl[0] = line.vars['knl_bend_0']
|
@@ -108,6 +116,7 @@ def _make_line_with_expressions():
|
|
108
116
|
line.element_refs['e1'].length = line.vars['length_quad']
|
109
117
|
line.element_refs['e1'].shift_x = line.vars['shift_x_quad']
|
110
118
|
line.element_refs['e1'].shift_y = line.vars['shift_y_quad']
|
119
|
+
line.element_refs['e1'].shift_s = line.vars['shift_s_quad']
|
111
120
|
line.element_refs['e1'].rot_s_rad = line.vars['rot_s_rad_quad']
|
112
121
|
|
113
122
|
line.element_refs['e2'].k2 = line.vars['k2_sext']
|
@@ -115,6 +124,7 @@ def _make_line_with_expressions():
|
|
115
124
|
line.element_refs['e2'].length = line.vars['length_sext']
|
116
125
|
line.element_refs['e2'].shift_x = line.vars['shift_x_sext']
|
117
126
|
line.element_refs['e2'].shift_y = line.vars['shift_y_sext']
|
127
|
+
line.element_refs['e2'].shift_s = line.vars['shift_s_sext']
|
118
128
|
line.element_refs['e2'].rot_s_rad = line.vars['rot_s_rad_sext']
|
119
129
|
|
120
130
|
line.element_refs['e3'].k3 = line.vars['k3_octu']
|
@@ -122,6 +132,7 @@ def _make_line_with_expressions():
|
|
122
132
|
line.element_refs['e3'].length = line.vars['length_octu']
|
123
133
|
line.element_refs['e3'].shift_x = line.vars['shift_x_octu']
|
124
134
|
line.element_refs['e3'].shift_y = line.vars['shift_y_octu']
|
135
|
+
line.element_refs['e3'].shift_s = line.vars['shift_s_octu']
|
125
136
|
line.element_refs['e3'].rot_s_rad = line.vars['rot_s_rad_octu']
|
126
137
|
|
127
138
|
line.element_refs['e4'].knl[0] = line.vars['knl_mult_0']
|
@@ -135,6 +146,7 @@ def _make_line_with_expressions():
|
|
135
146
|
line.element_refs['e4'].length = line.vars['length_mult']
|
136
147
|
line.element_refs['e4'].shift_x = line.vars['shift_x_mult']
|
137
148
|
line.element_refs['e4'].shift_y = line.vars['shift_y_mult']
|
149
|
+
line.element_refs['e4'].shift_s = line.vars['shift_s_mult']
|
138
150
|
line.element_refs['e4'].rot_s_rad = line.vars['rot_s_rad_mult']
|
139
151
|
line.element_refs['e4'].hxl = line.vars['hxl_mult']
|
140
152
|
|
@@ -148,6 +160,7 @@ def _set_vars(line):
|
|
148
160
|
line.vars['length_bend'] = 1
|
149
161
|
line.vars['shift_x_bend'] = 1e-3
|
150
162
|
line.vars['shift_y_bend'] = 2e-3
|
163
|
+
line.vars['shift_s_bend'] = 2e-3
|
151
164
|
line.vars['rot_s_rad_bend'] = 0.2
|
152
165
|
line.vars['k1_bend'] = 0.1
|
153
166
|
line.vars['knl_bend_0'] = 0.7
|
@@ -164,6 +177,7 @@ def _set_vars(line):
|
|
164
177
|
line.vars['length_quad'] = 0.5
|
165
178
|
line.vars['shift_x_quad'] = 2e-3
|
166
179
|
line.vars['shift_y_quad'] = 1e-3
|
180
|
+
line.vars['shift_s_quad'] = -1e-3
|
167
181
|
line.vars['rot_s_rad_quad'] = 0.1
|
168
182
|
|
169
183
|
line.vars['k2_sext'] = 0.1
|
@@ -171,6 +185,7 @@ def _set_vars(line):
|
|
171
185
|
line.vars['length_sext'] = 0.3
|
172
186
|
line.vars['shift_x_sext'] = 3e-3
|
173
187
|
line.vars['shift_y_sext'] = 4e-3
|
188
|
+
line.vars['shift_s_sext'] = -2e-3
|
174
189
|
line.vars['rot_s_rad_sext'] = 0.3
|
175
190
|
|
176
191
|
line.vars['k3_octu'] = 0.1
|
@@ -178,6 +193,7 @@ def _set_vars(line):
|
|
178
193
|
line.vars['length_octu'] = 0.4
|
179
194
|
line.vars['shift_x_octu'] = 5e-3
|
180
195
|
line.vars['shift_y_octu'] = 6e-3
|
196
|
+
line.vars['shift_s_octu'] = -1e-3
|
181
197
|
line.vars['rot_s_rad_octu'] = 0.4
|
182
198
|
|
183
199
|
line.vars['knl_mult_0'] = 0.7
|
@@ -191,6 +207,7 @@ def _set_vars(line):
|
|
191
207
|
line.vars['length_mult'] = 0.4
|
192
208
|
line.vars['shift_x_mult'] = 5e-3
|
193
209
|
line.vars['shift_y_mult'] = 6e-3
|
210
|
+
line.vars['shift_s_mult'] = -1e-3
|
194
211
|
line.vars['rot_s_rad_mult'] = 0.7
|
195
212
|
line.vars['hxl_mult'] = 0.1
|
196
213
|
|
@@ -239,6 +256,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
|
|
239
256
|
assert_allclose(tt['rot_s_rad', 'e0'], 0.2, rtol=0, atol=1e-14)
|
240
257
|
assert_allclose(tt['shift_x', 'e0'], 1e-3, rtol=0, atol=1e-14)
|
241
258
|
assert_allclose(tt['shift_y', 'e0'], 2e-3, rtol=0, atol=1e-14)
|
259
|
+
assert_allclose(tt['shift_s', 'e0'], 2e-3, rtol=0, atol=1e-14)
|
242
260
|
assert_allclose(tt['k0l', 'e0'], 0.4 * 1 + 0.7, rtol=0, atol=1e-14)
|
243
261
|
assert_allclose(tt['k1l', 'e0'], 0.1 * 1 + 0.8, rtol=0, atol=1e-14)
|
244
262
|
assert_allclose(tt['k2l', 'e0'], 0.9, rtol=0, atol=1e-14)
|
@@ -259,6 +277,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
|
|
259
277
|
assert_allclose(tt['rot_s_rad', 'e1'], 0.1, rtol=0, atol=1e-14)
|
260
278
|
assert_allclose(tt['shift_x', 'e1'], 2e-3, rtol=0, atol=1e-14)
|
261
279
|
assert_allclose(tt['shift_y', 'e1'], 1e-3, rtol=0, atol=1e-14)
|
280
|
+
assert_allclose(tt['shift_s', 'e1'], -1e-3, rtol=0, atol=1e-14)
|
262
281
|
assert_allclose(tt['k0l', 'e1'], 0.0, rtol=0, atol=1e-14)
|
263
282
|
assert_allclose(tt['k1l', 'e1'], 0.1 * 0.5, rtol=0, atol=1e-14)
|
264
283
|
assert_allclose(tt['k2l', 'e1'], 0.0, rtol=0, atol=1e-14)
|
@@ -279,6 +298,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
|
|
279
298
|
assert_allclose(tt['rot_s_rad', 'e2'], 0.3, rtol=0, atol=1e-14)
|
280
299
|
assert_allclose(tt['shift_x', 'e2'], 3e-3, rtol=0, atol=1e-14)
|
281
300
|
assert_allclose(tt['shift_y', 'e2'], 4e-3, rtol=0, atol=1e-14)
|
301
|
+
assert_allclose(tt['shift_s', 'e2'], -2e-3, rtol=0, atol=1e-14)
|
282
302
|
assert_allclose(tt['k0l', 'e2'], 0.0, rtol=0, atol=1e-14)
|
283
303
|
assert_allclose(tt['k1l', 'e2'], 0.0, rtol=0, atol=1e-14)
|
284
304
|
assert_allclose(tt['k2l', 'e2'], 0.1 * 0.3, rtol=0, atol=1e-14)
|
@@ -299,6 +319,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
|
|
299
319
|
assert_allclose(tt['rot_s_rad', 'e3'], 0.4, rtol=0, atol=1e-14)
|
300
320
|
assert_allclose(tt['shift_x', 'e3'], 5e-3, rtol=0, atol=1e-14)
|
301
321
|
assert_allclose(tt['shift_y', 'e3'], 6e-3, rtol=0, atol=1e-14)
|
322
|
+
assert_allclose(tt['shift_s', 'e3'], -1e-3, rtol=0, atol=1e-14)
|
302
323
|
assert_allclose(tt['k0l', 'e3'], 0.0, rtol=0, atol=1e-14)
|
303
324
|
assert_allclose(tt['k1l', 'e3'], 0.0, rtol=0, atol=1e-14)
|
304
325
|
assert_allclose(tt['k2l', 'e3'], 0, rtol=0, atol=1e-14)
|
@@ -319,6 +340,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
|
|
319
340
|
assert_allclose(tt['rot_s_rad', 'e4'], 0.7, rtol=0, atol=1e-14)
|
320
341
|
assert_allclose(tt['shift_x', 'e4'], 5e-3, rtol=0, atol=1e-14)
|
321
342
|
assert_allclose(tt['shift_y', 'e4'], 6e-3, rtol=0, atol=1e-14)
|
343
|
+
assert_allclose(tt['shift_s', 'e4'], -1e-3, rtol=0, atol=1e-14)
|
322
344
|
assert_allclose(tt['k0l', 'e4'], 0.7, rtol=0, atol=1e-14)
|
323
345
|
assert_allclose(tt['k1l', 'e4'], 0.8, rtol=0, atol=1e-14)
|
324
346
|
assert_allclose(tt['k2l', 'e4'], 0.9, rtol=0, atol=1e-14)
|
@@ -339,6 +361,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
|
|
339
361
|
assert_allclose(tt['rot_s_rad', 'e5'], 0.0, rtol=0, atol=1e-14)
|
340
362
|
assert_allclose(tt['shift_x', 'e5'], 0.0, rtol=0, atol=1e-14)
|
341
363
|
assert_allclose(tt['shift_y', 'e5'], 0.0, rtol=0, atol=1e-14)
|
364
|
+
assert_allclose(tt['shift_s', 'e5'], 0.0, rtol=0, atol=1e-14)
|
342
365
|
assert_allclose(tt['k0l', 'e5'], 0.0, rtol=0, atol=1e-14)
|
343
366
|
assert_allclose(tt['k1l', 'e5'], 0.0, rtol=0, atol=1e-14)
|
344
367
|
assert_allclose(tt['k2l', 'e5'], 0.0, rtol=0, atol=1e-14)
|
@@ -358,6 +381,7 @@ def test_attr_replicas(test_context, check_expr, use_copy):
|
|
358
381
|
assert_allclose(tt['rot_s_rad', 'e6'], 0.2, rtol=0, atol=1e-14)
|
359
382
|
assert_allclose(tt['shift_x', 'e6'], 1e-3, rtol=0, atol=1e-14)
|
360
383
|
assert_allclose(tt['shift_y', 'e6'], 2e-3, rtol=0, atol=1e-14)
|
384
|
+
assert_allclose(tt['shift_s', 'e6'], 2e-3, rtol=0, atol=1e-14)
|
361
385
|
assert_allclose(tt['k0l', 'e6'], 0.4 * 1 + 0.7, rtol=0, atol=1e-14)
|
362
386
|
assert_allclose(tt['k1l', 'e6'], 0.1 * 1 + 0.8, rtol=0, atol=1e-14)
|
363
387
|
assert_allclose(tt['k2l', 'e6'], 0.9, rtol=0, atol=1e-14)
|
@@ -413,6 +437,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
413
437
|
assert_allclose(tt['rot_s_rad', 'e0..1'], 0.2, rtol=0, atol=1e-14)
|
414
438
|
assert_allclose(tt['shift_x', 'e0..1'], 1e-3, rtol=0, atol=1e-14)
|
415
439
|
assert_allclose(tt['shift_y', 'e0..1'], 2e-3, rtol=0, atol=1e-14)
|
440
|
+
assert_allclose(tt['shift_s', 'e0..1'], 2e-3, rtol=0, atol=1e-14)
|
416
441
|
assert_allclose(tt['k0l', 'e0..1'], 0.5 * (0.4 * 1 + 0.7), rtol=0, atol=1e-14)
|
417
442
|
assert_allclose(tt['k1l', 'e0..1'], 0.5 * (0.1 * 1 + 0.8), rtol=0, atol=1e-14)
|
418
443
|
assert_allclose(tt['k2l', 'e0..1'], 0.5 * .9, rtol=0, atol=1e-14)
|
@@ -433,6 +458,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
433
458
|
assert_allclose(tt['rot_s_rad', 'e0..exit_map'], 0.2, rtol=0, atol=1e-14)
|
434
459
|
assert_allclose(tt['shift_x', 'e0..exit_map'], 1e-3, rtol=0, atol=1e-14)
|
435
460
|
assert_allclose(tt['shift_y', 'e0..exit_map'], 2e-3, rtol=0, atol=1e-14)
|
461
|
+
assert_allclose(tt['shift_s', 'e0..exit_map'], 2e-3, rtol=0, atol=1e-14)
|
436
462
|
assert_allclose(tt['k0l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
|
437
463
|
assert_allclose(tt['k1l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
|
438
464
|
assert_allclose(tt['k2l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
|
@@ -453,6 +479,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
453
479
|
assert_allclose(tt['rot_s_rad', 'e0..entry_map'], 0.2, rtol=0, atol=1e-14)
|
454
480
|
assert_allclose(tt['shift_x', 'e0..entry_map'], 1e-3, rtol=0, atol=1e-14)
|
455
481
|
assert_allclose(tt['shift_y', 'e0..entry_map'], 2e-3, rtol=0, atol=1e-14)
|
482
|
+
assert_allclose(tt['shift_s', 'e0..entry_map'], 2e-3, rtol=0, atol=1e-14)
|
456
483
|
assert_allclose(tt['k0l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
|
457
484
|
assert_allclose(tt['k1l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
|
458
485
|
assert_allclose(tt['k2l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
|
@@ -473,6 +500,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
473
500
|
assert_allclose(tt['rot_s_rad', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
|
474
501
|
assert_allclose(tt['shift_x', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
|
475
502
|
assert_allclose(tt['shift_y', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
|
503
|
+
assert_allclose(tt['shift_s', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
|
476
504
|
assert_allclose(tt['k0l', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
|
477
505
|
assert_allclose(tt['k1l', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
|
478
506
|
assert_allclose(tt['k2l', 'drift_e0..1'], 0, rtol=0, atol=1e-14)
|
@@ -493,6 +521,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
493
521
|
assert_allclose(tt['rot_s_rad', 'e1..1'], 0.1, rtol=0, atol=1e-14)
|
494
522
|
assert_allclose(tt['shift_x', 'e1..1'], 2e-3, rtol=0, atol=1e-14)
|
495
523
|
assert_allclose(tt['shift_y', 'e1..1'], 1e-3, rtol=0, atol=1e-14)
|
524
|
+
assert_allclose(tt['shift_s', 'e1..1'], -1e-3, rtol=0, atol=1e-14)
|
496
525
|
assert_allclose(tt['k0l', 'e1..1'], 0., rtol=0, atol=1e-14)
|
497
526
|
assert_allclose(tt['k1l', 'e1..1'], 0.1 * 0.5 / 2, rtol=0, atol=1e-14)
|
498
527
|
assert_allclose(tt['k2l', 'e1..1'], 0, rtol=0, atol=1e-14)
|
@@ -513,6 +542,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
513
542
|
assert_allclose(tt['rot_s_rad', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
|
514
543
|
assert_allclose(tt['shift_x', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
|
515
544
|
assert_allclose(tt['shift_y', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
|
545
|
+
assert_allclose(tt['shift_s', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
|
516
546
|
assert_allclose(tt['k0l', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
|
517
547
|
assert_allclose(tt['k1l', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
|
518
548
|
assert_allclose(tt['k2l', 'drift_e1..1'], 0, rtol=0, atol=1e-14)
|
@@ -533,6 +563,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
533
563
|
assert_allclose(tt['rot_s_rad', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
534
564
|
assert_allclose(tt['shift_x', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
535
565
|
assert_allclose(tt['shift_y', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
566
|
+
assert_allclose(tt['shift_s', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
536
567
|
assert_allclose(tt['k0l', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
537
568
|
assert_allclose(tt['k1l', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
538
569
|
assert_allclose(tt['k2l', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
@@ -553,6 +584,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
553
584
|
assert_allclose(tt['rot_s_rad', 'e2..1'], 0.3, rtol=0, atol=1e-14)
|
554
585
|
assert_allclose(tt['shift_x', 'e2..1'], 3e-3, rtol=0, atol=1e-14)
|
555
586
|
assert_allclose(tt['shift_y', 'e2..1'], 4e-3, rtol=0, atol=1e-14)
|
587
|
+
assert_allclose(tt['shift_s', 'e2..1'], -2e-3, rtol=0, atol=1e-14)
|
556
588
|
assert_allclose(tt['k0l', 'e2..1'], 0., rtol=0, atol=1e-14)
|
557
589
|
assert_allclose(tt['k1l', 'e2..1'], 0., rtol=0, atol=1e-14)
|
558
590
|
assert_allclose(tt['k2l', 'e2..1'], 0.1 * 0.3*1/2, rtol=0, atol=1e-14)
|
@@ -573,6 +605,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
573
605
|
assert_allclose(tt['rot_s_rad', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
|
574
606
|
assert_allclose(tt['shift_x', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
|
575
607
|
assert_allclose(tt['shift_y', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
|
608
|
+
assert_allclose(tt['shift_s', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
|
576
609
|
assert_allclose(tt['k0l', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
|
577
610
|
assert_allclose(tt['k1l', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
|
578
611
|
assert_allclose(tt['k2l', 'drift_e2..1'], 0, rtol=0, atol=1e-14)
|
@@ -593,6 +626,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
593
626
|
assert_allclose(tt['rot_s_rad', 'e3..1'], 0.4, rtol=0, atol=1e-14)
|
594
627
|
assert_allclose(tt['shift_x', 'e3..1'], 5e-3, rtol=0, atol=1e-14)
|
595
628
|
assert_allclose(tt['shift_y', 'e3..1'], 6e-3, rtol=0, atol=1e-14)
|
629
|
+
assert_allclose(tt['shift_s', 'e3..1'], -1e-3, rtol=0, atol=1e-14)
|
596
630
|
assert_allclose(tt['k0l', 'e3..1'], 0., rtol=0, atol=1e-14)
|
597
631
|
assert_allclose(tt['k1l', 'e3..1'], 0., rtol=0, atol=1e-14)
|
598
632
|
assert_allclose(tt['k2l', 'e3..1'], 0., rtol=0, atol=1e-14)
|
@@ -613,6 +647,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
613
647
|
assert_allclose(tt['rot_s_rad', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
|
614
648
|
assert_allclose(tt['shift_x', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
|
615
649
|
assert_allclose(tt['shift_y', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
|
650
|
+
assert_allclose(tt['shift_s', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
|
616
651
|
assert_allclose(tt['k0l', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
|
617
652
|
assert_allclose(tt['k1l', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
|
618
653
|
assert_allclose(tt['k2l', 'drift_e3..1'], 0, rtol=0, atol=1e-14)
|
@@ -634,6 +669,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
634
669
|
assert_allclose(tt['rot_s_rad', 'e5'], 0.0, rtol=0, atol=1e-14)
|
635
670
|
assert_allclose(tt['shift_x', 'e5'], 0.0, rtol=0, atol=1e-14)
|
636
671
|
assert_allclose(tt['shift_y', 'e5'], 0.0, rtol=0, atol=1e-14)
|
672
|
+
assert_allclose(tt['shift_s', 'e5'], 0.0, rtol=0, atol=1e-14)
|
637
673
|
assert_allclose(tt['k0l', 'e5'], 0.0, rtol=0, atol=1e-14)
|
638
674
|
assert_allclose(tt['k1l', 'e5'], 0.0, rtol=0, atol=1e-14)
|
639
675
|
assert_allclose(tt['k2l', 'e5'], 0.0, rtol=0, atol=1e-14)
|
@@ -654,6 +690,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
654
690
|
assert_allclose(tt['rot_s_rad', 'e6..1'], 0.2, rtol=0, atol=1e-14)
|
655
691
|
assert_allclose(tt['shift_x', 'e6..1'], 1e-3, rtol=0, atol=1e-14)
|
656
692
|
assert_allclose(tt['shift_y', 'e6..1'], 2e-3, rtol=0, atol=1e-14)
|
693
|
+
assert_allclose(tt['shift_s', 'e6..1'], 2e-3, rtol=0, atol=1e-14)
|
657
694
|
assert_allclose(tt['k0l', 'e6..1'], 0.5 * (0.4 * 1 + 0.7), rtol=0, atol=1e-14)
|
658
695
|
assert_allclose(tt['k1l', 'e6..1'], 0.5 * (0.1 * 1 + 0.8), rtol=0, atol=1e-14)
|
659
696
|
assert_allclose(tt['k2l', 'e6..1'], 0.5 * .9, rtol=0, atol=1e-14)
|
@@ -674,6 +711,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
674
711
|
assert_allclose(tt['rot_s_rad', 'e6..exit_map'], 0.2, rtol=0, atol=1e-14)
|
675
712
|
assert_allclose(tt['shift_x', 'e6..exit_map'], 1e-3, rtol=0, atol=1e-14)
|
676
713
|
assert_allclose(tt['shift_y', 'e6..exit_map'], 2e-3, rtol=0, atol=1e-14)
|
714
|
+
assert_allclose(tt['shift_s', 'e6..exit_map'], 2e-3, rtol=0, atol=1e-14)
|
677
715
|
assert_allclose(tt['k0l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
|
678
716
|
assert_allclose(tt['k1l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
|
679
717
|
assert_allclose(tt['k2l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
|
@@ -694,6 +732,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
694
732
|
assert_allclose(tt['rot_s_rad', 'e6..entry_map'], 0.2, rtol=0, atol=1e-14)
|
695
733
|
assert_allclose(tt['shift_x', 'e6..entry_map'], 1e-3, rtol=0, atol=1e-14)
|
696
734
|
assert_allclose(tt['shift_y', 'e6..entry_map'], 2e-3, rtol=0, atol=1e-14)
|
735
|
+
assert_allclose(tt['shift_s', 'e6..entry_map'], 2e-3, rtol=0, atol=1e-14)
|
697
736
|
assert_allclose(tt['k0l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
|
698
737
|
assert_allclose(tt['k1l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
|
699
738
|
assert_allclose(tt['k2l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
|
@@ -714,6 +753,7 @@ def test_attr_thin_slicing(test_context, check_expr, use_copy):
|
|
714
753
|
assert_allclose(tt['rot_s_rad', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
|
715
754
|
assert_allclose(tt['shift_x', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
|
716
755
|
assert_allclose(tt['shift_y', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
|
756
|
+
assert_allclose(tt['shift_s', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
|
717
757
|
assert_allclose(tt['k0l', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
|
718
758
|
assert_allclose(tt['k1l', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
|
719
759
|
assert_allclose(tt['k2l', 'drift_e6..1'], 0, rtol=0, atol=1e-14)
|
@@ -769,6 +809,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
769
809
|
assert_allclose(tt['rot_s_rad', 'e0..1'], 0.2, rtol=0, atol=1e-14)
|
770
810
|
assert_allclose(tt['shift_x', 'e0..1'], 1e-3, rtol=0, atol=1e-14)
|
771
811
|
assert_allclose(tt['shift_y', 'e0..1'], 2e-3, rtol=0, atol=1e-14)
|
812
|
+
assert_allclose(tt['shift_s', 'e0..1'], 2e-3, rtol=0, atol=1e-14)
|
772
813
|
assert_allclose(tt['k0l', 'e0..1'], 0.5 * (0.4 * 1 + 0.7), rtol=0, atol=1e-14)
|
773
814
|
assert_allclose(tt['k1l', 'e0..1'], 0.5 * (0.1 * 1 + 0.8), rtol=0, atol=1e-14)
|
774
815
|
assert_allclose(tt['k2l', 'e0..1'], 0.5 * .9, rtol=0, atol=1e-14)
|
@@ -789,6 +830,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
789
830
|
assert_allclose(tt['rot_s_rad', 'e0..exit_map'], 0.2, rtol=0, atol=1e-14)
|
790
831
|
assert_allclose(tt['shift_x', 'e0..exit_map'], 1e-3, rtol=0, atol=1e-14)
|
791
832
|
assert_allclose(tt['shift_y', 'e0..exit_map'], 2e-3, rtol=0, atol=1e-14)
|
833
|
+
assert_allclose(tt['shift_s', 'e0..exit_map'], 2e-3, rtol=0, atol=1e-14)
|
792
834
|
assert_allclose(tt['k0l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
|
793
835
|
assert_allclose(tt['k1l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
|
794
836
|
assert_allclose(tt['k2l', 'e0..exit_map'], 0, rtol=0, atol=1e-14)
|
@@ -809,6 +851,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
809
851
|
assert_allclose(tt['rot_s_rad', 'e0..entry_map'], 0.2, rtol=0, atol=1e-14)
|
810
852
|
assert_allclose(tt['shift_x', 'e0..entry_map'], 1e-3, rtol=0, atol=1e-14)
|
811
853
|
assert_allclose(tt['shift_y', 'e0..entry_map'], 2e-3, rtol=0, atol=1e-14)
|
854
|
+
assert_allclose(tt['shift_s', 'e0..entry_map'], 2e-3, rtol=0, atol=1e-14)
|
812
855
|
assert_allclose(tt['k0l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
|
813
856
|
assert_allclose(tt['k1l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
|
814
857
|
assert_allclose(tt['k2l', 'e0..entry_map'], 0, rtol=0, atol=1e-14)
|
@@ -829,6 +872,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
829
872
|
assert_allclose(tt['rot_s_rad', 'e1..1'], 0.1, rtol=0, atol=1e-14)
|
830
873
|
assert_allclose(tt['shift_x', 'e1..1'], 2e-3, rtol=0, atol=1e-14)
|
831
874
|
assert_allclose(tt['shift_y', 'e1..1'], 1e-3, rtol=0, atol=1e-14)
|
875
|
+
assert_allclose(tt['shift_s', 'e1..1'], -1e-3, rtol=0, atol=1e-14)
|
832
876
|
assert_allclose(tt['k0l', 'e1..1'], 0., rtol=0, atol=1e-14)
|
833
877
|
assert_allclose(tt['k1l', 'e1..1'], 0.1 * 0.5 / 2, rtol=0, atol=1e-14)
|
834
878
|
assert_allclose(tt['k2l', 'e1..1'], 0, rtol=0, atol=1e-14)
|
@@ -849,6 +893,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
849
893
|
assert_allclose(tt['rot_s_rad', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
850
894
|
assert_allclose(tt['shift_x', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
851
895
|
assert_allclose(tt['shift_y', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
896
|
+
assert_allclose(tt['shift_s', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
852
897
|
assert_allclose(tt['k0l', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
853
898
|
assert_allclose(tt['k1l', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
854
899
|
assert_allclose(tt['k2l', 'e1_entry'], 0, rtol=0, atol=1e-14)
|
@@ -869,6 +914,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
869
914
|
assert_allclose(tt['rot_s_rad', 'e2..1'], 0.3, rtol=0, atol=1e-14)
|
870
915
|
assert_allclose(tt['shift_x', 'e2..1'], 3e-3, rtol=0, atol=1e-14)
|
871
916
|
assert_allclose(tt['shift_y', 'e2..1'], 4e-3, rtol=0, atol=1e-14)
|
917
|
+
assert_allclose(tt['shift_s', 'e2..1'], -2e-3, rtol=0, atol=1e-14)
|
872
918
|
assert_allclose(tt['k0l', 'e2..1'], 0., rtol=0, atol=1e-14)
|
873
919
|
assert_allclose(tt['k1l', 'e2..1'], 0., rtol=0, atol=1e-14)
|
874
920
|
assert_allclose(tt['k2l', 'e2..1'], 0.1 * 0.3*1/2, rtol=0, atol=1e-14)
|
@@ -889,6 +935,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
889
935
|
assert_allclose(tt['rot_s_rad', 'e3..1'], 0.4, rtol=0, atol=1e-14)
|
890
936
|
assert_allclose(tt['shift_x', 'e3..1'], 5e-3, rtol=0, atol=1e-14)
|
891
937
|
assert_allclose(tt['shift_y', 'e3..1'], 6e-3, rtol=0, atol=1e-14)
|
938
|
+
assert_allclose(tt['shift_s', 'e3..1'], -1e-3, rtol=0, atol=1e-14)
|
892
939
|
assert_allclose(tt['k0l', 'e3..1'], 0., rtol=0, atol=1e-14)
|
893
940
|
assert_allclose(tt['k1l', 'e3..1'], 0., rtol=0, atol=1e-14)
|
894
941
|
assert_allclose(tt['k2l', 'e3..1'], 0., rtol=0, atol=1e-14)
|
@@ -910,6 +957,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
910
957
|
assert_allclose(tt['rot_s_rad', 'e5'], 0.0, rtol=0, atol=1e-14)
|
911
958
|
assert_allclose(tt['shift_x', 'e5'], 0.0, rtol=0, atol=1e-14)
|
912
959
|
assert_allclose(tt['shift_y', 'e5'], 0.0, rtol=0, atol=1e-14)
|
960
|
+
assert_allclose(tt['shift_s', 'e5'], 0.0, rtol=0, atol=1e-14)
|
913
961
|
assert_allclose(tt['k0l', 'e5'], 0.0, rtol=0, atol=1e-14)
|
914
962
|
assert_allclose(tt['k1l', 'e5'], 0.0, rtol=0, atol=1e-14)
|
915
963
|
assert_allclose(tt['k2l', 'e5'], 0.0, rtol=0, atol=1e-14)
|
@@ -930,6 +978,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
930
978
|
assert_allclose(tt['rot_s_rad', 'e6..1'], 0.2, rtol=0, atol=1e-14)
|
931
979
|
assert_allclose(tt['shift_x', 'e6..1'], 1e-3, rtol=0, atol=1e-14)
|
932
980
|
assert_allclose(tt['shift_y', 'e6..1'], 2e-3, rtol=0, atol=1e-14)
|
981
|
+
assert_allclose(tt['shift_s', 'e6..1'], 2e-3, rtol=0, atol=1e-14)
|
933
982
|
assert_allclose(tt['k0l', 'e6..1'], 0.5 * (0.4 * 1 + 0.7), rtol=0, atol=1e-14)
|
934
983
|
assert_allclose(tt['k1l', 'e6..1'], 0.5 * (0.1 * 1 + 0.8), rtol=0, atol=1e-14)
|
935
984
|
assert_allclose(tt['k2l', 'e6..1'], 0.5 * .9, rtol=0, atol=1e-14)
|
@@ -950,6 +999,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
950
999
|
assert_allclose(tt['rot_s_rad', 'e6..exit_map'], 0.2, rtol=0, atol=1e-14)
|
951
1000
|
assert_allclose(tt['shift_x', 'e6..exit_map'], 1e-3, rtol=0, atol=1e-14)
|
952
1001
|
assert_allclose(tt['shift_y', 'e6..exit_map'], 2e-3, rtol=0, atol=1e-14)
|
1002
|
+
assert_allclose(tt['shift_s', 'e6..exit_map'], 2e-3, rtol=0, atol=1e-14)
|
953
1003
|
assert_allclose(tt['k0l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
|
954
1004
|
assert_allclose(tt['k1l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
|
955
1005
|
assert_allclose(tt['k2l', 'e6..exit_map'], 0, rtol=0, atol=1e-14)
|
@@ -970,6 +1020,7 @@ def test_attr_thick_slicing(test_context, check_expr, use_copy):
|
|
970
1020
|
assert_allclose(tt['rot_s_rad', 'e6..entry_map'], 0.2, rtol=0, atol=1e-14)
|
971
1021
|
assert_allclose(tt['shift_x', 'e6..entry_map'], 1e-3, rtol=0, atol=1e-14)
|
972
1022
|
assert_allclose(tt['shift_y', 'e6..entry_map'], 2e-3, rtol=0, atol=1e-14)
|
1023
|
+
assert_allclose(tt['shift_s', 'e6..entry_map'], 2e-3, rtol=0, atol=1e-14)
|
973
1024
|
assert_allclose(tt['k0l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
|
974
1025
|
assert_allclose(tt['k1l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
|
975
1026
|
assert_allclose(tt['k2l', 'e6..entry_map'], 0, rtol=0, atol=1e-14)
|
@@ -341,7 +341,7 @@ def test_import_thick_bend_from_madx(use_true_thick_bends, with_knobs, bend_type
|
|
341
341
|
|
342
342
|
assert np.allclose(
|
343
343
|
elem.knl,
|
344
|
-
np.array([0, 0, 0.8, 0, 0]), # knl = [0, 0, k2 * L, 0, 0]
|
344
|
+
np.array([0, 0, 0.8, 0, 0, 0]), # knl = [0, 0, k2 * L, 0, 0]
|
345
345
|
atol=1e-16,
|
346
346
|
)
|
347
347
|
|
@@ -378,7 +378,7 @@ def test_import_thick_bend_from_madx(use_true_thick_bends, with_knobs, bend_type
|
|
378
378
|
|
379
379
|
assert np.allclose(
|
380
380
|
elem.knl,
|
381
|
-
np.array([0, 0, 2.4, 0, 0]), # knl = [0, 0, k2 * L, 0, 0]
|
381
|
+
np.array([0, 0, 2.4, 0, 0, 0]), # knl = [0, 0, k2 * L, 0, 0]
|
382
382
|
atol=1e-16,
|
383
383
|
)
|
384
384
|
|
@@ -485,7 +485,7 @@ def test_import_thick_bend_from_madx_and_slice(
|
|
485
485
|
assert np.isclose(elem.weight, 0.5, atol=1e-16)
|
486
486
|
assert np.isclose(elem._parent.length, 2.0, atol=1e-16)
|
487
487
|
assert np.isclose(elem._parent.k0, 0.2, atol=1e-16)
|
488
|
-
assert np.allclose(elem._parent.knl, [0., 0, 0.8, 0, 0], atol=1e-16)
|
488
|
+
assert np.allclose(elem._parent.knl, [0., 0, 0.8, 0, 0, 0], atol=1e-16)
|
489
489
|
assert np.allclose(elem._parent.ksl, 0, atol=1e-16)
|
490
490
|
assert np.isclose(elem._parent.h, 0.05, atol=1e-16)
|
491
491
|
|
@@ -509,14 +509,14 @@ def test_import_thick_bend_from_madx_and_slice(
|
|
509
509
|
assert np.isclose(elem.weight, 0.5, atol=1e-16)
|
510
510
|
assert np.isclose(elem._parent.length, 3.0, atol=1e-16)
|
511
511
|
assert np.isclose(elem._parent.k0, 0.4, atol=1e-16)
|
512
|
-
assert np.allclose(elem._parent.knl, [0., 0, 2.4, 0, 0], atol=1e-16)
|
512
|
+
assert np.allclose(elem._parent.knl, [0., 0, 2.4, 0, 0, 0], atol=1e-16)
|
513
513
|
assert np.allclose(elem._parent.ksl, 0, atol=1e-16)
|
514
514
|
assert np.isclose(elem._parent.h, 0.2/3, atol=1e-16)
|
515
515
|
|
516
516
|
assert np.isclose(elem._xobject.weight, 0.5, atol=1e-16)
|
517
517
|
assert np.isclose(elem._xobject._parent.length, 3.0, atol=1e-16)
|
518
518
|
assert np.isclose(elem._xobject._parent.k0, 0.4, atol=1e-16)
|
519
|
-
assert np.allclose(elem._xobject._parent.knl, [0., 0, 2.4, 0, 0], atol=1e-16)
|
519
|
+
assert np.allclose(elem._xobject._parent.knl, [0., 0, 2.4, 0, 0, 0], atol=1e-16)
|
520
520
|
assert np.allclose(elem._xobject._parent.ksl, 0, atol=1e-16)
|
521
521
|
assert np.isclose(elem._xobject._parent.h, 0.2/3, atol=1e-16)
|
522
522
|
|
@@ -1,14 +1,13 @@
|
|
1
1
|
# copyright ################################# #
|
2
|
-
# This file is part of the
|
3
|
-
# Copyright (c) CERN,
|
2
|
+
# This file is part of the Xtrack Package. #
|
3
|
+
# Copyright (c) CERN, 2024. #
|
4
4
|
# ########################################### #
|
5
|
-
import json
|
6
5
|
|
7
6
|
import cffi
|
8
7
|
|
9
8
|
import xobjects as xo
|
10
9
|
import xtrack as xt
|
11
|
-
from
|
10
|
+
from xsuite.prebuild_kernels import regenerate_kernels
|
12
11
|
|
13
12
|
|
14
13
|
def test_prebuild_kernels(mocker, tmp_path, temp_context_default_func, capsys):
|
@@ -43,15 +42,17 @@ def test_prebuild_kernels(mocker, tmp_path, temp_context_default_func, capsys):
|
|
43
42
|
}),
|
44
43
|
]
|
45
44
|
|
46
|
-
|
45
|
+
# Override the definitions with the temporary ones
|
46
|
+
patch_defs = 'xsuite.kernel_definitions.kernel_definitions'
|
47
47
|
mocker.patch(patch_defs, kernel_definitions)
|
48
|
-
|
49
|
-
mocker.patch('
|
48
|
+
# We need to change the default location so that loading the kernels works
|
49
|
+
mocker.patch('xsuite.prebuild_kernels.XSK_PREBUILT_KERNELS_LOCATION',
|
50
|
+
tmp_path)
|
51
|
+
mocker.patch('xsuite.XSK_PREBUILT_KERNELS_LOCATION',
|
50
52
|
tmp_path)
|
51
|
-
mocker.patch('xtrack.tracker.XT_PREBUILT_KERNELS_LOCATION', tmp_path)
|
52
53
|
|
53
54
|
# Try regenerating the kernels
|
54
|
-
regenerate_kernels()
|
55
|
+
regenerate_kernels(location=tmp_path)
|
55
56
|
|
56
57
|
# Check if the expected files were created
|
57
58
|
so_file0, = tmp_path.glob('000_test_module.*.so')
|
@@ -103,17 +104,17 @@ def test_per_element_prebuild_kernels(mocker, tmp_path, temp_context_default_fun
|
|
103
104
|
}),
|
104
105
|
]
|
105
106
|
|
106
|
-
|
107
|
+
# Override the definitions with the temporary ones
|
108
|
+
patch_defs = 'xsuite.kernel_definitions.kernel_definitions'
|
107
109
|
mocker.patch(patch_defs, kernel_definitions)
|
108
|
-
|
109
|
-
mocker.patch('
|
110
|
+
# We need to change the default location so that loading the kernels works
|
111
|
+
mocker.patch('xsuite.prebuild_kernels.XSK_PREBUILT_KERNELS_LOCATION',
|
112
|
+
tmp_path)
|
113
|
+
mocker.patch('xsuite.XSK_PREBUILT_KERNELS_LOCATION',
|
110
114
|
tmp_path)
|
111
|
-
mocker.patch('xtrack.tracker.XT_PREBUILT_KERNELS_LOCATION', tmp_path)
|
112
|
-
mocker.patch('xtrack.base_element.XT_PREBUILT_KERNELS_LOCATION', tmp_path)
|
113
|
-
mocker.patch('xtrack.particles.particles.XT_PREBUILT_KERNELS_LOCATION', tmp_path)
|
114
115
|
|
115
116
|
# Try regenerating the kernels
|
116
|
-
regenerate_kernels()
|
117
|
+
regenerate_kernels(location=tmp_path)
|
117
118
|
|
118
119
|
# Check if the expected files were created
|
119
120
|
so_file_exists = False
|