xtrack 0.88.6__tar.gz → 0.88.7__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.88.6/xtrack.egg-info → xtrack-0.88.7}/PKG-INFO +1 -1
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_elements_thick.py +158 -1
- xtrack-0.88.7/xtrack/_version.py +1 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements.py +8 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/bend.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/magnet.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/magnet_edge.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/multipole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/octupole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/quadrupole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/rbend.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/sextupole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/slnd.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thick_slice_bend.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_bend.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +2 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_magnet.h +13 -1
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_magnet_drift.h +10 -6
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_magnet_edge.h +4 -2
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_magnet_kick.h +4 -2
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/variable_solenoid.h +8 -4
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/twiss.py +4 -0
- {xtrack-0.88.6 → xtrack-0.88.7/xtrack.egg-info}/PKG-INFO +1 -1
- xtrack-0.88.6/xtrack/_version.py +0 -1
- {xtrack-0.88.6 → xtrack-0.88.7}/LICENSE +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/MANIFEST.in +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/README.md +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/base_classes.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/elements.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/line.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/particles.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/pyproject.toml +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/setup.cfg +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/setup.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_acceleration.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_aperture_table.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_apertures.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_bucket_with_ref_energy_change.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_coasting.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_collimation.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_electron_cooler.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_elements.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_environment.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_footprint.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_full_rings.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_hvkick.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_ions.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_legacy_multiline_to_env.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_lhc_env.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_line.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_load.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_load_vars.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_lumi.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_mad_writer.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_madloader.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_madnginterface.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_magnet.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_match_nested.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_monitor.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_multiline.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_multisetter.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_multispecies.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_native_madloader.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_optimize_for_tracking.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_particles.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_particles_basics.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_particles_pdg.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_pipeline.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_quadrupole_fringe_ptc.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_quadrupole_wedge.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_radial_steering.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_radiation.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_radiation_equilibrium_emittances_thick.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_radiation_integrals.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_random_gen.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_rbend_rbarc.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_rbend_straight_body.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_rf_track.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_seeds.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_slice_elements.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_slicing.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_spin.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_sps_thick.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_survey.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_tapering.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_tracker.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_twiss.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_vs_madx.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/aperture_meas.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/base_element.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/default_magnet_config.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/marker.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_cavity.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/magnets.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/slice_base.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/slice_elements_drift.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/slice_elements_edge.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/slice_elements_thick.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/slice_elements_thin.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/environment.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/footprint.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/general.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/headers/checks.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/headers/constants.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/headers/track.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/internal_record.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/json.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/line.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/load.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/lumi.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/mad_loader.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/mad_parser/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/mad_parser/loader.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/mad_parser/parse.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/mad_writer.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/madng_interface.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/match.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/multiline.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/multiline_legacy/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/multiline_legacy/shared_knobs.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/particles/constants.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/particles/masses.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/particles/particles.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/particles/pdg.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/random/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/slicing.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/survey.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/svgutils/__init__.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/svgutils/parser.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/svgutils/path.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/svgutils/svgutils.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/synctime.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/tapering.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/targets.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/tracker.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/tracker_data.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack/twissplot.py +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack.egg-info/SOURCES.txt +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.88.6 → xtrack-0.88.7}/xtrack.egg-info/top_level.txt +0 -0
|
@@ -2361,4 +2361,161 @@ def test_uniform_solenoid_with_slices(test_context, reference):
|
|
|
2361
2361
|
xo.assert_allclose(tw_back.rows[:'e0..0'].ax, tw['ax', 'e0..0'],
|
|
2362
2362
|
rtol=0, atol=1e-10)
|
|
2363
2363
|
xo.assert_allclose(tw_back.rows[:'e0..0'].ay, tw['ay', 'e0..0'],
|
|
2364
|
-
rtol=0, atol=1e-10)
|
|
2364
|
+
rtol=0, atol=1e-10)
|
|
2365
|
+
|
|
2366
|
+
@for_all_test_contexts
|
|
2367
|
+
def test_uniform_solenoid_x0y0(test_context):
|
|
2368
|
+
|
|
2369
|
+
env = xt.Environment()
|
|
2370
|
+
env.particle_ref = xt.Particles(mass0=xt.ELECTRON_MASS_EV, p0c=20e9)
|
|
2371
|
+
|
|
2372
|
+
line_ref = env.new_line(components=[
|
|
2373
|
+
env.new('sol_ref',xt.UniformSolenoid, length=3, ks=0.2),
|
|
2374
|
+
env.new('end', xt.Marker)
|
|
2375
|
+
])
|
|
2376
|
+
line_ref_thick = line_ref.copy(shallow=True)
|
|
2377
|
+
line_ref.cut_at_s(np.linspace(0, 3, 5))
|
|
2378
|
+
tw_ref = line_ref.twiss(x=0.1, y=0.2, betx=1, bety=1)
|
|
2379
|
+
tw_ref_thick = line_ref_thick.twiss(x=0.1, y=0.2, betx=1, bety=1)
|
|
2380
|
+
|
|
2381
|
+
x0 = 0.05
|
|
2382
|
+
y0 = 0.15
|
|
2383
|
+
line_test = env.new_line(components=[
|
|
2384
|
+
env.new('solt_test', xt.UniformSolenoid, length=3, ks=0.2, x0=x0, y0=y0),
|
|
2385
|
+
env.place('end')
|
|
2386
|
+
])
|
|
2387
|
+
line_test_thick = line_test.copy(shallow=True)
|
|
2388
|
+
line_test.build_tracker(test_context)
|
|
2389
|
+
line_test.cut_at_s(np.linspace(0, 3, 5))
|
|
2390
|
+
line_test_thick.build_tracker(test_context)
|
|
2391
|
+
tw_test = line_test.twiss(x=x0 + 0.1, y=y0 + 0.2, betx=1, bety=1)
|
|
2392
|
+
tw_test_thick = line_test_thick.twiss(x=x0 + 0.1, y=y0 + 0.2, betx=1, bety=1)
|
|
2393
|
+
|
|
2394
|
+
xo.assert_allclose(tw_test.x, tw_ref.x + x0, rtol=0, atol=1e-14)
|
|
2395
|
+
xo.assert_allclose(tw_test.y, tw_ref.y + y0, rtol=0, atol=1e-14)
|
|
2396
|
+
xo.assert_allclose(tw_test.px, tw_ref.px, rtol=0, atol=1e-14)
|
|
2397
|
+
xo.assert_allclose(tw_test.py, tw_ref.py, rtol=0, atol=1e-14)
|
|
2398
|
+
xo.assert_allclose(tw_test.kin_px, tw_ref.kin_px, rtol=0, atol=1e-14)
|
|
2399
|
+
xo.assert_allclose(tw_test.kin_py, tw_ref.kin_py, rtol=0, atol=1e-14)
|
|
2400
|
+
|
|
2401
|
+
xo.assert_allclose(tw_ref_thick.x[-1], tw_ref.x[-1], rtol=0, atol=1e-14)
|
|
2402
|
+
xo.assert_allclose(tw_ref_thick.y[-1], tw_ref.y[-1], rtol=0, atol=1e-14)
|
|
2403
|
+
xo.assert_allclose(tw_ref_thick.px[-1], tw_ref.px[-1], rtol=0, atol=1e-14)
|
|
2404
|
+
xo.assert_allclose(tw_ref_thick.py[-1], tw_ref.py[-1], rtol=0, atol=1e-14)
|
|
2405
|
+
xo.assert_allclose(tw_ref_thick.kin_px[-1], tw_ref.kin_px[-1], rtol=0, atol=1e-14)
|
|
2406
|
+
xo.assert_allclose(tw_ref_thick.kin_py[-1], tw_ref.kin_py[-1], rtol=0, atol=1e-14)
|
|
2407
|
+
|
|
2408
|
+
xo.assert_allclose(tw_test_thick.x[-1], tw_test.x[-1], rtol=0, atol=1e-14)
|
|
2409
|
+
xo.assert_allclose(tw_test_thick.y[-1], tw_test.y[-1], rtol=0, atol=1e-14)
|
|
2410
|
+
xo.assert_allclose(tw_test_thick.px[-1], tw_test.px[-1], rtol=0, atol=1e-14)
|
|
2411
|
+
xo.assert_allclose(tw_test_thick.py[-1], tw_test.py[-1], rtol=0, atol=1e-14)
|
|
2412
|
+
xo.assert_allclose(tw_test_thick.kin_px[-1], tw_test.kin_px[-1], rtol=0, atol=1e-14)
|
|
2413
|
+
xo.assert_allclose(tw_test_thick.kin_py[-1], tw_test.kin_py[-1], rtol=0, atol=1e-14)
|
|
2414
|
+
|
|
2415
|
+
tw_ref_back = line_ref.twiss(init=tw_ref, init_at='end')
|
|
2416
|
+
tw_test_back = line_test.twiss(init=tw_test, init_at='end')
|
|
2417
|
+
tw_ref_thick_back = line_ref_thick.twiss(init=tw_ref_thick, init_at='end')
|
|
2418
|
+
tw_test_thick_back = line_test_thick.twiss(init=tw_test_thick, init_at='end')
|
|
2419
|
+
|
|
2420
|
+
for ttest, tref in zip([tw_ref_back, tw_test_back, tw_ref_thick_back, tw_test_thick_back],
|
|
2421
|
+
[tw_ref, tw_test, tw_ref_thick, tw_test_thick]):
|
|
2422
|
+
xo.assert_allclose(ttest.x, tref.x, rtol=0, atol=1e-14)
|
|
2423
|
+
xo.assert_allclose(ttest.y, tref.y, rtol=0, atol=1e-14)
|
|
2424
|
+
xo.assert_allclose(ttest.px, tref.px, rtol=0, atol=1e-14)
|
|
2425
|
+
xo.assert_allclose(ttest.py, tref.py, rtol=0, atol=1e-14)
|
|
2426
|
+
xo.assert_allclose(ttest.kin_px, tref.kin_px, rtol=0, atol=1e-14)
|
|
2427
|
+
xo.assert_allclose(ttest.kin_py, tref.kin_py, rtol=0, atol=1e-14)
|
|
2428
|
+
|
|
2429
|
+
line_test.discard_tracker()
|
|
2430
|
+
line_test_thick.discard_tracker()
|
|
2431
|
+
line_test.build_tracker(xo.context_default)
|
|
2432
|
+
line_test_thick.build_tracker(xo.context_default)
|
|
2433
|
+
|
|
2434
|
+
line_ref.configure_radiation(model='mean')
|
|
2435
|
+
line_test.configure_radiation(model='mean')
|
|
2436
|
+
line_ref_thick.configure_radiation(model='mean')
|
|
2437
|
+
line_test_thick.configure_radiation(model='mean')
|
|
2438
|
+
|
|
2439
|
+
tw_ref_rad = line_ref.twiss(x=0.1, y=0.2, betx=1, bety=1)
|
|
2440
|
+
tw_test_rad = line_test.twiss(x=x0 + 0.1, y=y0 + 0.2, betx=1, bety=1)
|
|
2441
|
+
tw_ref_thick_rad = line_ref_thick.twiss(x=0.1, y=0.2, betx=1, bety=1)
|
|
2442
|
+
tw_test_thick_rad = line_test_thick.twiss(x=x0 + 0.1, y=y0 + 0.2, betx=1, bety=1)
|
|
2443
|
+
|
|
2444
|
+
assert tw_test_rad.delta[-1] < -5e-6
|
|
2445
|
+
xo.assert_allclose(tw_test_rad.x, tw_ref_rad.x + x0, rtol=0, atol=1e-14)
|
|
2446
|
+
xo.assert_allclose(tw_test_rad.y, tw_ref_rad.y + y0, rtol=0, atol=1e-14)
|
|
2447
|
+
xo.assert_allclose(tw_test_rad.px, tw_ref_rad.px, rtol=0, atol=1e-14)
|
|
2448
|
+
xo.assert_allclose(tw_test_rad.py, tw_ref_rad.py, rtol=0, atol=1e-14)
|
|
2449
|
+
xo.assert_allclose(tw_test_rad.kin_px, tw_ref_rad.kin_px, rtol=0, atol=1e-14)
|
|
2450
|
+
xo.assert_allclose(tw_test_rad.kin_py, tw_ref_rad.kin_py, rtol=0, atol=1e-14)
|
|
2451
|
+
xo.assert_allclose(tw_test_rad.delta, tw_ref_rad.delta, rtol=0, atol=1e-14)
|
|
2452
|
+
|
|
2453
|
+
xo.assert_allclose(tw_test_thick_rad.x, tw_ref_thick_rad.x + x0, rtol=0, atol=1e-14)
|
|
2454
|
+
xo.assert_allclose(tw_test_thick_rad.y, tw_ref_thick_rad.y + y0, rtol=0, atol=1e-14)
|
|
2455
|
+
xo.assert_allclose(tw_test_thick_rad.px, tw_ref_thick_rad.px, rtol=0, atol=1e-14)
|
|
2456
|
+
xo.assert_allclose(tw_test_thick_rad.py, tw_ref_thick_rad.py, rtol=0, atol=1e-14)
|
|
2457
|
+
xo.assert_allclose(tw_test_thick_rad.kin_px, tw_ref_thick_rad.kin_px, rtol=0, atol=1e-14)
|
|
2458
|
+
xo.assert_allclose(tw_test_thick_rad.kin_py, tw_ref_thick_rad.kin_py, rtol=0, atol=1e-14)
|
|
2459
|
+
xo.assert_allclose(tw_test_thick_rad.delta, tw_ref_thick_rad.delta, rtol=0, atol=1e-14)
|
|
2460
|
+
|
|
2461
|
+
@for_all_test_contexts
|
|
2462
|
+
def test_variable_solenoid_x0y0(test_context):
|
|
2463
|
+
|
|
2464
|
+
env = xt.Environment()
|
|
2465
|
+
env.particle_ref = xt.Particles(mass0=xt.ELECTRON_MASS_EV, p0c=20e9)
|
|
2466
|
+
|
|
2467
|
+
line_ref = env.new_line(components=[
|
|
2468
|
+
env.new('sol_ref0', xt.VariableSolenoid, length=3, ks_profile=[0., 0.1]),
|
|
2469
|
+
env.new('sol_ref1', xt.VariableSolenoid, length=3, ks_profile=[0.1, 0.3]),
|
|
2470
|
+
env.new('sol_ref2', xt.VariableSolenoid, length=3, ks_profile=[0.3, 0.]),
|
|
2471
|
+
env.new('end', xt.Marker)
|
|
2472
|
+
])
|
|
2473
|
+
tw_ref = line_ref.twiss(x=0.1, y=0.2, betx=1, bety=1)
|
|
2474
|
+
|
|
2475
|
+
x0 = 0.05
|
|
2476
|
+
y0 = 0.15
|
|
2477
|
+
line_test = env.new_line(components=[
|
|
2478
|
+
env.new('solt_test0', xt.VariableSolenoid, length=3, ks_profile=[0., 0.1], x0=x0, y0=y0),
|
|
2479
|
+
env.new('solt_test1', xt.VariableSolenoid, length=3, ks_profile=[0.1, 0.3], x0=x0, y0=y0),
|
|
2480
|
+
env.new('solt_test2', xt.VariableSolenoid, length=3, ks_profile=[0.3, 0.], x0=x0, y0=y0),
|
|
2481
|
+
env.place('end')
|
|
2482
|
+
])
|
|
2483
|
+
line_test.build_tracker(test_context)
|
|
2484
|
+
tw_test = line_test.twiss(x=x0 + 0.1, y=y0 + 0.2, betx=1, bety=1)
|
|
2485
|
+
|
|
2486
|
+
xo.assert_allclose(tw_test.x, tw_ref.x + x0, rtol=0, atol=1e-14)
|
|
2487
|
+
xo.assert_allclose(tw_test.y, tw_ref.y + y0, rtol=0, atol=1e-14)
|
|
2488
|
+
xo.assert_allclose(tw_test.px, tw_ref.px, rtol=0, atol=1e-14)
|
|
2489
|
+
xo.assert_allclose(tw_test.py, tw_ref.py, rtol=0, atol=1e-14)
|
|
2490
|
+
xo.assert_allclose(tw_test.kin_px, tw_ref.kin_px, rtol=0, atol=1e-14)
|
|
2491
|
+
xo.assert_allclose(tw_test.kin_py, tw_ref.kin_py, rtol=0, atol=1e-14)
|
|
2492
|
+
|
|
2493
|
+
tw_ref_back = line_ref.twiss(init=tw_ref, init_at='end')
|
|
2494
|
+
tw_test_back = line_test.twiss(init=tw_test, init_at='end')
|
|
2495
|
+
|
|
2496
|
+
for ttest, tref in zip([tw_ref_back, tw_test_back],
|
|
2497
|
+
[tw_ref, tw_test]):
|
|
2498
|
+
xo.assert_allclose(ttest.x, tref.x, rtol=0, atol=1e-14)
|
|
2499
|
+
xo.assert_allclose(ttest.y, tref.y, rtol=0, atol=1e-14)
|
|
2500
|
+
xo.assert_allclose(ttest.px, tref.px, rtol=0, atol=1e-14)
|
|
2501
|
+
xo.assert_allclose(ttest.py, tref.py, rtol=0, atol=1e-14)
|
|
2502
|
+
xo.assert_allclose(ttest.kin_px, tref.kin_px, rtol=0, atol=1e-14)
|
|
2503
|
+
xo.assert_allclose(ttest.kin_py, tref.kin_py, rtol=0, atol=1e-14)
|
|
2504
|
+
|
|
2505
|
+
line_ref.configure_radiation(model='mean')
|
|
2506
|
+
line_test.configure_radiation(model='mean')
|
|
2507
|
+
|
|
2508
|
+
line_test.discard_tracker()
|
|
2509
|
+
line_test.build_tracker(xo.context_default)
|
|
2510
|
+
|
|
2511
|
+
tw_ref_rad = line_ref.twiss(x=0.1, y=0.2, betx=1, bety=1)
|
|
2512
|
+
tw_test_rad = line_test.twiss(x=x0 + 0.1, y=y0 + 0.2, betx=1, bety=1)
|
|
2513
|
+
|
|
2514
|
+
assert tw_test_rad.delta[-1] < -5e-5
|
|
2515
|
+
xo.assert_allclose(tw_test_rad.x, tw_ref_rad.x + x0, rtol=0, atol=1e-14)
|
|
2516
|
+
xo.assert_allclose(tw_test_rad.y, tw_ref_rad.y + y0, rtol=0, atol=1e-14)
|
|
2517
|
+
xo.assert_allclose(tw_test_rad.px, tw_ref_rad.px, rtol=0, atol=1e-14)
|
|
2518
|
+
xo.assert_allclose(tw_test_rad.py, tw_ref_rad.py, rtol=0, atol=1e-14)
|
|
2519
|
+
xo.assert_allclose(tw_test_rad.kin_px, tw_ref_rad.kin_px, rtol=0, atol=1e-14)
|
|
2520
|
+
xo.assert_allclose(tw_test_rad.kin_py, tw_ref_rad.kin_py, rtol=0, atol=1e-14)
|
|
2521
|
+
xo.assert_allclose(tw_test_rad.delta, tw_ref_rad.delta, rtol=0, atol=1e-14)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.88.7'
|
|
@@ -1939,6 +1939,10 @@ class UniformSolenoid(BeamElement):
|
|
|
1939
1939
|
Strength of the solenoid component.
|
|
1940
1940
|
length : float
|
|
1941
1941
|
Length of the element in meters along the reference trajectory.
|
|
1942
|
+
x0 : float, optional
|
|
1943
|
+
Horizontal offset of the solenoid center in meters. Defaults to 0.
|
|
1944
|
+
y0 : float, optional
|
|
1945
|
+
Vertical offset of the solenoid center in meters. Defaults to 0.
|
|
1942
1946
|
order : int, optional
|
|
1943
1947
|
Maximum order of multipole expansion for this magnet. Defaults to 5.
|
|
1944
1948
|
knl : list of floats, optional
|
|
@@ -1967,6 +1971,8 @@ class UniformSolenoid(BeamElement):
|
|
|
1967
1971
|
_xofields={
|
|
1968
1972
|
'ks': xo.Float64,
|
|
1969
1973
|
'length': xo.Float64,
|
|
1974
|
+
'x0': xo.Float64,
|
|
1975
|
+
'y0': xo.Float64,
|
|
1970
1976
|
'order': xo.Int64,
|
|
1971
1977
|
'inv_factorial_order': xo.Float64,
|
|
1972
1978
|
'knl': xo.Float64[:],
|
|
@@ -2093,6 +2099,8 @@ class VariableSolenoid(BeamElement):
|
|
|
2093
2099
|
_xofields={
|
|
2094
2100
|
'ks_profile': xo.Float64[2],
|
|
2095
2101
|
'length': xo.Float64,
|
|
2102
|
+
'x0': xo.Float64,
|
|
2103
|
+
'y0': xo.Float64,
|
|
2096
2104
|
'order': xo.Int64,
|
|
2097
2105
|
'inv_factorial_order': xo.Float64,
|
|
2098
2106
|
'knl': xo.Float64[:],
|
|
@@ -45,6 +45,8 @@ void UniformSolenoid_track_local_particle(
|
|
|
45
45
|
/*k3s*/ 0.,
|
|
46
46
|
/*ks*/ UniformSolenoidData_get_ks(el),
|
|
47
47
|
/*dks_ds*/ 0.,
|
|
48
|
+
/*x0_solenoid*/ UniformSolenoidData_get_x0(el),
|
|
49
|
+
/*y0_solenoid*/ UniformSolenoidData_get_y0(el),
|
|
48
50
|
/*rbend_model*/ -1, // not rbend
|
|
49
51
|
/*rbend_shift*/ 0.,
|
|
50
52
|
/*body_active*/ 1,
|
|
@@ -48,6 +48,8 @@ void ThickSliceRBend_track_local_particle(
|
|
|
48
48
|
/*k3s*/ 0.,
|
|
49
49
|
/*ks*/ 0.,
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*x0_solenoid*/ 0.,
|
|
52
|
+
/*y0_solenoid*/ 0.,
|
|
51
53
|
/*rbend_model*/ ThickSliceRBendData_get__parent_rbend_model(el),
|
|
52
54
|
/*rbend_shift*/ ThickSliceRBendData_get__parent_rbend_shift(el),
|
|
53
55
|
/*body_active*/ 1,
|
{xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h
RENAMED
|
@@ -48,6 +48,8 @@ void ThickSliceUniformSolenoid_track_local_particle(
|
|
|
48
48
|
/*k3s*/ 0.,
|
|
49
49
|
/*ks*/ ThickSliceUniformSolenoidData_get__parent_ks(el),
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*x0_solenoid*/ ThickSliceUniformSolenoidData_get__parent_x0(el),
|
|
52
|
+
/*y0_solenoid*/ ThickSliceUniformSolenoidData_get__parent_y0(el),
|
|
51
53
|
/*rbend_model*/ -1, // not rbend
|
|
52
54
|
/*rbend_shift*/ 0.,
|
|
53
55
|
/*body_active*/ 1,
|
{xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h
RENAMED
|
@@ -48,6 +48,8 @@ void ThinSliceOctupoleEntry_track_local_particle(
|
|
|
48
48
|
/*k3s*/ ThinSliceOctupoleEntryData_get__parent_k3s(el),
|
|
49
49
|
/*ks*/ 0.,
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*x0_solenoid*/ 0.,
|
|
52
|
+
/*y0_solenoid*/ 0.,
|
|
51
53
|
/*rbend_model*/ -1, // not rbend
|
|
52
54
|
/*rbend_shift*/ 0.,
|
|
53
55
|
/*body_active*/ 0, // disabled
|
{xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h
RENAMED
|
@@ -48,6 +48,8 @@ void ThinSliceOctupoleExit_track_local_particle(
|
|
|
48
48
|
/*k3s*/ ThinSliceOctupoleExitData_get__parent_k3s(el),
|
|
49
49
|
/*ks*/ 0.,
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*x0_solenoid*/ 0.,
|
|
52
|
+
/*y0_solenoid*/ 0.,
|
|
51
53
|
/*rbend_model*/ -1, // not rbend
|
|
52
54
|
/*rbend_shift*/ 0.,
|
|
53
55
|
/*body_active*/ 0, // disabled
|
|
@@ -48,6 +48,8 @@ void ThinSliceRBend_track_local_particle(
|
|
|
48
48
|
/*k3s*/ 0.,
|
|
49
49
|
/*ks*/ 0.,
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*x0_solenoid*/ 0.,
|
|
52
|
+
/*y0_solenoid*/ 0.,
|
|
51
53
|
/*rbend_model*/ ThinSliceRBendData_get__parent_rbend_model(el),
|
|
52
54
|
/*rbend_shift*/ ThinSliceRBendData_get__parent_rbend_shift(el),
|
|
53
55
|
/*body_active*/ 1,
|
|
@@ -48,6 +48,8 @@ void ThinSliceRBendEntry_track_local_particle(
|
|
|
48
48
|
/*k3s*/ 0.,
|
|
49
49
|
/*ks*/ 0.,
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*x0_solenoid*/ 0.,
|
|
52
|
+
/*y0_solenoid*/ 0.,
|
|
51
53
|
/*rbend_model*/ ThinSliceRBendEntryData_get__parent_rbend_model(el),
|
|
52
54
|
/*rbend_shift*/ ThinSliceRBendEntryData_get__parent_rbend_shift(el),
|
|
53
55
|
/*body_active*/ 0, // disabled
|
|
@@ -48,6 +48,8 @@ void ThinSliceRBendExit_track_local_particle(
|
|
|
48
48
|
/*k3s*/ 0.,
|
|
49
49
|
/*ks*/ 0.,
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*x0_solenoid*/ 0.,
|
|
52
|
+
/*y0_solenoid*/ 0.,
|
|
51
53
|
/*rbend_model*/ ThinSliceRBendExitData_get__parent_rbend_model(el),
|
|
52
54
|
/*rbend_shift*/ ThinSliceRBendExitData_get__parent_rbend_shift(el),
|
|
53
55
|
/*body_active*/ 0, // disabled
|
|
@@ -48,6 +48,8 @@ void ThinSliceUniformSolenoidEntry_track_local_particle(
|
|
|
48
48
|
/*k3s*/ 0.,
|
|
49
49
|
/*ks*/ ThinSliceUniformSolenoidEntryData_get__parent_ks(el),
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*x0_solenoid*/ ThinSliceUniformSolenoidEntryData_get__parent_x0(el),
|
|
52
|
+
/*y0_solenoid*/ ThinSliceUniformSolenoidEntryData_get__parent_y0(el),
|
|
51
53
|
/*rbend_model*/ -1, // not rbend
|
|
52
54
|
/*rbend_shift*/ 0.,
|
|
53
55
|
/*body_active*/ 0, // disabled
|
{xtrack-0.88.6 → xtrack-0.88.7}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h
RENAMED
|
@@ -48,6 +48,8 @@ void ThinSliceUniformSolenoidExit_track_local_particle(
|
|
|
48
48
|
/*k3s*/ 0.,
|
|
49
49
|
/*ks*/ ThinSliceUniformSolenoidExitData_get__parent_ks(el),
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*x0_solenoid*/ ThinSliceUniformSolenoidExitData_get__parent_x0(el),
|
|
52
|
+
/*y0_solenoid*/ ThinSliceUniformSolenoidExitData_get__parent_y0(el),
|
|
51
53
|
/*rbend_model*/ -1, // not rbend
|
|
52
54
|
/*rbend_shift*/ 0.,
|
|
53
55
|
/*body_active*/ 0, // disabled
|
|
@@ -201,6 +201,8 @@ void track_magnet_body_single_particle(
|
|
|
201
201
|
const double k2s,
|
|
202
202
|
const double k3s,
|
|
203
203
|
const double dks_ds,
|
|
204
|
+
const double x0_solenoid,
|
|
205
|
+
const double y0_solenoid,
|
|
204
206
|
const int64_t radiation_flag,
|
|
205
207
|
const int64_t spin_flag,
|
|
206
208
|
SynchrotronRadiationRecordData radiation_record,
|
|
@@ -219,7 +221,8 @@ void track_magnet_body_single_particle(
|
|
|
219
221
|
|
|
220
222
|
#define MAGNET_DRIFT(part, dlength) \
|
|
221
223
|
track_magnet_drift_single_particle(\
|
|
222
|
-
part, (dlength), k0_drift, k1_drift, ks_drift, h_drift
|
|
224
|
+
part, (dlength), k0_drift, k1_drift, ks_drift, h_drift,\
|
|
225
|
+
x0_solenoid, y0_solenoid, drift_model\
|
|
223
226
|
)
|
|
224
227
|
|
|
225
228
|
#ifdef XTRACK_MULTIPOLE_NO_SYNRAD
|
|
@@ -271,6 +274,8 @@ void track_magnet_body_single_particle(
|
|
|
271
274
|
k3s, \
|
|
272
275
|
ks_drift, \
|
|
273
276
|
dks_ds, \
|
|
277
|
+
x0_solenoid, \
|
|
278
|
+
y0_solenoid, \
|
|
274
279
|
&Bx_T, \
|
|
275
280
|
&By_T, \
|
|
276
281
|
&Bz_T \
|
|
@@ -436,6 +441,8 @@ void track_magnet_particles(
|
|
|
436
441
|
double k3s,
|
|
437
442
|
double ks,
|
|
438
443
|
double dks_ds,
|
|
444
|
+
double x0_solenoid,
|
|
445
|
+
double y0_solenoid,
|
|
439
446
|
int64_t rbend_model, // -1: not used, 0: auto, 1: curved body, 2: straight body
|
|
440
447
|
double rbend_shift,
|
|
441
448
|
int64_t body_active,
|
|
@@ -582,6 +589,8 @@ void track_magnet_particles(
|
|
|
582
589
|
factor_knl_ksl_edge,
|
|
583
590
|
order,
|
|
584
591
|
ks,
|
|
592
|
+
x0_solenoid,
|
|
593
|
+
y0_solenoid,
|
|
585
594
|
length,
|
|
586
595
|
edge_entry_angle,
|
|
587
596
|
edge_entry_angle_fdown,
|
|
@@ -659,6 +668,7 @@ void track_magnet_particles(
|
|
|
659
668
|
k0_h_correction, k1_h_correction,
|
|
660
669
|
k2, k3, k0s, k1s, k2s, k3s,
|
|
661
670
|
dks_ds,
|
|
671
|
+
x0_solenoid, y0_solenoid,
|
|
662
672
|
radiation_flag,
|
|
663
673
|
1, // spin_flag
|
|
664
674
|
radiation_record,
|
|
@@ -693,6 +703,8 @@ void track_magnet_particles(
|
|
|
693
703
|
factor_knl_ksl_edge,
|
|
694
704
|
order,
|
|
695
705
|
ks,
|
|
706
|
+
x0_solenoid,
|
|
707
|
+
y0_solenoid,
|
|
696
708
|
length,
|
|
697
709
|
edge_exit_angle,
|
|
698
710
|
edge_exit_angle_fdown,
|