xtrack 0.89.1__tar.gz → 0.89.2__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.2}/PKG-INFO +1 -1
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_tapering.py +2 -2
- xtrack-0.89.2/xtrack/_version.py +1 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/base_element.py +3 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/dipoleedge.h +9 -10
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet.template.h +2 -2
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/synrad_spectrum.h +16 -16
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/tapering.py +2 -3
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/track_flags.py +6 -4
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/twiss.py +18 -19
- {xtrack-0.89.1 → xtrack-0.89.2/xtrack.egg-info}/PKG-INFO +1 -1
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack.egg-info/SOURCES.txt +0 -1
- 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-0.89.2}/LICENSE +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/MANIFEST.in +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/README.md +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/base_classes.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/elements.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/line.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/particles.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/pyproject.toml +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/setup.cfg +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/setup.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_acceleration.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_aperture_table.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_apertures.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_bucket_with_ref_energy_change.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_coasting.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_collimation.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_coupling_edwards_teng.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_electron_cooler.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_elements.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_elements_thick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_environment.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_footprint.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_full_rings.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_hvkick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_ions.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_legacy_multiline_to_env.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_lhc_env.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_line.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_load.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_load_vars.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_lumi.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_mad_writer.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_madloader.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_madnginterface.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_magnet.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_nested.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_misalign.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_multiline.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_multisetter.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_multispecies.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_native_madloader.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_optimize_for_tracking.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_particles.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_particles_basics.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_particles_pdg.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_pipeline.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_quadrupole_fringe_ptc.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_quadrupole_wedge.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radial_steering.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radiation.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radiation_equilibrium_emittances_thick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_radiation_integrals.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_random_gen.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_rbend_rbarc.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_rbend_straight_body.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_rf_track.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_seeds.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_slice_elements.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_slicing.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_spin.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_sps_thick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_survey.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_thick_kickers_rf_crab.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_tracker.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_twiss.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_vs_madx.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/aperture_meas.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/bend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/crab_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/default_magnet_config.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_exact.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_exact_slice.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_crab_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_multipole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/magnet.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/marker.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/misalignment.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/octupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/rbend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/slnd.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/temprf.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_crab_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_multipole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_crab_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_multipole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_cavity.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_configure.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_misalignments.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_rf.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_rf.template.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_xyshift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/variable_solenoid.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_base.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_elements_drift.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_elements_edge.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_elements_thick.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/beam_elements/slice_elements_thin.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/environment.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/footprint.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/general.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/checks.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/constants.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/headers/track.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/internal_record.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/json.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/line.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/load.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/lumi.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_loader.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_parser/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_parser/loader.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_parser/parse.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/mad_writer.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/madng_interface.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/match.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multiline.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multiline_legacy/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multiline_legacy/shared_knobs.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/constants.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/masses.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/particles.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/pdg.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/slicing.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/survey.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/svgutils/__init__.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/svgutils/parser.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/svgutils/path.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/svgutils/svgutils.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/synctime.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/targets.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/tracker.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/tracker_data.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack/twissplot.py +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.89.1 → xtrack-0.89.2}/xtrack.egg-info/top_level.txt +0 -0
|
@@ -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.2'
|
|
@@ -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
|
|
|
@@ -18,22 +18,21 @@ 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
|
#ifdef XSUITE_BACKTRACK
|
|
39
38
|
r21 = -r21;
|
|
@@ -41,11 +40,11 @@ void DipoleEdge_track_local_particle(DipoleEdgeData el, LocalParticle* part0){
|
|
|
41
40
|
#endif
|
|
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;
|
|
@@ -400,12 +400,12 @@ void track_magnet_particles(
|
|
|
400
400
|
#endif
|
|
401
401
|
|
|
402
402
|
// Tapering
|
|
403
|
-
|
|
403
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
|
|
404
404
|
part0->ipart = 0;
|
|
405
405
|
delta_taper = LocalParticle_get_delta(part0); // I can use part0 because
|
|
406
406
|
// there is only one particle
|
|
407
407
|
// when doing the tapering
|
|
408
|
-
|
|
408
|
+
}
|
|
409
409
|
|
|
410
410
|
#ifndef XTRACK_MULTIPOLE_NO_SYNRAD
|
|
411
411
|
if (radiation_flag){
|
|
@@ -319,12 +319,12 @@ void track_magnet_particles(
|
|
|
319
319
|
#endif
|
|
320
320
|
|
|
321
321
|
// Tapering
|
|
322
|
-
|
|
322
|
+
if (LocalParticle_check_track_flag(part0, XS_FLAG_SR_TAPER)){
|
|
323
323
|
part0->ipart = 0;
|
|
324
324
|
delta_taper = LocalParticle_get_delta(part0); // I can use part0 because
|
|
325
325
|
// there is only one particle
|
|
326
326
|
// when doing the tapering
|
|
327
|
-
|
|
327
|
+
}
|
|
328
328
|
|
|
329
329
|
#ifndef XTRACK_MULTIPOLE_NO_SYNRAD
|
|
330
330
|
if (radiation_flag){
|
|
@@ -46,33 +46,33 @@ void synrad_average_kick(LocalParticle* part, double B_T, double lpath,
|
|
|
46
46
|
}
|
|
47
47
|
#endif
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
if (LocalParticle_check_track_flag(part, XS_FLAG_SR_KICK_SAME_AS_FIRST)){
|
|
50
|
+
if (part -> ipart == 0){
|
|
51
|
+
*dp_record = LocalParticle_get_delta(part);
|
|
52
|
+
*dpx_record = LocalParticle_get_px(part);
|
|
53
|
+
*dpy_record = LocalParticle_get_py(part);
|
|
54
|
+
}
|
|
55
|
+
else{
|
|
56
|
+
f_t = 1.0;
|
|
57
|
+
}
|
|
57
58
|
}
|
|
58
|
-
#endif
|
|
59
59
|
|
|
60
60
|
LocalParticle_update_delta(part, (delta+1) * f_t - 1);
|
|
61
61
|
LocalParticle_scale_px(part, f_t);
|
|
62
62
|
LocalParticle_scale_py(part, f_t);
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
if (LocalParticle_check_track_flag(part, XS_FLAG_SR_KICK_SAME_AS_FIRST)){
|
|
65
|
+
if (part -> ipart == 0){
|
|
66
|
+
*dp_record = LocalParticle_get_delta(part) - *dp_record;
|
|
67
|
+
*dpx_record = LocalParticle_get_px(part) - *dpx_record;
|
|
68
|
+
*dpy_record = LocalParticle_get_py(part) - *dpy_record;
|
|
69
|
+
}
|
|
70
70
|
else{
|
|
71
71
|
LocalParticle_update_delta(part, LocalParticle_get_delta(part) + *dp_record);
|
|
72
72
|
LocalParticle_add_to_px(part, *dpx_record);
|
|
73
73
|
LocalParticle_add_to_py(part, *dpy_record);
|
|
74
74
|
}
|
|
75
|
-
|
|
75
|
+
}
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
GPUFUN
|
|
@@ -72,9 +72,8 @@ def compensate_radiation_energy_loss(line, delta0='zero_mean', rtol_eneloss=1e-1
|
|
|
72
72
|
f_setter.set_values(np.zeros_like(f_setter.get_values()))
|
|
73
73
|
|
|
74
74
|
if verbose: _print("Share energy loss among cavities (repeat until energy loss is zero)")
|
|
75
|
-
with xt.line.
|
|
76
|
-
line.
|
|
77
|
-
line.config.XTRACK_DIPOLEEDGE_TAPER = True
|
|
75
|
+
with xt.line._preserve_track_flags(line):
|
|
76
|
+
line.tracker.track_flags.XS_FLAG_SR_TAPER = True
|
|
78
77
|
|
|
79
78
|
if delta0 == 'zero_mean':
|
|
80
79
|
num_rounds = 2
|
|
@@ -2,18 +2,20 @@ import numpy as np
|
|
|
2
2
|
|
|
3
3
|
flag_mapping = {
|
|
4
4
|
'XS_FLAG_BACKTRACK': 0,
|
|
5
|
-
'XS_FLAG_TAPER': 1,
|
|
6
5
|
'XS_FLAG_KILL_CAVITY_KICK': 2,
|
|
7
6
|
'XS_FLAG_IGNORE_GLOBAL_APERTURE': 3,
|
|
8
|
-
'XS_FLAG_IGNORE_LOCAL_APERTURE': 4
|
|
7
|
+
'XS_FLAG_IGNORE_LOCAL_APERTURE': 4,
|
|
8
|
+
'XS_FLAG_SR_TAPER': 5,
|
|
9
|
+
'XS_FLAG_SR_KICK_SAME_AS_FIRST': 6
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
flag_defaults = {
|
|
12
13
|
'XS_FLAG_BACKTRACK': False,
|
|
13
|
-
'XS_FLAG_TAPER': False,
|
|
14
14
|
'XS_FLAG_KILL_CAVITY_KICK': False,
|
|
15
15
|
'XS_FLAG_IGNORE_GLOBAL_APERTURE': False,
|
|
16
|
-
'XS_FLAG_IGNORE_LOCAL_APERTURE': False
|
|
16
|
+
'XS_FLAG_IGNORE_LOCAL_APERTURE': False,
|
|
17
|
+
'XS_FLAG_SR_TAPER': False,
|
|
18
|
+
'XS_FLAG_SR_KICK_SAME_AS_FIRST': False
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
c_header_flag_mapping = """
|
|
@@ -527,10 +527,9 @@ def twiss_line(line, particle_ref=None, method=None,
|
|
|
527
527
|
assert radiation_method in ['full', 'kick_as_co', 'scale_as_co']
|
|
528
528
|
assert freeze_longitudinal is False
|
|
529
529
|
if (radiation_method == 'kick_as_co' and (
|
|
530
|
-
not
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
line.config.XTRACK_SYNRAD_KICK_SAME_AS_FIRST = True
|
|
530
|
+
not line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST)):
|
|
531
|
+
with xt.line._preserve_track_flags(line):
|
|
532
|
+
line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST = True
|
|
534
533
|
return _add_action_in_res(twiss_line(**kwargs), input_kwargs)
|
|
535
534
|
elif (radiation_method == 'scale_as_co' and (
|
|
536
535
|
not hasattr(line.config, 'XTRACK_SYNRAD_SCALE_SAME_AS_FIRST') or
|
|
@@ -540,8 +539,7 @@ def twiss_line(line, particle_ref=None, method=None,
|
|
|
540
539
|
return _add_action_in_res(twiss_line(**kwargs), input_kwargs)
|
|
541
540
|
|
|
542
541
|
if radiation_method == 'kick_as_co':
|
|
543
|
-
assert
|
|
544
|
-
assert line.config.XTRACK_SYNRAD_KICK_SAME_AS_FIRST
|
|
542
|
+
assert line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST
|
|
545
543
|
|
|
546
544
|
if line.enable_time_dependent_vars:
|
|
547
545
|
raise RuntimeError('Time dependent variables not supported in Twiss')
|
|
@@ -731,7 +729,7 @@ def twiss_line(line, particle_ref=None, method=None,
|
|
|
731
729
|
with xt.line._preserve_track_flags(line):
|
|
732
730
|
line.tracker.track_flags.XS_FLAG_KILL_CAVITY_KICK = True
|
|
733
731
|
line.config.XTRACK_MULTIPOLE_NO_SYNRAD = True
|
|
734
|
-
line.
|
|
732
|
+
line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST = False
|
|
735
733
|
cols_chrom, scalars_chrom = _compute_chromatic_functions(
|
|
736
734
|
line=line,
|
|
737
735
|
init=init,
|
|
@@ -778,7 +776,8 @@ def twiss_line(line, particle_ref=None, method=None,
|
|
|
778
776
|
raise ValueError('method="4d" not supported for eneloss_and_damping=True')
|
|
779
777
|
if radiation_method != 'full' or twiss_res._data['R_matrix_ebe'] is None:
|
|
780
778
|
with xt.line._preserve_config(line):
|
|
781
|
-
|
|
779
|
+
with xt.line._preserve_track_flags(line):
|
|
780
|
+
line.tracker.track_flags.XS_FLAG_SR_KICK_SAME_AS_FIRST = False
|
|
782
781
|
line.config.XTRACK_SYNRAD_SCALE_SAME_AS_FIRST = False
|
|
783
782
|
_, RR, _, _, _, RR_ebe = _find_periodic_solution(
|
|
784
783
|
line=line, particle_on_co=particle_on_co,
|
|
@@ -1380,7 +1379,7 @@ def _compute_coupling_elements_edwards_teng(
|
|
|
1380
1379
|
CC = RR[2:4, :2]
|
|
1381
1380
|
DD = RR[2:4, 2:4]
|
|
1382
1381
|
|
|
1383
|
-
if np.linalg.norm(BB) < 1e-
|
|
1382
|
+
if np.linalg.norm(BB) < 1e-10 and np.linalg.norm(CC) < 1e-10:
|
|
1384
1383
|
R_edw_teng = np.zeros((2, 2))
|
|
1385
1384
|
else:
|
|
1386
1385
|
tr = np.linalg.trace
|
|
@@ -1602,7 +1601,7 @@ def _compute_chromatic_functions(line, init, delta_chrom, steps_r_matrix,
|
|
|
1602
1601
|
include_collective=include_collective)
|
|
1603
1602
|
part_chrom = line.find_closed_orbit(delta0=dd, co_guess=part_guess,
|
|
1604
1603
|
start=start, end=end, num_turns=num_turns,
|
|
1605
|
-
symmetrize=
|
|
1604
|
+
symmetrize=False,
|
|
1606
1605
|
include_collective=include_collective,
|
|
1607
1606
|
)
|
|
1608
1607
|
tw_init_chrom.particle_on_co = part_chrom
|
|
@@ -1610,7 +1609,7 @@ def _compute_chromatic_functions(line, init, delta_chrom, steps_r_matrix,
|
|
|
1610
1609
|
particle_on_co=tw_init_chrom.particle_on_co.copy(),
|
|
1611
1610
|
start=start, end=end, num_turns=num_turns,
|
|
1612
1611
|
steps_r_matrix=steps_r_matrix,
|
|
1613
|
-
symmetrize=
|
|
1612
|
+
symmetrize=False,
|
|
1614
1613
|
include_collective=include_collective,
|
|
1615
1614
|
)['R_matrix']
|
|
1616
1615
|
(WW_chrom, _, _, _) = lnf.compute_linear_normal_form(RR_chrom,
|
|
@@ -2113,6 +2112,9 @@ def _find_periodic_solution(line, particle_on_co, particle_ref, method,
|
|
|
2113
2112
|
|
|
2114
2113
|
assert periodic_mode in ['periodic', 'periodic_symmetric']
|
|
2115
2114
|
|
|
2115
|
+
if periodic_mode == 'periodic_symmetric':
|
|
2116
|
+
raise ValueError('`periodic_symmetric` not supported anymore')
|
|
2117
|
+
|
|
2116
2118
|
if start is not None or end is not None:
|
|
2117
2119
|
assert start is not None and end is not None, (
|
|
2118
2120
|
'start and end must be both None or both not None')
|
|
@@ -2124,6 +2126,7 @@ def _find_periodic_solution(line, particle_on_co, particle_ref, method,
|
|
|
2124
2126
|
delta0 = 0
|
|
2125
2127
|
|
|
2126
2128
|
if periodic_mode == 'periodic_symmetric':
|
|
2129
|
+
raise ValueError('`periodic_symmetric` not supported anymore')
|
|
2127
2130
|
assert R_matrix is None, 'R_matrix must be None for `periodic_symmetric`'
|
|
2128
2131
|
assert W_matrix is None, 'W_matrix must be None for `periodic_symmetric`'
|
|
2129
2132
|
|
|
@@ -2146,7 +2149,7 @@ def _find_periodic_solution(line, particle_on_co, particle_ref, method,
|
|
|
2146
2149
|
search_for_t_rev=search_for_t_rev,
|
|
2147
2150
|
spin=spin,
|
|
2148
2151
|
num_turns_search_t_rev=num_turns_search_t_rev,
|
|
2149
|
-
symmetrize=
|
|
2152
|
+
symmetrize=False,
|
|
2150
2153
|
include_collective=include_collective
|
|
2151
2154
|
)
|
|
2152
2155
|
if only_orbit:
|
|
@@ -2177,7 +2180,7 @@ def _find_periodic_solution(line, particle_on_co, particle_ref, method,
|
|
|
2177
2180
|
num_turns=num_turns,
|
|
2178
2181
|
element_by_element=compute_R_element_by_element,
|
|
2179
2182
|
only_markers=only_markers,
|
|
2180
|
-
symmetrize=
|
|
2183
|
+
symmetrize=False,
|
|
2181
2184
|
include_collective=include_collective
|
|
2182
2185
|
)
|
|
2183
2186
|
RR = RR_out['R_matrix']
|
|
@@ -2703,9 +2706,7 @@ def compute_one_turn_matrix_finite_differences(
|
|
|
2703
2706
|
assert end is not None
|
|
2704
2707
|
line.track(part_temp, ele_start=start, ele_stop=end)
|
|
2705
2708
|
if symmetrize:
|
|
2706
|
-
|
|
2707
|
-
line.config.XSUITE_MIRROR = True
|
|
2708
|
-
line.track(part_temp, ele_start=start, ele_stop=end)
|
|
2709
|
+
raise NotImplementedError
|
|
2709
2710
|
elif particle_on_co._xobject.at_element[0]>0:
|
|
2710
2711
|
assert element_by_element is False, 'Not yet implemented'
|
|
2711
2712
|
assert num_turns == 1, 'Not yet implemented'
|
|
@@ -2721,9 +2722,7 @@ def compute_one_turn_matrix_finite_differences(
|
|
|
2721
2722
|
line.track(part_temp, num_turns=num_turns,
|
|
2722
2723
|
turn_by_turn_monitor=monitor_setting)
|
|
2723
2724
|
if symmetrize:
|
|
2724
|
-
|
|
2725
|
-
line.config.XSUITE_MIRROR = True
|
|
2726
|
-
line.track(part_temp, num_turns=num_turns)
|
|
2725
|
+
raise NotImplementedError
|
|
2727
2726
|
|
|
2728
2727
|
temp_mat = np.zeros(shape=(6, 13), dtype=np.float64)
|
|
2729
2728
|
temp_mat[0, :] = context.nparray_from_context_array(part_temp.x)
|
|
@@ -77,7 +77,6 @@ tests/test_optimize_for_tracking.py
|
|
|
77
77
|
tests/test_particles.py
|
|
78
78
|
tests/test_particles_basics.py
|
|
79
79
|
tests/test_particles_pdg.py
|
|
80
|
-
tests/test_periodic_symmetric_twiss_and_match.py
|
|
81
80
|
tests/test_pipeline.py
|
|
82
81
|
tests/test_prebuild_kernels.py
|
|
83
82
|
tests/test_ps_against_ptc.py
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import xtrack as xt
|
|
2
|
-
import xobjects as xo
|
|
3
|
-
import numpy as np
|
|
4
|
-
|
|
5
|
-
def test_periodic_symmetric_twiss_and_match():
|
|
6
|
-
|
|
7
|
-
# Build line with half a cell
|
|
8
|
-
half_cell = xt.Line(
|
|
9
|
-
elements={
|
|
10
|
-
'start_cell': xt.Marker(),
|
|
11
|
-
'drift0': xt.Drift(length=1.),
|
|
12
|
-
'qf1': xt.Quadrupole(k1=0.027/2, length=1.),
|
|
13
|
-
'drift1_1': xt.Drift(length=1),
|
|
14
|
-
'bend1': xt.Bend(k0=3e-4, h=3e-4, length=45.),
|
|
15
|
-
'drift1_2': xt.Drift(length=1.),
|
|
16
|
-
'qd1': xt.Quadrupole(k1=-0.0271/2, length=1.),
|
|
17
|
-
'drift2': xt.Drift(length=1),
|
|
18
|
-
'mid_cell': xt.Marker(),
|
|
19
|
-
}
|
|
20
|
-
)
|
|
21
|
-
half_cell.particle_ref = xt.Particles(p0c=2e9)
|
|
22
|
-
|
|
23
|
-
tw_half_cell = half_cell.twiss4d(init='periodic_symmetric', # <--- periodic-symmetric boundary
|
|
24
|
-
strengths=True # to get the strengths in table
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
cell = xt.Line(
|
|
28
|
-
elements={
|
|
29
|
-
'start_cell': xt.Marker(),
|
|
30
|
-
'drift0': xt.Drift(length=1.),
|
|
31
|
-
'qf1': xt.Quadrupole(k1=0.027/2, length=1.),
|
|
32
|
-
'drift1': xt.Drift(length=1),
|
|
33
|
-
'bend1': xt.Bend(k0=3e-4, h=3e-4, length=45.),
|
|
34
|
-
'drift2': xt.Drift(length=1.),
|
|
35
|
-
'qd1': xt.Quadrupole(k1=-0.0271/2, length=1.),
|
|
36
|
-
'drift3': xt.Drift(length=1),
|
|
37
|
-
'mid_cell': xt.Marker(),
|
|
38
|
-
'drift4': xt.Replica('drift3'),
|
|
39
|
-
'qd2': xt.Replica('qd1'),
|
|
40
|
-
'drift5': xt.Replica('drift2'),
|
|
41
|
-
'bend2': xt.Replica('bend1'),
|
|
42
|
-
'drift6': xt.Replica('drift1'),
|
|
43
|
-
'qf2': xt.Replica('qf1'),
|
|
44
|
-
'drift7': xt.Replica('drift0'),
|
|
45
|
-
'end_cell': xt.Marker(),
|
|
46
|
-
}
|
|
47
|
-
)
|
|
48
|
-
cell.particle_ref = xt.Particles(p0c=2e9)
|
|
49
|
-
tw_cell = cell.twiss4d(strengths=True)
|
|
50
|
-
|
|
51
|
-
xo.assert_allclose(tw_half_cell.betx[:-1], # remove '_end_point'
|
|
52
|
-
tw_cell.rows[:'mid_cell'].betx, atol=0, rtol=1e-8)
|
|
53
|
-
xo.assert_allclose(tw_half_cell.bety[:-1], # remove '_end_point'
|
|
54
|
-
tw_cell.rows[:'mid_cell'].bety, atol=0, rtol=1e-8)
|
|
55
|
-
xo.assert_allclose(tw_half_cell.alfx[:-1], # remove '_end_point'
|
|
56
|
-
tw_cell.rows[:'mid_cell'].alfx, atol=1e-8, rtol=0)
|
|
57
|
-
xo.assert_allclose(tw_half_cell.alfy[:-1], # remove '_end_point'
|
|
58
|
-
tw_cell.rows[:'mid_cell'].alfy, atol=1e-8, rtol=0)
|
|
59
|
-
xo.assert_allclose(tw_half_cell.dx[:-1], # remove '_end_point'
|
|
60
|
-
tw_cell.rows[:'mid_cell'].dx, atol=1e-8, rtol=0)
|
|
61
|
-
xo.assert_allclose(tw_half_cell.dpx[:-1], # remove '_end_point'
|
|
62
|
-
tw_cell.rows[:'mid_cell'].dpx, atol=1e-8, rtol=0)
|
|
63
|
-
|
|
64
|
-
xo.assert_allclose(tw_half_cell.ax_chrom[:-1], # remove '_end_point'
|
|
65
|
-
tw_cell.rows[:'mid_cell'].ax_chrom, atol=1e-5, rtol=0)
|
|
66
|
-
xo.assert_allclose(tw_half_cell.ay_chrom[:-1], # remove '_end_point'
|
|
67
|
-
tw_cell.rows[:'mid_cell'].ay_chrom, atol=1e-5, rtol=0)
|
|
68
|
-
xo.assert_allclose(tw_half_cell.bx_chrom[:-1], # remove '_end_point'
|
|
69
|
-
tw_cell.rows[:'mid_cell'].bx_chrom, atol=1e-5, rtol=0)
|
|
70
|
-
xo.assert_allclose(tw_half_cell.by_chrom[:-1], # remove '_end_point'
|
|
71
|
-
tw_cell.rows[:'mid_cell'].by_chrom, atol=1e-5, rtol=0)
|
|
72
|
-
|
|
73
|
-
xo.assert_allclose(tw_half_cell.qx, tw_cell.qx / 2, atol=1e-9, rtol=0)
|
|
74
|
-
xo.assert_allclose(tw_half_cell.qy, tw_cell.qy / 2, atol=1e-9, rtol=0)
|
|
75
|
-
xo.assert_allclose(tw_half_cell.dqx, tw_cell.dqx / 2, atol=1e-6, rtol=0)
|
|
76
|
-
xo.assert_allclose(tw_half_cell.dqy, tw_cell.dqy / 2, atol=1e-6, rtol=0)
|
|
77
|
-
|
|
78
|
-
for ll in [cell, half_cell]:
|
|
79
|
-
ll.vars['kqf'] = 0.027/2
|
|
80
|
-
ll.vars['kqd'] = -0.0271/2
|
|
81
|
-
ll.element_refs['qf1'].k1 = ll.vars['kqf']
|
|
82
|
-
ll.element_refs['qd1'].k1 = ll.vars['kqd']
|
|
83
|
-
|
|
84
|
-
tw_cell = cell.twiss4d(strengths=True)
|
|
85
|
-
tw_half_cell = half_cell.twiss4d(init='periodic_symmetric', strengths=True)
|
|
86
|
-
|
|
87
|
-
xo.assert_allclose(tw_cell.mux[-1], 0.231, atol=1e-3, rtol=0)
|
|
88
|
-
xo.assert_allclose(tw_cell.muy[-1], 0.233, atol=1e-3, rtol=0)
|
|
89
|
-
xo.assert_allclose(tw_half_cell.mux[-1], 0.231 / 2, atol=1e-3, rtol=0)
|
|
90
|
-
xo.assert_allclose(tw_half_cell.muy[-1], 0.233 / 2, atol=1e-3, rtol=0)
|
|
91
|
-
|
|
92
|
-
opt_halfcell = half_cell.match(
|
|
93
|
-
method='4d',
|
|
94
|
-
start='start_cell', end='mid_cell',
|
|
95
|
-
init='periodic_symmetric',
|
|
96
|
-
targets=xt.TargetSet(mux=0.2501/2, muy=0.2502/2, at='mid_cell'),
|
|
97
|
-
vary=xt.VaryList(['kqf', 'kqd'], step=1e-5),
|
|
98
|
-
)
|
|
99
|
-
|
|
100
|
-
tw_cell = cell.twiss4d(strengths=True)
|
|
101
|
-
tw_half_cell = half_cell.twiss4d(init='periodic_symmetric', strengths=True)
|
|
102
|
-
|
|
103
|
-
xo.assert_allclose(tw_half_cell.mux[-1], 0.2501 / 2, atol=1e-3, rtol=0)
|
|
104
|
-
xo.assert_allclose(tw_half_cell.muy[-1], 0.2502 / 2, atol=1e-3, rtol=0)
|
|
105
|
-
xo.assert_allclose(tw_cell.mux[-1], 0.231, atol=1e-3, rtol=0) # unaffected
|
|
106
|
-
xo.assert_allclose(tw_cell.muy[-1], 0.233, atol=1e-3, rtol=0) # unaffected
|
|
107
|
-
|
|
108
|
-
opt_cell = cell.match(
|
|
109
|
-
method='4d',
|
|
110
|
-
start='start_cell', end='end_cell',
|
|
111
|
-
init='periodic',
|
|
112
|
-
targets=xt.TargetSet(mux=0.2501, muy=0.2502, at='end_cell'),
|
|
113
|
-
vary=xt.VaryList(['kqf', 'kqd'], step=1e-5),
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
xo.assert_allclose(half_cell.vv['kqf'], cell.vv['kqf'], rtol=1e-9, atol=0)
|
|
117
|
-
xo.assert_allclose(half_cell.vv['kqd'], cell.vv['kqd'], rtol=1e-9, atol=0)
|
|
118
|
-
|
|
119
|
-
tw_cell = cell.twiss4d(strengths=True)
|
|
120
|
-
tw_half_cell = half_cell.twiss4d(init='periodic_symmetric', strengths=True)
|
|
121
|
-
|
|
122
|
-
xo.assert_allclose(tw_half_cell.mux[-1], 0.2501 / 2, atol=1e-3, rtol=0)
|
|
123
|
-
xo.assert_allclose(tw_half_cell.muy[-1], 0.2502 / 2, atol=1e-3, rtol=0)
|
|
124
|
-
xo.assert_allclose(tw_cell.mux[-1], 0.2501, atol=1e-3, rtol=0)
|
|
125
|
-
xo.assert_allclose(tw_cell.muy[-1], 0.2502, atol=1e-3, rtol=0)
|
|
126
|
-
|
|
127
|
-
xo.assert_allclose(tw_half_cell.betx[:-1], # remove '_end_point'
|
|
128
|
-
tw_cell.rows[:'mid_cell'].betx, atol=0, rtol=1e-8)
|
|
129
|
-
xo.assert_allclose(tw_half_cell.bety[:-1], # remove '_end_point'
|
|
130
|
-
tw_cell.rows[:'mid_cell'].bety, atol=0, rtol=1e-8)
|
|
131
|
-
xo.assert_allclose(tw_half_cell.alfx[:-1], # remove '_end_point'
|
|
132
|
-
tw_cell.rows[:'mid_cell'].alfx, atol=1e-8, rtol=0)
|
|
133
|
-
xo.assert_allclose(tw_half_cell.alfy[:-1], # remove '_end_point'
|
|
134
|
-
tw_cell.rows[:'mid_cell'].alfy, atol=1e-8, rtol=0)
|
|
135
|
-
xo.assert_allclose(tw_half_cell.dx[:-1], # remove '_end_point'
|
|
136
|
-
tw_cell.rows[:'mid_cell'].dx, atol=1e-8, rtol=0)
|
|
137
|
-
xo.assert_allclose(tw_half_cell.dpx[:-1], # remove '_end_point'
|
|
138
|
-
tw_cell.rows[:'mid_cell'].dpx, atol=1e-8, rtol=0)
|
|
139
|
-
xo.assert_allclose(tw_half_cell.ddx[:-1], # remove '_end_point'
|
|
140
|
-
tw_cell.rows[:'mid_cell'].ddx, atol=1e-7, rtol=1e-8)
|
|
141
|
-
|
|
142
|
-
xo.assert_allclose(tw_half_cell.ax_chrom[:-1], # remove '_end_point'
|
|
143
|
-
tw_cell.rows[:'mid_cell'].ax_chrom, atol=1e-5, rtol=0)
|
|
144
|
-
xo.assert_allclose(tw_half_cell.ay_chrom[:-1], # remove '_end_point'
|
|
145
|
-
tw_cell.rows[:'mid_cell'].ay_chrom, atol=1e-5, rtol=0)
|
|
146
|
-
xo.assert_allclose(tw_half_cell.bx_chrom[:-1], # remove '_end_point'
|
|
147
|
-
tw_cell.rows[:'mid_cell'].bx_chrom, atol=1e-5, rtol=0)
|
|
148
|
-
xo.assert_allclose(tw_half_cell.by_chrom[:-1], # remove '_end_point'
|
|
149
|
-
tw_cell.rows[:'mid_cell'].by_chrom, atol=1e-5, rtol=0)
|
|
150
|
-
xo.assert_allclose(tw_half_cell.ddx[:-1], # remove '_end_point'
|
|
151
|
-
tw_cell.rows[:'mid_cell'].ddx, atol=1e-7, rtol=1e-8)
|
|
152
|
-
|
|
153
|
-
xo.assert_allclose(tw_half_cell.qx, tw_cell.qx / 2, atol=1e-9, rtol=0)
|
|
154
|
-
xo.assert_allclose(tw_half_cell.qy, tw_cell.qy / 2, atol=1e-9, rtol=0)
|
|
155
|
-
xo.assert_allclose(tw_half_cell.dqx, tw_cell.dqx / 2, atol=1e-6, rtol=0)
|
|
156
|
-
xo.assert_allclose(tw_half_cell.dqy, tw_cell.dqy / 2, atol=1e-6, rtol=0)
|
|
157
|
-
|
|
158
|
-
tw_off_mom_cell = cell.twiss4d(strengths=True, delta0=1e-3)
|
|
159
|
-
tw_off_mom_half_cell = half_cell.twiss4d(
|
|
160
|
-
init='periodic_symmetric', strengths=True, delta0=1e-3)
|
|
161
|
-
|
|
162
|
-
xo.assert_allclose(tw_off_mom_half_cell.x[:-1],
|
|
163
|
-
tw_off_mom_cell.rows[:'mid_cell'].x, atol=1e-12, rtol=0)
|
xtrack-0.89.1/xtrack/_version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '0.89.1'
|
|
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
|