xtrack 0.86.2__tar.gz → 0.86.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {xtrack-0.86.2/xtrack.egg-info → xtrack-0.86.3}/PKG-INFO +1 -1
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radiation_equilibrium_emittances.py +9 -9
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radiation_equilibrium_emittances_thick.py +9 -9
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_tapering.py +62 -1
- xtrack-0.86.3/xtrack/_version.py +1 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/line.py +4 -2
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/tapering.py +36 -19
- {xtrack-0.86.2 → xtrack-0.86.3/xtrack.egg-info}/PKG-INFO +1 -1
- xtrack-0.86.2/xtrack/_version.py +0 -1
- {xtrack-0.86.2 → xtrack-0.86.3}/LICENSE +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/MANIFEST.in +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/README.md +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/base_classes.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/elements.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/line.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/particles.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/pyproject.toml +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/setup.cfg +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/setup.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_acceleration.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_aperture_table.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_apertures.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_bucket_with_ref_energy_change.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_coasting.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_collimation.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_electron_cooler.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_elements.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_elements_thick.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_environment.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_footprint.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_full_rings.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_hvkick.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_ions.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_legacy_multiline_to_env.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_lhc_env.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_line.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_load.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_lumi.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_mad_writer.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_madloader.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_madnginterface.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_magnet.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_nested.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_monitor.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_multiline.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_multisetter.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_multispecies.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_native_madloader.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_optimize_for_tracking.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_particles.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_particles_basics.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_particles_pdg.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_pipeline.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radial_steering.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radiation.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_radiation_integrals.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_random_gen.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_rbend_rbarc.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_rf_track.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_seeds.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_slice_elements.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_slicing.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_spin.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_sps_thick.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_survey.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_tracker.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_twiss.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_vs_madx.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/aperture_meas.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/base_element.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/bend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/default_magnet_config.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/marker.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/octupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/rbend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/slnd.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_cavity.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/variable_solenoid.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/magnets.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/slice_elements_edge.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/slice_elements_thick.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/beam_elements/slice_elements_thin.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/environment.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/footprint.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/general.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/checks.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/constants.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/headers/track.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/internal_record.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/json.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/load.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/lumi.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_loader.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_parser/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_parser/loader.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_parser/parse.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/mad_writer.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/madng_interface.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/match.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multiline.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multiline_legacy/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multiline_legacy/shared_knobs.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/constants.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/masses.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/particles.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/pdg.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/slicing.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/survey.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/svgutils/__init__.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/svgutils/parser.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/svgutils/path.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/svgutils/svgutils.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/synctime.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/targets.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/tracker.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/tracker_data.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/twiss.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack/twissplot.py +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack.egg-info/SOURCES.txt +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.86.2 → xtrack-0.86.3}/xtrack.egg-info/top_level.txt +0 -0
|
@@ -124,32 +124,32 @@ def test_eq_emitt(conf):
|
|
|
124
124
|
if not tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
|
|
125
125
|
xo.assert_allclose(ex, 7.09232e-10, atol=0, rtol=1e-4)
|
|
126
126
|
xo.assert_allclose(ey, 0, atol=1e-14, rtol=0)
|
|
127
|
-
xo.assert_allclose(ez, 3.
|
|
127
|
+
xo.assert_allclose(ez, 3.36956e-06, atol=0, rtol=1e-4)
|
|
128
128
|
checked = True
|
|
129
129
|
elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
|
|
130
130
|
xo.assert_allclose(ex, 0, atol=1e-14, rtol=0)
|
|
131
131
|
xo.assert_allclose(ey, 7.09232e-10, atol=0, rtol=1e-4)
|
|
132
|
-
xo.assert_allclose(ez, 3.
|
|
132
|
+
xo.assert_allclose(ez, 3.36956e-6, atol=0, rtol=1e-4)
|
|
133
133
|
checked = True
|
|
134
134
|
elif not tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
|
135
135
|
xo.assert_allclose(ex, 7.0283e-10, atol=0, rtol=1e-4)
|
|
136
136
|
xo.assert_allclose(ey, 5.5765e-13, atol=0, rtol=4e-3)
|
|
137
|
-
xo.assert_allclose(ez, 3.
|
|
137
|
+
xo.assert_allclose(ez, 3.6042e-6, atol=0, rtol=1e-4)
|
|
138
138
|
checked = True
|
|
139
139
|
elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
|
140
140
|
xo.assert_allclose(ex, 5.5790e-13, atol=0, rtol=4e-3) # Quite large, to be kept in mind
|
|
141
141
|
xo.assert_allclose(ey, 7.0283e-10, atol=0, rtol=1e-4)
|
|
142
|
-
xo.assert_allclose(ez, 3.
|
|
142
|
+
xo.assert_allclose(ez, 3.6042e-6, atol=0, rtol=1e-4)
|
|
143
143
|
checked = True
|
|
144
144
|
elif not tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
|
|
145
145
|
xo.assert_allclose(ex, 7.0911e-10, atol=0, rtol=1e-4)
|
|
146
146
|
xo.assert_allclose(ey, 2.1821e-12, atol=0, rtol=1e-2)
|
|
147
|
-
xo.assert_allclose(ez, 3.
|
|
147
|
+
xo.assert_allclose(ez, 3.3536e-6, atol=0, rtol=1e-4)
|
|
148
148
|
checked = True
|
|
149
149
|
elif tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
|
|
150
150
|
xo.assert_allclose(ex, 2.1828e-12, atol=0, rtol=7e-3)
|
|
151
151
|
xo.assert_allclose(ey, 7.0911e-10, atol=0, rtol=1e-4)
|
|
152
|
-
xo.assert_allclose(ez, 3.
|
|
152
|
+
xo.assert_allclose(ez, 3.3536e-6, atol=0, rtol=1e-4)
|
|
153
153
|
checked = True
|
|
154
154
|
else:
|
|
155
155
|
raise ValueError('Unknown configuration')
|
|
@@ -159,11 +159,11 @@ def test_eq_emitt(conf):
|
|
|
159
159
|
# Check radiation integrals
|
|
160
160
|
tw_integ = line.twiss(radiation_integrals=True)
|
|
161
161
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_x_s,
|
|
162
|
-
tw_rad.damping_constants_s[0], rtol=0.
|
|
162
|
+
tw_rad.damping_constants_s[0], rtol=0.025, atol=0)
|
|
163
163
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_y_s,
|
|
164
|
-
tw_rad.damping_constants_s[1], rtol=0.
|
|
164
|
+
tw_rad.damping_constants_s[1], rtol=0.025, atol=0)
|
|
165
165
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_zeta_s,
|
|
166
|
-
tw_rad.damping_constants_s[2], rtol=0.
|
|
166
|
+
tw_rad.damping_constants_s[2], rtol=0.025, atol=0)
|
|
167
167
|
xo.assert_allclose(tw_integ.rad_int_eq_gemitt_x, ex, rtol=0.15, atol=1e-14)
|
|
168
168
|
xo.assert_allclose(tw_integ.rad_int_eq_gemitt_y, ey, rtol=0.15, atol=1e-14)
|
|
169
169
|
|
|
@@ -131,32 +131,32 @@ def test_eq_emitt(conf):
|
|
|
131
131
|
if not tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
|
|
132
132
|
xo.assert_allclose(ex, 7.0923e-10, atol=0, rtol=1e-4)
|
|
133
133
|
xo.assert_allclose(ey, 0, atol=1e-14, rtol=0)
|
|
134
|
-
xo.assert_allclose(ez, 3.
|
|
134
|
+
xo.assert_allclose(ez, 3.5064e-6, atol=0, rtol=1e-4)
|
|
135
135
|
checked = True
|
|
136
136
|
elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
|
|
137
137
|
xo.assert_allclose(ex, 0, atol=1e-14, rtol=0)
|
|
138
138
|
xo.assert_allclose(ey, 7.0923e-10, atol=0, rtol=1e-4)
|
|
139
|
-
xo.assert_allclose(ez, 3.
|
|
139
|
+
xo.assert_allclose(ez, 3.5064e-6, atol=0, rtol=1e-4)
|
|
140
140
|
checked = True
|
|
141
141
|
elif not tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
|
142
142
|
xo.assert_allclose(ex, 7.0283e-10, atol=0, rtol=1e-4)
|
|
143
143
|
xo.assert_allclose(ey, 5.6461e-13, atol=0, rtol=4e-3)
|
|
144
|
-
xo.assert_allclose(ez, 3.
|
|
144
|
+
xo.assert_allclose(ez, 3.7506e-6, atol=0, rtol=1e-4)
|
|
145
145
|
checked = True
|
|
146
146
|
elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
|
147
147
|
xo.assert_allclose(ex, 5.6448e-13, atol=0, rtol=1e-2) # Quite large, to be kept in mind
|
|
148
148
|
xo.assert_allclose(ey, 7.0283e-10, atol=0, rtol=1e-4)
|
|
149
|
-
xo.assert_allclose(ez, 3.
|
|
149
|
+
xo.assert_allclose(ez, 3.7506e-6, atol=0, rtol=1e-4)
|
|
150
150
|
checked = True
|
|
151
151
|
elif not tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
|
|
152
152
|
xo.assert_allclose(ex, 7.0910e-10, atol=0, rtol=1e-4)
|
|
153
153
|
xo.assert_allclose(ey, 2.2195e-12, atol=0, rtol=7e-3)
|
|
154
|
-
xo.assert_allclose(ez, 3.
|
|
154
|
+
xo.assert_allclose(ez, 3.4899e-6, atol=0, rtol=2e-4)
|
|
155
155
|
checked = True
|
|
156
156
|
elif tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
|
|
157
157
|
xo.assert_allclose(ex, 2.2154e-12, atol=0, rtol=7e-3)
|
|
158
158
|
xo.assert_allclose(ey, 7.0911e-10, atol=0, rtol=1e-4)
|
|
159
|
-
xo.assert_allclose(ez, 3.
|
|
159
|
+
xo.assert_allclose(ez, 3.4899e-6, atol=0, rtol=2e-4)
|
|
160
160
|
checked = True
|
|
161
161
|
else:
|
|
162
162
|
raise ValueError('Unknown configuration')
|
|
@@ -166,11 +166,11 @@ def test_eq_emitt(conf):
|
|
|
166
166
|
# Check radiation integrals
|
|
167
167
|
tw_integ = line.twiss(radiation_integrals=True)
|
|
168
168
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_x_s,
|
|
169
|
-
tw_rad.damping_constants_s[0], rtol=0.
|
|
169
|
+
tw_rad.damping_constants_s[0], rtol=0.025, atol=0)
|
|
170
170
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_y_s,
|
|
171
|
-
tw_rad.damping_constants_s[1], rtol=0.
|
|
171
|
+
tw_rad.damping_constants_s[1], rtol=0.025, atol=0)
|
|
172
172
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_zeta_s,
|
|
173
|
-
tw_rad.damping_constants_s[2], rtol=0.
|
|
173
|
+
tw_rad.damping_constants_s[2], rtol=0.025, atol=0)
|
|
174
174
|
xo.assert_allclose(tw_integ.rad_int_eq_gemitt_x, ex, rtol=0.15, atol=1e-14)
|
|
175
175
|
xo.assert_allclose(tw_integ.rad_int_eq_gemitt_y, ey, rtol=0.15, atol=1e-14)
|
|
176
176
|
|
|
@@ -37,7 +37,7 @@ def test_tapering_and_twiss_with_radiation():
|
|
|
37
37
|
line.configure_radiation(model='mean')
|
|
38
38
|
# - Set cavity lags to compensate energy loss
|
|
39
39
|
# - Taper magnet strengths
|
|
40
|
-
line.compensate_radiation_energy_loss()
|
|
40
|
+
line.compensate_radiation_energy_loss(delta0=0)
|
|
41
41
|
|
|
42
42
|
for conf in configs:
|
|
43
43
|
print(f'Running test with conf: {conf}')
|
|
@@ -126,3 +126,64 @@ def test_tapering_and_twiss_with_radiation():
|
|
|
126
126
|
xo.assert_allclose(
|
|
127
127
|
line['rf3'].voltage*np.sin((line['rf'].lag + line['rf'].lag_taper)/180*np.pi),
|
|
128
128
|
eneloss/4, rtol=3e-5)
|
|
129
|
+
|
|
130
|
+
def test_tapering_zero_mean():
|
|
131
|
+
|
|
132
|
+
filename = test_data_folder / 'clic_dr/line_for_taper.json'
|
|
133
|
+
with open(filename, 'r') as f:
|
|
134
|
+
line = xt.Line.from_dict(json.load(f))
|
|
135
|
+
|
|
136
|
+
line.build_tracker()
|
|
137
|
+
|
|
138
|
+
line['rf3'].voltage = 0. # desymmetrize the rf
|
|
139
|
+
line['rf'].voltage = 0. # desymmetrize the rf
|
|
140
|
+
|
|
141
|
+
line['rf1'].voltage *= 2
|
|
142
|
+
line['rf2b'].voltage *= 2
|
|
143
|
+
line['rf2a'].voltage *= 2
|
|
144
|
+
|
|
145
|
+
line.particle_ref.p0c = 4e9 # eV
|
|
146
|
+
|
|
147
|
+
line.configure_radiation(model=None)
|
|
148
|
+
tw_no_rad = line.twiss(method='4d', freeze_longitudinal=True)
|
|
149
|
+
|
|
150
|
+
###############################################
|
|
151
|
+
# Enable radiation and compensate energy loss #
|
|
152
|
+
###############################################
|
|
153
|
+
|
|
154
|
+
line.configure_radiation(model='mean')
|
|
155
|
+
|
|
156
|
+
# - Set cavity lags to compensate energy loss
|
|
157
|
+
# - Taper magnet strengths to avoid optics and orbit distortions
|
|
158
|
+
line.compensate_radiation_energy_loss(max_iter=100, delta0='zero_mean')
|
|
159
|
+
|
|
160
|
+
##############################
|
|
161
|
+
# Twiss to check the results #
|
|
162
|
+
##############################
|
|
163
|
+
|
|
164
|
+
tw = line.twiss(method='6d')
|
|
165
|
+
|
|
166
|
+
tw.delta # contains the momentum deviation along the ring
|
|
167
|
+
|
|
168
|
+
#!end-doc-part
|
|
169
|
+
|
|
170
|
+
p0corr = 1 + tw.delta
|
|
171
|
+
|
|
172
|
+
delta_ave = np.trapezoid(tw.delta, tw.s)/tw.s[-1]
|
|
173
|
+
xo.assert_allclose(delta_ave, 0, rtol=0, atol=1e-6)
|
|
174
|
+
|
|
175
|
+
xo.assert_allclose(tw.qx, tw_no_rad.qx, rtol=0, atol=5e-4)
|
|
176
|
+
xo.assert_allclose(tw.qy, tw_no_rad.qy, rtol=0, atol=5e-4)
|
|
177
|
+
|
|
178
|
+
xo.assert_allclose(tw.dqx, tw_no_rad.dqx, rtol=0, atol=1.5e-2*tw.qx)
|
|
179
|
+
xo.assert_allclose(tw.dqy, tw_no_rad.dqy, rtol=0, atol=1.5e-2*tw.qy)
|
|
180
|
+
|
|
181
|
+
xo.assert_allclose(tw.x, tw_no_rad.x, rtol=0, atol=1e-7)
|
|
182
|
+
xo.assert_allclose(tw.y, tw_no_rad.y, rtol=0, atol=1e-7)
|
|
183
|
+
|
|
184
|
+
xo.assert_allclose(tw.betx*p0corr, tw_no_rad.betx, rtol=2e-2, atol=0)
|
|
185
|
+
xo.assert_allclose(tw.bety*p0corr, tw_no_rad.bety, rtol=2e-2, atol=0)
|
|
186
|
+
|
|
187
|
+
xo.assert_allclose(tw.dx, tw.dx, rtol=0.0, atol=0.1e-3)
|
|
188
|
+
|
|
189
|
+
xo.assert_allclose(tw.dy, tw.dy, rtol=0.0, atol=0.1e-3)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.86.3'
|
|
@@ -3232,7 +3232,7 @@ class Line:
|
|
|
3232
3232
|
self, element=element, update_every=update_every, **kwargs
|
|
3233
3233
|
)
|
|
3234
3234
|
|
|
3235
|
-
def compensate_radiation_energy_loss(self, delta0=
|
|
3235
|
+
def compensate_radiation_energy_loss(self, delta0='zero_mean', rtol_eneloss=1e-10,
|
|
3236
3236
|
max_iter=100, **kwargs):
|
|
3237
3237
|
|
|
3238
3238
|
"""
|
|
@@ -3242,7 +3242,9 @@ class Line:
|
|
|
3242
3242
|
Parameters
|
|
3243
3243
|
----------
|
|
3244
3244
|
delta0: float
|
|
3245
|
-
Initial energy deviation.
|
|
3245
|
+
Initial energy deviation. If `delta0='zero_mean'` is specified, the
|
|
3246
|
+
compensation is done such that the mean energy deviation along the
|
|
3247
|
+
ring is zero.
|
|
3246
3248
|
rtol_eneloss: float
|
|
3247
3249
|
Relative tolerance on energy loss.
|
|
3248
3250
|
max_iter: int
|
|
@@ -6,7 +6,7 @@ from .general import _print
|
|
|
6
6
|
import xtrack as xt
|
|
7
7
|
import xobjects as xo
|
|
8
8
|
|
|
9
|
-
def compensate_radiation_energy_loss(line, delta0=
|
|
9
|
+
def compensate_radiation_energy_loss(line, delta0='zeto_mean', rtol_eneloss=1e-12,
|
|
10
10
|
max_iter=100, verbose=True,
|
|
11
11
|
co_search_at=None,
|
|
12
12
|
**kwargs):
|
|
@@ -37,7 +37,7 @@ def compensate_radiation_energy_loss(line, delta0=0, rtol_eneloss=1e-12,
|
|
|
37
37
|
|
|
38
38
|
# Check whether compensation is needed
|
|
39
39
|
p_test = particle_on_co.copy()
|
|
40
|
-
p_test.delta =
|
|
40
|
+
p_test.delta = line.attr._cache['delta_taper'].multisetter.get_values()[0]
|
|
41
41
|
line.track(p_test, turn_by_turn_monitor='ONE_TURN_EBE')
|
|
42
42
|
mon = line.record_last_track
|
|
43
43
|
eloss = -(mon.ptau[0, -1] - mon.ptau[0, 0]) * p_test.p0c[0]
|
|
@@ -67,28 +67,45 @@ def compensate_radiation_energy_loss(line, delta0=0, rtol_eneloss=1e-12,
|
|
|
67
67
|
line.config.XTRACK_MULTIPOLE_TAPER = True
|
|
68
68
|
line.config.XTRACK_DIPOLEEDGE_TAPER = True
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
if delta0 == 'zero_mean':
|
|
71
|
+
num_rounds = 2
|
|
72
|
+
delta_start = 0
|
|
73
|
+
else:
|
|
74
|
+
num_rounds = 1
|
|
75
|
+
delta_start = delta0
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
for round in range(num_rounds):
|
|
78
|
+
i_iter = 0
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
if verbose: _print(f"Energy loss: {eloss:.3f} eV ")#, end='\r', flush=True)
|
|
80
|
+
while True:
|
|
82
81
|
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
if round == 1 and delta0 == 'zero_mean':
|
|
83
|
+
delta_ave = xt.twiss.trapz(delta, ss) / ss[-1]
|
|
84
|
+
delta_start -= delta_ave
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
p_test = particle_on_co.copy()
|
|
87
|
+
p_test.delta = delta_start
|
|
88
|
+
line.track(p_test, turn_by_turn_monitor='ONE_TURN_EBE')
|
|
89
|
+
mon = line.record_last_track
|
|
88
90
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
if record_iterations:
|
|
92
|
+
line._tapering_iterations.append(mon)
|
|
93
|
+
|
|
94
|
+
eloss = -(mon.ptau[0, -1] - mon.ptau[0, 0]) * p_test.p0c[0]
|
|
95
|
+
if verbose: _print(f"Energy loss: {eloss:_.3f} eV ")#, end='\r', flush=True)
|
|
96
|
+
|
|
97
|
+
if np.abs(eloss) < p_test.energy0[0] * rtol_eneloss:
|
|
98
|
+
break
|
|
99
|
+
|
|
100
|
+
v_setter.set_values(v_setter.get_values()
|
|
101
|
+
+ eloss * eneloss_partitioning)
|
|
102
|
+
|
|
103
|
+
delta = mon.delta[0, :-1]
|
|
104
|
+
ss = mon.s[0, :-1]
|
|
105
|
+
|
|
106
|
+
i_iter += 1
|
|
107
|
+
if i_iter > max_iter:
|
|
108
|
+
raise RuntimeError("Maximum number of iterations reached")
|
|
92
109
|
if verbose: _print()
|
|
93
110
|
delta_taper_full = 0.5*(mon.delta[0, :-1] + mon.delta[0, 1:]) # last point is added by the monitor
|
|
94
111
|
|
xtrack-0.86.2/xtrack/_version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '0.86.2'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|