xtrack 0.89.1__tar.gz → 0.89.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.89.1/xtrack.egg-info → xtrack-0.89.3}/PKG-INFO +1 -1
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_load.py +23 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_tapering.py +2 -2
- xtrack-0.89.3/xtrack/_version.py +1 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/base_element.py +3 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements.py +5 -5
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/dipoleedge.h +13 -15
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_exact.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_exact_slice.h +6 -5
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice.h +6 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_bend.h +7 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_cavity.h +7 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_crab_cavity.h +7 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_multipole.h +7 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +7 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +7 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +7 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +7 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +7 -6
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/elens.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/exciter.h +8 -7
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/legacy_solenoid.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/magnet_edge.h +6 -5
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/misalignment.h +0 -4
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/simplethinbend.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/srotation.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +3 -3
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_magnet.h +18 -16
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_magnet.template.h +18 -16
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +3 -3
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_mult_fringe.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_rf.h +10 -7
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_rf.template.h +10 -7
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/variable_solenoid.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/xrotation.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/xyshift.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/yrotation.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/zetashift.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/general.py +6 -2
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/headers/synrad_spectrum.h +16 -16
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/loss_location_refinement/loss_location_refinement.py +3 -1
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/particles_monitor.h +3 -4
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/tapering.py +2 -3
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/track_flags.py +6 -4
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/tracker.py +24 -24
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/twiss.py +18 -19
- {xtrack-0.89.1 → xtrack-0.89.3/xtrack.egg-info}/PKG-INFO +1 -1
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack.egg-info/SOURCES.txt +0 -2
- xtrack-0.89.1/tests/test_periodic_symmetric_twiss_and_match.py +0 -163
- xtrack-0.89.1/xtrack/_version.py +0 -1
- xtrack-0.89.1/xtrack/beam_elements/elements_src/track_cavity.h +0 -66
- {xtrack-0.89.1 → xtrack-0.89.3}/LICENSE +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/MANIFEST.in +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/README.md +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/base_classes.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/elements.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/line.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/particles.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/pyproject.toml +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/setup.cfg +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/setup.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_acceleration.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_aperture_table.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_apertures.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_bucket_with_ref_energy_change.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_coasting.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_collimation.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_coupling_edwards_teng.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_electron_cooler.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_elements.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_elements_thick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_environment.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_footprint.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_full_rings.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_hvkick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_ions.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_legacy_multiline_to_env.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_lhc_env.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_line.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_load_vars.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_lumi.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_mad_writer.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_madloader.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_madnginterface.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_magnet.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_match_nested.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_misalign.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_multiline.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_multisetter.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_multispecies.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_native_madloader.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_optimize_for_tracking.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_particles.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_particles_basics.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_particles_pdg.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_pipeline.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_quadrupole_fringe_ptc.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_quadrupole_wedge.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_radial_steering.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_radiation.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_radiation_equilibrium_emittances_thick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_radiation_integrals.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_random_gen.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_rbend_rbarc.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_rbend_straight_body.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_rf_track.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_seeds.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_slice_elements.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_slicing.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_spin.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_sps_thick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_survey.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_thick_kickers_rf_crab.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_tracker.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_twiss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_vs_madx.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/aperture_meas.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/bend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/crab_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/default_magnet_config.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/magnet.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/marker.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/octupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/rbend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/slnd.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/temprf.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thick_slice_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thick_slice_crab_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thick_slice_multipole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_crab_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_multipole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_magnet_configure.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_misalignments.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_xyshift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/slice_base.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/slice_elements_drift.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/slice_elements_edge.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/slice_elements_thick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/slice_elements_thin.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/environment.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/footprint.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/headers/checks.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/headers/constants.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/headers/track.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/internal_record.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/json.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/line.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/load.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/lumi.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/mad_loader.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/mad_parser/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/mad_parser/loader.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/mad_parser/parse.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/mad_writer.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/madng_interface.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/match.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/multiline.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/multiline_legacy/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/multiline_legacy/shared_knobs.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/particles/constants.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/particles/masses.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/particles/particles.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/particles/pdg.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/random/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/slicing.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/survey.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/svgutils/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/svgutils/parser.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/svgutils/path.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/svgutils/svgutils.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/synctime.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/targets.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/tracker_data.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack/twissplot.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.89.1 → xtrack-0.89.3}/xtrack.egg-info/top_level.txt +0 -0
|
@@ -6,6 +6,7 @@ import pytest
|
|
|
6
6
|
import xtrack as xt
|
|
7
7
|
import json
|
|
8
8
|
import textwrap
|
|
9
|
+
import gzip
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
@pytest.fixture
|
|
@@ -125,6 +126,28 @@ def test_load_http(input_fixture, format, suffix, with_format, tmpdir, request,
|
|
|
125
126
|
quad = loaded_entity['quad']
|
|
126
127
|
assert quad.length == 1.0 and quad.k1 == 0.5
|
|
127
128
|
|
|
129
|
+
@pytest.mark.parametrize(
|
|
130
|
+
'input_fixture,format,suffix', [
|
|
131
|
+
('json_line', 'json', 'json'),
|
|
132
|
+
('json_environment', 'json', 'json'),
|
|
133
|
+
]
|
|
134
|
+
)
|
|
135
|
+
@pytest.mark.parametrize('with_format', [True, False])
|
|
136
|
+
def test_load_http_gz(input_fixture, format, suffix, with_format, tmpdir, request, requests_mock):
|
|
137
|
+
input_data = request.getfixturevalue(input_fixture)
|
|
138
|
+
compressed_data=gzip.compress(input_data.encode("utf-8"))
|
|
139
|
+
|
|
140
|
+
url = f'http://example.com/test_input.{suffix}.gz'
|
|
141
|
+
requests_mock.get(url, content=compressed_data)
|
|
142
|
+
|
|
143
|
+
kwargs = {'file': url}
|
|
144
|
+
if with_format:
|
|
145
|
+
kwargs['format'] = format
|
|
146
|
+
loaded_entity = xt.load(**kwargs)
|
|
147
|
+
|
|
148
|
+
quad = loaded_entity['quad']
|
|
149
|
+
assert quad.length == 1.0 and quad.k1 == 0.5
|
|
150
|
+
|
|
128
151
|
|
|
129
152
|
def test_load_single_element():
|
|
130
153
|
string = json.dumps({
|
|
@@ -29,7 +29,7 @@ def test_tapering_and_twiss_with_radiation():
|
|
|
29
29
|
|
|
30
30
|
# Initial twiss (no radiation)
|
|
31
31
|
line.configure_radiation(model=None)
|
|
32
|
-
tw_no_rad = line.twiss(method='4d'
|
|
32
|
+
tw_no_rad = line.twiss(method='4d')
|
|
33
33
|
|
|
34
34
|
assert tw_no_rad.radiation_method == None
|
|
35
35
|
|
|
@@ -145,7 +145,7 @@ def test_tapering_zero_mean():
|
|
|
145
145
|
line.particle_ref.p0c = 4e9 # eV
|
|
146
146
|
|
|
147
147
|
line.configure_radiation(model=None)
|
|
148
|
-
tw_no_rad = line.twiss(method='4d'
|
|
148
|
+
tw_no_rad = line.twiss(method='4d')
|
|
149
149
|
|
|
150
150
|
###############################################
|
|
151
151
|
# Enable radiation and compensate energy loss #
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.89.3'
|
|
@@ -15,6 +15,7 @@ from xobjects.hybrid_class import _build_xofields_dict
|
|
|
15
15
|
from .general import _pkg_root
|
|
16
16
|
from .internal_record import RecordIdentifier, RecordIndex, generate_get_record
|
|
17
17
|
from .particles import Particles
|
|
18
|
+
from .track_flags import c_header_flag_mapping
|
|
18
19
|
|
|
19
20
|
start_per_part_block = """
|
|
20
21
|
{
|
|
@@ -280,6 +281,7 @@ def _generate_per_particle_kernel_from_local_particle_function(
|
|
|
280
281
|
for (int64_t batch_id = 0; batch_id < num_threads; batch_id++) { //only_for_context cpu_openmp
|
|
281
282
|
LocalParticle lpart;
|
|
282
283
|
lpart.io_buffer = io_buffer;
|
|
284
|
+
lpart.track_flags = 0;
|
|
283
285
|
int64_t part_id = batch_id * chunk_size; //only_for_context cpu_openmp
|
|
284
286
|
int64_t end_id = (batch_id + 1) * chunk_size; //only_for_context cpu_openmp
|
|
285
287
|
if (end_id > num_particles_to_track) end_id = num_particles_to_track; //only_for_context cpu_openmp
|
|
@@ -452,6 +454,7 @@ class MetaBeamElement(xo.MetaHybridClass):
|
|
|
452
454
|
_pkg_root.joinpath('headers','particle_states.h'),
|
|
453
455
|
_pkg_root.joinpath('beam_elements', 'elements_src', 'track_srotation.h'),
|
|
454
456
|
_pkg_root.joinpath('beam_elements', 'elements_src', 'track_drift.h'),
|
|
457
|
+
c_header_flag_mapping
|
|
455
458
|
]
|
|
456
459
|
kernels = {}
|
|
457
460
|
|
|
@@ -140,13 +140,13 @@ class _HasModelRF:
|
|
|
140
140
|
"""
|
|
141
141
|
|
|
142
142
|
@property
|
|
143
|
-
def
|
|
144
|
-
return _INDEX_TO_MODEL_RF[self.
|
|
143
|
+
def model(self):
|
|
144
|
+
return _INDEX_TO_MODEL_RF[self._model]
|
|
145
145
|
|
|
146
|
-
@
|
|
147
|
-
def
|
|
146
|
+
@model.setter
|
|
147
|
+
def model(self, value):
|
|
148
148
|
try:
|
|
149
|
-
self.
|
|
149
|
+
self._model = _MODEL_TO_INDEX_RF[value]
|
|
150
150
|
except KeyError:
|
|
151
151
|
raise ValueError(f'Invalid RF model: {value}')
|
|
152
152
|
|
|
@@ -18,34 +18,33 @@ void DipoleEdge_track_local_particle(DipoleEdgeData el, LocalParticle* part0){
|
|
|
18
18
|
|
|
19
19
|
int64_t const model = DipoleEdgeData_get_model(el);
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
#endif
|
|
21
|
+
double delta_taper = 0.0;
|
|
22
|
+
#ifndef XTRACK_MULTIPOLE_NO_SYNRAD
|
|
23
|
+
if (!LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
|
|
24
|
+
delta_taper = DipoleEdgeData_get_delta_taper(el);
|
|
25
|
+
}
|
|
27
26
|
#endif
|
|
28
27
|
|
|
29
28
|
if (model == 0){
|
|
30
29
|
double r21 = DipoleEdgeData_get_r21(el);
|
|
31
30
|
double r43 = DipoleEdgeData_get_r43(el);
|
|
32
31
|
|
|
33
|
-
|
|
32
|
+
if (!LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
|
|
34
33
|
r21 = r21 * (1 + delta_taper);
|
|
35
34
|
r43 = r43 * (1 + delta_taper);
|
|
36
|
-
|
|
35
|
+
}
|
|
37
36
|
|
|
38
|
-
|
|
37
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)){
|
|
39
38
|
r21 = -r21;
|
|
40
39
|
r43 = -r43;
|
|
41
|
-
|
|
40
|
+
}
|
|
42
41
|
|
|
43
42
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
44
|
-
|
|
43
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
|
|
45
44
|
double const delta_taper = LocalParticle_get_delta(part);
|
|
46
45
|
r21 = r21 * (1 + delta_taper);
|
|
47
46
|
r43 = r43 * (1 + delta_taper);
|
|
48
|
-
|
|
47
|
+
}
|
|
49
48
|
|
|
50
49
|
DipoleEdgeLinear_single_particle(part, r21, r43);
|
|
51
50
|
END_PER_PARTICLE_BLOCK;
|
|
@@ -53,12 +52,12 @@ void DipoleEdge_track_local_particle(DipoleEdgeData el, LocalParticle* part0){
|
|
|
53
52
|
}
|
|
54
53
|
else if (model == 1){
|
|
55
54
|
|
|
56
|
-
|
|
55
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)){
|
|
57
56
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
58
57
|
LocalParticle_kill_particle(part, -32);
|
|
59
58
|
END_PER_PARTICLE_BLOCK;
|
|
60
59
|
return;
|
|
61
|
-
|
|
60
|
+
}
|
|
62
61
|
|
|
63
62
|
double const e1 = DipoleEdgeData_get_e1(el);
|
|
64
63
|
double const fint = DipoleEdgeData_get_fint(el);
|
|
@@ -70,7 +69,6 @@ void DipoleEdge_track_local_particle(DipoleEdgeData el, LocalParticle* part0){
|
|
|
70
69
|
DipoleEdgeNonLinear_single_particle(part, k, e1, fint, hgap, side);
|
|
71
70
|
END_PER_PARTICLE_BLOCK;
|
|
72
71
|
|
|
73
|
-
#endif
|
|
74
72
|
}
|
|
75
73
|
|
|
76
74
|
}
|
|
@@ -14,9 +14,9 @@ GPUFUN
|
|
|
14
14
|
void Drift_track_local_particle(DriftData el, LocalParticle* part0){
|
|
15
15
|
|
|
16
16
|
double length = DriftData_get_length(el);
|
|
17
|
-
|
|
17
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
18
18
|
length = -length;
|
|
19
|
-
|
|
19
|
+
}
|
|
20
20
|
|
|
21
21
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
22
22
|
Drift_single_particle(part, length);
|
|
@@ -14,9 +14,9 @@ GPUFUN
|
|
|
14
14
|
void DriftExact_track_local_particle(DriftExactData el, LocalParticle* part0){
|
|
15
15
|
|
|
16
16
|
double length = DriftExactData_get_length(el);
|
|
17
|
-
|
|
17
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
18
18
|
length = -length;
|
|
19
|
-
|
|
19
|
+
}
|
|
20
20
|
|
|
21
21
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
22
22
|
Drift_single_particle_exact(part, length);
|
|
@@ -18,11 +18,12 @@ void DriftExactSlice_track_local_particle(
|
|
|
18
18
|
|
|
19
19
|
double weight = DriftExactSliceData_get_weight(el);
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
double length;
|
|
22
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
23
|
+
length = -weight * DriftExactSliceData_get__parent_length(el); // m
|
|
24
|
+
} else {
|
|
25
|
+
length = weight * DriftExactSliceData_get__parent_length(el); // m
|
|
26
|
+
}
|
|
26
27
|
|
|
27
28
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
28
29
|
Drift_single_particle_exact(part, length);
|
|
@@ -17,12 +17,12 @@ void DriftSlice_track_local_particle(
|
|
|
17
17
|
) {
|
|
18
18
|
|
|
19
19
|
double weight = DriftSliceData_get_weight(el);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
double length;
|
|
21
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
22
|
+
length = -weight * DriftSliceData_get__parent_length(el); // m
|
|
23
|
+
} else {
|
|
24
|
+
length = weight * DriftSliceData_get__parent_length(el); // m
|
|
25
|
+
}
|
|
26
26
|
|
|
27
27
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
28
28
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceBendData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceBendData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceBendData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceCavityData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceCavityData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceCavityData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceCrabCavityData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceCrabCavityData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceCrabCavityData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceMultipoleData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceMultipoleData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceMultipoleData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceOctupoleData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceOctupoleData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceOctupoleData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceQuadrupoleData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceQuadrupoleData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceQuadrupoleData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceRBendData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceRBendData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceRBendData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceSextupoleData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceSextupoleData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceSextupoleData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
{xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h
RENAMED
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
) {
|
|
22
22
|
|
|
23
23
|
double weight = DriftSliceUniformSolenoidData_get_weight(el);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
double length;
|
|
25
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
26
|
+
length = -weight * DriftSliceUniformSolenoidData_get__parent_length(el); // m
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
length = weight * DriftSliceUniformSolenoidData_get__parent_length(el); // m
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
33
|
Drift_single_particle(part, length);
|
|
@@ -13,9 +13,9 @@ void Elens_track_local_particle(ElensData el, LocalParticle* part0){
|
|
|
13
13
|
|
|
14
14
|
double elens_length = ElensData_get_elens_length(el);
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
17
17
|
elens_length = -elens_length;
|
|
18
|
-
|
|
18
|
+
}
|
|
19
19
|
|
|
20
20
|
double const inner_radius = ElensData_get_inner_radius(el);
|
|
21
21
|
double const outer_radius = ElensData_get_outer_radius(el);
|
|
@@ -25,11 +25,12 @@ void Exciter_track_local_particle(ExciterData el, LocalParticle* part0){
|
|
|
25
25
|
double const frev = ExciterData_get_frev(el);
|
|
26
26
|
int64_t const start_turn = ExciterData_get_start_turn(el);
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
double excit_sign;
|
|
29
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
30
|
+
excit_sign = -1;
|
|
31
|
+
} else {
|
|
32
|
+
excit_sign = 1;
|
|
33
|
+
}
|
|
33
34
|
|
|
34
35
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
35
36
|
// zeta is the absolute path length deviation from the reference particle: zeta = (s - beta0*c*t)
|
|
@@ -60,8 +61,8 @@ void Exciter_track_local_particle(ExciterData el, LocalParticle* part0){
|
|
|
60
61
|
factorial *= kk;
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
dpx +=
|
|
64
|
-
dpy +=
|
|
64
|
+
dpx += excit_sign * (knl[kk] * zre - ksl[kk] * zim) / factorial;
|
|
65
|
+
dpy += excit_sign * (knl[kk] * zim + ksl[kk] * zre) / factorial;
|
|
65
66
|
|
|
66
67
|
double const zret = zre * x - zim * y;
|
|
67
68
|
zim = zim * x + zre * y;
|
|
@@ -24,10 +24,10 @@ void Solenoid_track_local_particle(SolenoidData el, LocalParticle* part0) {
|
|
|
24
24
|
int64_t radiation_flag = SolenoidData_get_radiation_flag(el);
|
|
25
25
|
double factor_knl_ksl = 1;
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
28
28
|
length = -length;
|
|
29
29
|
factor_knl_ksl = -1;
|
|
30
|
-
|
|
30
|
+
}
|
|
31
31
|
|
|
32
32
|
#ifndef XTRACK_SOLENOID_NO_SYNRAD
|
|
33
33
|
double dp_record_entry = 0.;
|
|
@@ -27,11 +27,12 @@ void MagnetEdge_track_local_particle(MagnetEdgeData el, LocalParticle* part0)
|
|
|
27
27
|
const double face_angle_feed_down = MagnetEdgeData_get_face_angle_feed_down(el);
|
|
28
28
|
const double fringe_integral = MagnetEdgeData_get_fringe_integral(el);
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
double factor_for_backtrack;
|
|
31
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
32
|
+
factor_for_backtrack = -1;
|
|
33
|
+
} else {
|
|
34
|
+
factor_for_backtrack = 1;
|
|
35
|
+
}
|
|
35
36
|
|
|
36
37
|
track_magnet_edge_particles(
|
|
37
38
|
part0,
|
|
@@ -24,10 +24,6 @@ void Misalignment_track_local_particle(MisalignmentData el, LocalParticle* part0
|
|
|
24
24
|
const double tilt = MisalignmentData_get_tilt(el);
|
|
25
25
|
const double is_exit = MisalignmentData_get_is_exit(el);
|
|
26
26
|
|
|
27
|
-
#ifdef XSUITE_BACKTRACK
|
|
28
|
-
voltage = -voltage;
|
|
29
|
-
#endif
|
|
30
|
-
|
|
31
27
|
if (!is_exit) {
|
|
32
28
|
if (NONZERO(angle)) {
|
|
33
29
|
track_misalignment_entry_curved(part0, dx, dy, ds, theta, phi, psi, anchor, length, angle, tilt);
|
|
@@ -15,9 +15,9 @@ void ReferenceEnergyIncrease_track_local_particle(ReferenceEnergyIncreaseData el
|
|
|
15
15
|
|
|
16
16
|
double Delta_p0c = ReferenceEnergyIncreaseData_get_Delta_p0c(el);
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
19
19
|
Delta_p0c = -Delta_p0c;
|
|
20
|
-
|
|
20
|
+
}
|
|
21
21
|
|
|
22
22
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
23
23
|
LocalParticle_update_p0c(part, LocalParticle_get_p0c(part) + Delta_p0c);
|
|
@@ -17,11 +17,11 @@ void SimpleThinBend_track_local_particle(SimpleThinBendData el, LocalParticle* p
|
|
|
17
17
|
double hxl = SimpleThinBendData_get_hxl(el);
|
|
18
18
|
double length = SimpleThinBendData_get_length(el); // m
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
21
21
|
knl0 = -knl0;
|
|
22
22
|
hxl = -hxl;
|
|
23
23
|
length = -length;
|
|
24
|
-
|
|
24
|
+
}
|
|
25
25
|
|
|
26
26
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
27
27
|
double const chi = LocalParticle_get_chi(part);
|
|
@@ -14,9 +14,9 @@ void SimpleThinQuadrupole_track_local_particle(SimpleThinQuadrupoleData el, Loca
|
|
|
14
14
|
|
|
15
15
|
double knl1 = SimpleThinQuadrupoleData_get_knl(el, 1);
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
18
18
|
knl1 = -knl1;
|
|
19
|
-
|
|
19
|
+
}
|
|
20
20
|
|
|
21
21
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
22
22
|
double const x = LocalParticle_get_x(part);
|
|
@@ -16,9 +16,9 @@ void SRotation_track_local_particle(SRotationData el, LocalParticle* part0){
|
|
|
16
16
|
double sin_z = SRotationData_get_sin_z(el);
|
|
17
17
|
double cos_z = SRotationData_get_cos_z(el);
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_BACKTRACK)) {
|
|
20
20
|
sin_z = -sin_z;
|
|
21
|
-
|
|
21
|
+
}
|
|
22
22
|
|
|
23
23
|
START_PER_PARTICLE_BLOCK(part0, part);
|
|
24
24
|
SRotation_single_particle(part, sin_z, cos_z);
|
{xtrack-0.89.1 → xtrack-0.89.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h
RENAMED
|
@@ -115,9 +115,9 @@ void legacy_solenoid_apply_radiation_single_particle(
|
|
|
115
115
|
|
|
116
116
|
if ((spin_flag != 0) && (spin_x_0 != 0. || spin_y_0 != 0. || spin_z_0 != 0.)){
|
|
117
117
|
|
|
118
|
-
|
|
118
|
+
if (LocalParticle_check_track_flag(part, XS_FLAG_BACKTRACK)) {
|
|
119
119
|
LocalParticle_set_state(part, -33);
|
|
120
|
-
|
|
120
|
+
} else {
|
|
121
121
|
double const Bz_T = ks * brho0;
|
|
122
122
|
|
|
123
123
|
double const kin_px_mean = (old_px + new_ax);
|
|
@@ -209,7 +209,7 @@ void legacy_solenoid_apply_radiation_single_particle(
|
|
|
209
209
|
LocalParticle_set_spin_y(part, spin_y_3);
|
|
210
210
|
LocalParticle_set_spin_z(part, spin_z_3);
|
|
211
211
|
}
|
|
212
|
-
|
|
212
|
+
}
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
// Synchrotron radiation
|