xtrack 0.86.1__tar.gz → 0.86.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {xtrack-0.86.1/xtrack.egg-info → xtrack-0.86.3}/PKG-INFO +1 -1
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radiation_equilibrium_emittances.py +9 -9
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radiation_equilibrium_emittances_thick.py +9 -9
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_tapering.py +62 -1
- xtrack-0.86.3/xtrack/_version.py +1 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/__init__.py +3 -2
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/bend.h +7 -1
- xtrack-0.86.3/xtrack/beam_elements/elements_src/default_magnet_config.h +22 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_bend.h +37 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_octupole.h +37 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +37 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_rbend.h +37 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +37 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +37 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/magnet.h +66 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/multipole.h +8 -6
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/octupole.h +10 -17
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/quadrupole.h +10 -17
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/rbend.h +14 -17
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/sextupole.h +10 -18
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/slnd.h +12 -15
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_bend.h +24 -27
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +17 -36
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +17 -36
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +25 -29
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +17 -36
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +18 -33
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_bend.h +25 -30
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +69 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +69 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +16 -24
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +68 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +68 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +17 -23
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +68 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +68 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +26 -31
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +68 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +68 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +16 -24
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +68 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +68 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +68 -0
- xtrack-0.86.3/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +68 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet.h +109 -70
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/variable_solenoid.h +9 -13
- xtrack-0.86.1/xtrack/beam_elements/slice_elements.py → xtrack-0.86.3/xtrack/beam_elements/slice_elements_edge.py +5 -293
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/slice_elements_thick.py +1 -1
- xtrack-0.86.3/xtrack/beam_elements/slice_elements_thin.py +296 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/line.py +14 -5
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/load.py +1 -1
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/madng_interface.py +6 -4
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/tapering.py +36 -19
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/trajectory_correction.py +4 -4
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/twiss.py +6 -3
- {xtrack-0.86.1 → xtrack-0.86.3/xtrack.egg-info}/PKG-INFO +1 -1
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack.egg-info/SOURCES.txt +4 -5
- xtrack-0.86.1/xtrack/_version.py +0 -1
- xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -32
- xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -32
- xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -32
- xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -32
- xtrack-0.86.1/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -32
- xtrack-0.86.1/xtrack/beam_elements/elements_src/magnet.h +0 -92
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -31
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -60
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -60
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -47
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -48
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -47
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -47
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -60
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -61
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -48
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -48
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -51
- xtrack-0.86.1/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -51
- xtrack-0.86.1/xtrack/beam_elements/elements_src/track_bend.h +0 -162
- xtrack-0.86.1/xtrack/beam_elements/elements_src/track_multipole.h +0 -176
- xtrack-0.86.1/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -115
- {xtrack-0.86.1 → xtrack-0.86.3}/LICENSE +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/MANIFEST.in +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/README.md +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/base_classes.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/elements.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/line.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/particles.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/pyproject.toml +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/setup.cfg +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/setup.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_acceleration.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_aperture_table.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_apertures.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_bucket_with_ref_energy_change.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_coasting.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_collimation.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_electron_cooler.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_elements.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_elements_thick.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_environment.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_footprint.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_full_rings.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_hvkick.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_ions.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_legacy_multiline_to_env.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_lhc_env.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_line.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_load.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_lumi.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_mad_writer.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_madloader.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_madnginterface.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_magnet.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_nested.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_monitor.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_multiline.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_multisetter.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_multispecies.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_native_madloader.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_optimize_for_tracking.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_particles.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_particles_basics.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_particles_pdg.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_periodic_symmetric_twiss_and_match.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_pipeline.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radial_steering.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radiation.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_radiation_integrals.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_random_gen.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_rbend_rbarc.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_rf_track.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_seeds.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_slice_elements.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_slicing.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_spin.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_sps_thick.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_survey.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_tracker.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_twiss.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_vs_madx.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/aperture_meas.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/base_element.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/marker.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_cavity.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/magnets.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/environment.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/footprint.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/general.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/checks.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/constants.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/headers/track.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/internal_record.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/json.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/lumi.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_loader.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_parser/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_parser/loader.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_parser/parse.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/mad_writer.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/match.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multiline.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multiline_legacy/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multiline_legacy/shared_knobs.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/constants.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/masses.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/particles.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/pdg.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/slicing.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/survey.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/svgutils/__init__.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/svgutils/parser.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/svgutils/path.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/svgutils/svgutils.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/synctime.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/targets.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/tracker.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/tracker_data.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack/twissplot.py +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.86.1 → xtrack-0.86.3}/xtrack.egg-info/top_level.txt +0 -0
|
@@ -124,32 +124,32 @@ def test_eq_emitt(conf):
|
|
|
124
124
|
if not tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
|
|
125
125
|
xo.assert_allclose(ex, 7.09232e-10, atol=0, rtol=1e-4)
|
|
126
126
|
xo.assert_allclose(ey, 0, atol=1e-14, rtol=0)
|
|
127
|
-
xo.assert_allclose(ez, 3.
|
|
127
|
+
xo.assert_allclose(ez, 3.36956e-06, atol=0, rtol=1e-4)
|
|
128
128
|
checked = True
|
|
129
129
|
elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
|
|
130
130
|
xo.assert_allclose(ex, 0, atol=1e-14, rtol=0)
|
|
131
131
|
xo.assert_allclose(ey, 7.09232e-10, atol=0, rtol=1e-4)
|
|
132
|
-
xo.assert_allclose(ez, 3.
|
|
132
|
+
xo.assert_allclose(ez, 3.36956e-6, atol=0, rtol=1e-4)
|
|
133
133
|
checked = True
|
|
134
134
|
elif not tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
|
135
135
|
xo.assert_allclose(ex, 7.0283e-10, atol=0, rtol=1e-4)
|
|
136
136
|
xo.assert_allclose(ey, 5.5765e-13, atol=0, rtol=4e-3)
|
|
137
|
-
xo.assert_allclose(ez, 3.
|
|
137
|
+
xo.assert_allclose(ez, 3.6042e-6, atol=0, rtol=1e-4)
|
|
138
138
|
checked = True
|
|
139
139
|
elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
|
140
140
|
xo.assert_allclose(ex, 5.5790e-13, atol=0, rtol=4e-3) # Quite large, to be kept in mind
|
|
141
141
|
xo.assert_allclose(ey, 7.0283e-10, atol=0, rtol=1e-4)
|
|
142
|
-
xo.assert_allclose(ez, 3.
|
|
142
|
+
xo.assert_allclose(ez, 3.6042e-6, atol=0, rtol=1e-4)
|
|
143
143
|
checked = True
|
|
144
144
|
elif not tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
|
|
145
145
|
xo.assert_allclose(ex, 7.0911e-10, atol=0, rtol=1e-4)
|
|
146
146
|
xo.assert_allclose(ey, 2.1821e-12, atol=0, rtol=1e-2)
|
|
147
|
-
xo.assert_allclose(ez, 3.
|
|
147
|
+
xo.assert_allclose(ez, 3.3536e-6, atol=0, rtol=1e-4)
|
|
148
148
|
checked = True
|
|
149
149
|
elif tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
|
|
150
150
|
xo.assert_allclose(ex, 2.1828e-12, atol=0, rtol=7e-3)
|
|
151
151
|
xo.assert_allclose(ey, 7.0911e-10, atol=0, rtol=1e-4)
|
|
152
|
-
xo.assert_allclose(ez, 3.
|
|
152
|
+
xo.assert_allclose(ez, 3.3536e-6, atol=0, rtol=1e-4)
|
|
153
153
|
checked = True
|
|
154
154
|
else:
|
|
155
155
|
raise ValueError('Unknown configuration')
|
|
@@ -159,11 +159,11 @@ def test_eq_emitt(conf):
|
|
|
159
159
|
# Check radiation integrals
|
|
160
160
|
tw_integ = line.twiss(radiation_integrals=True)
|
|
161
161
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_x_s,
|
|
162
|
-
tw_rad.damping_constants_s[0], rtol=0.
|
|
162
|
+
tw_rad.damping_constants_s[0], rtol=0.025, atol=0)
|
|
163
163
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_y_s,
|
|
164
|
-
tw_rad.damping_constants_s[1], rtol=0.
|
|
164
|
+
tw_rad.damping_constants_s[1], rtol=0.025, atol=0)
|
|
165
165
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_zeta_s,
|
|
166
|
-
tw_rad.damping_constants_s[2], rtol=0.
|
|
166
|
+
tw_rad.damping_constants_s[2], rtol=0.025, atol=0)
|
|
167
167
|
xo.assert_allclose(tw_integ.rad_int_eq_gemitt_x, ex, rtol=0.15, atol=1e-14)
|
|
168
168
|
xo.assert_allclose(tw_integ.rad_int_eq_gemitt_y, ey, rtol=0.15, atol=1e-14)
|
|
169
169
|
|
|
@@ -131,32 +131,32 @@ def test_eq_emitt(conf):
|
|
|
131
131
|
if not tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
|
|
132
132
|
xo.assert_allclose(ex, 7.0923e-10, atol=0, rtol=1e-4)
|
|
133
133
|
xo.assert_allclose(ey, 0, atol=1e-14, rtol=0)
|
|
134
|
-
xo.assert_allclose(ez, 3.
|
|
134
|
+
xo.assert_allclose(ez, 3.5064e-6, atol=0, rtol=1e-4)
|
|
135
135
|
checked = True
|
|
136
136
|
elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and not wiggler_on:
|
|
137
137
|
xo.assert_allclose(ex, 0, atol=1e-14, rtol=0)
|
|
138
138
|
xo.assert_allclose(ey, 7.0923e-10, atol=0, rtol=1e-4)
|
|
139
|
-
xo.assert_allclose(ez, 3.
|
|
139
|
+
xo.assert_allclose(ez, 3.5064e-6, atol=0, rtol=1e-4)
|
|
140
140
|
checked = True
|
|
141
141
|
elif not tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
|
142
142
|
xo.assert_allclose(ex, 7.0283e-10, atol=0, rtol=1e-4)
|
|
143
143
|
xo.assert_allclose(ey, 5.6461e-13, atol=0, rtol=4e-3)
|
|
144
|
-
xo.assert_allclose(ez, 3.
|
|
144
|
+
xo.assert_allclose(ez, 3.7506e-6, atol=0, rtol=1e-4)
|
|
145
145
|
checked = True
|
|
146
146
|
elif tilt_machine_by_90_degrees and not vertical_orbit_distortion and wiggler_on:
|
|
147
147
|
xo.assert_allclose(ex, 5.6448e-13, atol=0, rtol=1e-2) # Quite large, to be kept in mind
|
|
148
148
|
xo.assert_allclose(ey, 7.0283e-10, atol=0, rtol=1e-4)
|
|
149
|
-
xo.assert_allclose(ez, 3.
|
|
149
|
+
xo.assert_allclose(ez, 3.7506e-6, atol=0, rtol=1e-4)
|
|
150
150
|
checked = True
|
|
151
151
|
elif not tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
|
|
152
152
|
xo.assert_allclose(ex, 7.0910e-10, atol=0, rtol=1e-4)
|
|
153
153
|
xo.assert_allclose(ey, 2.2195e-12, atol=0, rtol=7e-3)
|
|
154
|
-
xo.assert_allclose(ez, 3.
|
|
154
|
+
xo.assert_allclose(ez, 3.4899e-6, atol=0, rtol=2e-4)
|
|
155
155
|
checked = True
|
|
156
156
|
elif tilt_machine_by_90_degrees and vertical_orbit_distortion and not wiggler_on:
|
|
157
157
|
xo.assert_allclose(ex, 2.2154e-12, atol=0, rtol=7e-3)
|
|
158
158
|
xo.assert_allclose(ey, 7.0911e-10, atol=0, rtol=1e-4)
|
|
159
|
-
xo.assert_allclose(ez, 3.
|
|
159
|
+
xo.assert_allclose(ez, 3.4899e-6, atol=0, rtol=2e-4)
|
|
160
160
|
checked = True
|
|
161
161
|
else:
|
|
162
162
|
raise ValueError('Unknown configuration')
|
|
@@ -166,11 +166,11 @@ def test_eq_emitt(conf):
|
|
|
166
166
|
# Check radiation integrals
|
|
167
167
|
tw_integ = line.twiss(radiation_integrals=True)
|
|
168
168
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_x_s,
|
|
169
|
-
tw_rad.damping_constants_s[0], rtol=0.
|
|
169
|
+
tw_rad.damping_constants_s[0], rtol=0.025, atol=0)
|
|
170
170
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_y_s,
|
|
171
|
-
tw_rad.damping_constants_s[1], rtol=0.
|
|
171
|
+
tw_rad.damping_constants_s[1], rtol=0.025, atol=0)
|
|
172
172
|
xo.assert_allclose(tw_integ.rad_int_damping_constant_zeta_s,
|
|
173
|
-
tw_rad.damping_constants_s[2], rtol=0.
|
|
173
|
+
tw_rad.damping_constants_s[2], rtol=0.025, atol=0)
|
|
174
174
|
xo.assert_allclose(tw_integ.rad_int_eq_gemitt_x, ex, rtol=0.15, atol=1e-14)
|
|
175
175
|
xo.assert_allclose(tw_integ.rad_int_eq_gemitt_y, ey, rtol=0.15, atol=1e-14)
|
|
176
176
|
|
|
@@ -37,7 +37,7 @@ def test_tapering_and_twiss_with_radiation():
|
|
|
37
37
|
line.configure_radiation(model='mean')
|
|
38
38
|
# - Set cavity lags to compensate energy loss
|
|
39
39
|
# - Taper magnet strengths
|
|
40
|
-
line.compensate_radiation_energy_loss()
|
|
40
|
+
line.compensate_radiation_energy_loss(delta0=0)
|
|
41
41
|
|
|
42
42
|
for conf in configs:
|
|
43
43
|
print(f'Running test with conf: {conf}')
|
|
@@ -126,3 +126,64 @@ def test_tapering_and_twiss_with_radiation():
|
|
|
126
126
|
xo.assert_allclose(
|
|
127
127
|
line['rf3'].voltage*np.sin((line['rf'].lag + line['rf'].lag_taper)/180*np.pi),
|
|
128
128
|
eneloss/4, rtol=3e-5)
|
|
129
|
+
|
|
130
|
+
def test_tapering_zero_mean():
|
|
131
|
+
|
|
132
|
+
filename = test_data_folder / 'clic_dr/line_for_taper.json'
|
|
133
|
+
with open(filename, 'r') as f:
|
|
134
|
+
line = xt.Line.from_dict(json.load(f))
|
|
135
|
+
|
|
136
|
+
line.build_tracker()
|
|
137
|
+
|
|
138
|
+
line['rf3'].voltage = 0. # desymmetrize the rf
|
|
139
|
+
line['rf'].voltage = 0. # desymmetrize the rf
|
|
140
|
+
|
|
141
|
+
line['rf1'].voltage *= 2
|
|
142
|
+
line['rf2b'].voltage *= 2
|
|
143
|
+
line['rf2a'].voltage *= 2
|
|
144
|
+
|
|
145
|
+
line.particle_ref.p0c = 4e9 # eV
|
|
146
|
+
|
|
147
|
+
line.configure_radiation(model=None)
|
|
148
|
+
tw_no_rad = line.twiss(method='4d', freeze_longitudinal=True)
|
|
149
|
+
|
|
150
|
+
###############################################
|
|
151
|
+
# Enable radiation and compensate energy loss #
|
|
152
|
+
###############################################
|
|
153
|
+
|
|
154
|
+
line.configure_radiation(model='mean')
|
|
155
|
+
|
|
156
|
+
# - Set cavity lags to compensate energy loss
|
|
157
|
+
# - Taper magnet strengths to avoid optics and orbit distortions
|
|
158
|
+
line.compensate_radiation_energy_loss(max_iter=100, delta0='zero_mean')
|
|
159
|
+
|
|
160
|
+
##############################
|
|
161
|
+
# Twiss to check the results #
|
|
162
|
+
##############################
|
|
163
|
+
|
|
164
|
+
tw = line.twiss(method='6d')
|
|
165
|
+
|
|
166
|
+
tw.delta # contains the momentum deviation along the ring
|
|
167
|
+
|
|
168
|
+
#!end-doc-part
|
|
169
|
+
|
|
170
|
+
p0corr = 1 + tw.delta
|
|
171
|
+
|
|
172
|
+
delta_ave = np.trapezoid(tw.delta, tw.s)/tw.s[-1]
|
|
173
|
+
xo.assert_allclose(delta_ave, 0, rtol=0, atol=1e-6)
|
|
174
|
+
|
|
175
|
+
xo.assert_allclose(tw.qx, tw_no_rad.qx, rtol=0, atol=5e-4)
|
|
176
|
+
xo.assert_allclose(tw.qy, tw_no_rad.qy, rtol=0, atol=5e-4)
|
|
177
|
+
|
|
178
|
+
xo.assert_allclose(tw.dqx, tw_no_rad.dqx, rtol=0, atol=1.5e-2*tw.qx)
|
|
179
|
+
xo.assert_allclose(tw.dqy, tw_no_rad.dqy, rtol=0, atol=1.5e-2*tw.qy)
|
|
180
|
+
|
|
181
|
+
xo.assert_allclose(tw.x, tw_no_rad.x, rtol=0, atol=1e-7)
|
|
182
|
+
xo.assert_allclose(tw.y, tw_no_rad.y, rtol=0, atol=1e-7)
|
|
183
|
+
|
|
184
|
+
xo.assert_allclose(tw.betx*p0corr, tw_no_rad.betx, rtol=2e-2, atol=0)
|
|
185
|
+
xo.assert_allclose(tw.bety*p0corr, tw_no_rad.bety, rtol=2e-2, atol=0)
|
|
186
|
+
|
|
187
|
+
xo.assert_allclose(tw.dx, tw.dx, rtol=0.0, atol=0.1e-3)
|
|
188
|
+
|
|
189
|
+
xo.assert_allclose(tw.dy, tw.dy, rtol=0.0, atol=0.1e-3)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.86.3'
|
|
@@ -8,9 +8,10 @@ from .exciter import Exciter
|
|
|
8
8
|
from .apertures import *
|
|
9
9
|
from .magnets import Magnet
|
|
10
10
|
from .beam_interaction import BeamInteraction, ParticlesInjectionSample
|
|
11
|
-
from .
|
|
11
|
+
from .slice_elements_thin import (ThinSliceQuadrupole, ThinSliceSextupole,
|
|
12
12
|
ThinSliceOctupole, ThinSliceBend,
|
|
13
|
-
ThinSliceRBend
|
|
13
|
+
ThinSliceRBend)
|
|
14
|
+
from .slice_elements_edge import (
|
|
14
15
|
ThinSliceBendEntry, ThinSliceBendExit,
|
|
15
16
|
ThinSliceRBendEntry, ThinSliceRBendExit,
|
|
16
17
|
ThinSliceQuadrupoleEntry, ThinSliceQuadrupoleExit,
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
#include <headers/track.h>
|
|
10
10
|
#include <beam_elements/elements_src/track_magnet.h>
|
|
11
|
+
#include <beam_elements/elements_src/default_magnet_config.h>
|
|
11
12
|
|
|
12
13
|
GPUFUN
|
|
13
14
|
void Bend_track_local_particle(
|
|
@@ -16,17 +17,20 @@ void Bend_track_local_particle(
|
|
|
16
17
|
) {
|
|
17
18
|
|
|
18
19
|
track_magnet_particles(
|
|
20
|
+
/*weight*/ 1.0,
|
|
19
21
|
/*part0*/ part0,
|
|
20
22
|
/*length*/ BendData_get_length(el),
|
|
21
23
|
/*order*/ BendData_get_order(el),
|
|
22
24
|
/*inv_factorial_order*/ BendData_get_inv_factorial_order(el),
|
|
23
25
|
/*knl*/ BendData_getp1_knl(el, 0),
|
|
24
26
|
/*ksl*/ BendData_getp1_ksl(el, 0),
|
|
25
|
-
/*factor_knl_ksl*/ 1.,
|
|
26
27
|
/*num_multipole_kicks*/ BendData_get_num_multipole_kicks(el),
|
|
27
28
|
/*model*/ BendData_get_model(el),
|
|
29
|
+
/*default_model*/ BEND_DEFAULT_MODEL,
|
|
28
30
|
/*integrator*/ BendData_get_integrator(el),
|
|
31
|
+
/*default_integrator*/ BEND_DEFAULT_INTEGRATOR,
|
|
29
32
|
/*radiation_flag*/ BendData_get_radiation_flag(el),
|
|
33
|
+
/*radiation_flag_parent*/ 0, // not used here
|
|
30
34
|
/*radiation_record*/ NULL,
|
|
31
35
|
/*delta_taper*/ BendData_get_delta_taper(el),
|
|
32
36
|
/*h*/ BendData_get_h(el),
|
|
@@ -41,6 +45,8 @@ void Bend_track_local_particle(
|
|
|
41
45
|
/*k3s*/ 0.,
|
|
42
46
|
/*ks*/ 0.,
|
|
43
47
|
/*dks_ds*/ 0.,
|
|
48
|
+
/*rbend_model*/ -1, // not rbend
|
|
49
|
+
/*body_active*/ 1,
|
|
44
50
|
/*edge_entry_active*/ BendData_get_edge_entry_active(el),
|
|
45
51
|
/*edge_exit_active*/ BendData_get_edge_exit_active(el),
|
|
46
52
|
/*edge_entry_model*/ BendData_get_edge_entry_model(el),
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// copyright ############################### //
|
|
2
|
+
// This file is part of the Xtrack Package. //
|
|
3
|
+
// Copyright (c) CERN, 2023. //
|
|
4
|
+
// ######################################### //
|
|
5
|
+
|
|
6
|
+
#ifndef XTRACK_DEFAULT_MAGNET_CONFIG_H
|
|
7
|
+
#define XTRACK_DEFAULT_MAGNET_CONFIG_H
|
|
8
|
+
|
|
9
|
+
#define BEND_DEFAULT_MODEL (3) // rot-kick-rot
|
|
10
|
+
#define RBEND_DEFAULT_MODEL (3) // rot-kick-rot
|
|
11
|
+
#define QUADRUPOLE_DEFAULT_MODEL (4) // mat-kick-mat
|
|
12
|
+
#define SEXTUPOLE_DEFAULT_MODEL (6) // drift-kick-drift-expanded
|
|
13
|
+
#define OCTUPOLE_DEFAULT_MODEL (6) // drift-kick-drift-expanded
|
|
14
|
+
|
|
15
|
+
#define BEND_DEFAULT_INTEGRATOR (2) // Yoshida-4
|
|
16
|
+
#define RBEND_DEFAULT_INTEGRATOR (2) // Yoshida-4
|
|
17
|
+
#define QUADRUPOLE_DEFAULT_INTEGRATOR (3) // uniform
|
|
18
|
+
#define SEXTUPOLE_DEFAULT_INTEGRATOR (3) // uniform
|
|
19
|
+
#define OCTUPOLE_DEFAULT_INTEGRATOR (3) // uniform
|
|
20
|
+
#define SOLENOID_DEFAULT_INTEGRATOR (3) // uniform
|
|
21
|
+
|
|
22
|
+
#endif
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// This file is generated by _generate_slice_elements_c_code.py
|
|
2
|
+
// Do not edit it directly.
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// copyright ############################### //
|
|
6
|
+
// This file is part of the Xtrack Package. //
|
|
7
|
+
// Copyright (c) CERN, 2023. //
|
|
8
|
+
// ######################################### //
|
|
9
|
+
|
|
10
|
+
#ifndef XTRACK_DRIFT_SLICE_BEND_H
|
|
11
|
+
#define XTRACK_DRIFT_SLICE_BEND_H
|
|
12
|
+
|
|
13
|
+
#include <headers/track.h>
|
|
14
|
+
#include <beam_elements/elements_src/track_drift.h>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
GPUFUN
|
|
18
|
+
void DriftSliceBend_track_local_particle(
|
|
19
|
+
DriftSliceBendData el,
|
|
20
|
+
LocalParticle* part0
|
|
21
|
+
) {
|
|
22
|
+
|
|
23
|
+
double weight = DriftSliceBendData_get_weight(el);
|
|
24
|
+
|
|
25
|
+
#ifndef XSUITE_BACKTRACK
|
|
26
|
+
double const length = weight * DriftSliceBendData_get__parent_length(el); // m
|
|
27
|
+
#else
|
|
28
|
+
double const length = -weight * DriftSliceBendData_get__parent_length(el); // m
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
|
+
Drift_single_particle(part, length);
|
|
33
|
+
END_PER_PARTICLE_BLOCK;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#endif
|
|
37
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// This file is generated by _generate_slice_elements_c_code.py
|
|
2
|
+
// Do not edit it directly.
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// copyright ############################### //
|
|
6
|
+
// This file is part of the Xtrack Package. //
|
|
7
|
+
// Copyright (c) CERN, 2023. //
|
|
8
|
+
// ######################################### //
|
|
9
|
+
|
|
10
|
+
#ifndef XTRACK_DRIFT_SLICE_OCTUPOLE_H
|
|
11
|
+
#define XTRACK_DRIFT_SLICE_OCTUPOLE_H
|
|
12
|
+
|
|
13
|
+
#include <headers/track.h>
|
|
14
|
+
#include <beam_elements/elements_src/track_drift.h>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
GPUFUN
|
|
18
|
+
void DriftSliceOctupole_track_local_particle(
|
|
19
|
+
DriftSliceOctupoleData el,
|
|
20
|
+
LocalParticle* part0
|
|
21
|
+
) {
|
|
22
|
+
|
|
23
|
+
double weight = DriftSliceOctupoleData_get_weight(el);
|
|
24
|
+
|
|
25
|
+
#ifndef XSUITE_BACKTRACK
|
|
26
|
+
double const length = weight * DriftSliceOctupoleData_get__parent_length(el); // m
|
|
27
|
+
#else
|
|
28
|
+
double const length = -weight * DriftSliceOctupoleData_get__parent_length(el); // m
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
|
+
Drift_single_particle(part, length);
|
|
33
|
+
END_PER_PARTICLE_BLOCK;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#endif
|
|
37
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// This file is generated by _generate_slice_elements_c_code.py
|
|
2
|
+
// Do not edit it directly.
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// copyright ############################### //
|
|
6
|
+
// This file is part of the Xtrack Package. //
|
|
7
|
+
// Copyright (c) CERN, 2023. //
|
|
8
|
+
// ######################################### //
|
|
9
|
+
|
|
10
|
+
#ifndef XTRACK_DRIFT_SLICE_QUADRUPOLE_H
|
|
11
|
+
#define XTRACK_DRIFT_SLICE_QUADRUPOLE_H
|
|
12
|
+
|
|
13
|
+
#include <headers/track.h>
|
|
14
|
+
#include <beam_elements/elements_src/track_drift.h>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
GPUFUN
|
|
18
|
+
void DriftSliceQuadrupole_track_local_particle(
|
|
19
|
+
DriftSliceQuadrupoleData el,
|
|
20
|
+
LocalParticle* part0
|
|
21
|
+
) {
|
|
22
|
+
|
|
23
|
+
double weight = DriftSliceQuadrupoleData_get_weight(el);
|
|
24
|
+
|
|
25
|
+
#ifndef XSUITE_BACKTRACK
|
|
26
|
+
double const length = weight * DriftSliceQuadrupoleData_get__parent_length(el); // m
|
|
27
|
+
#else
|
|
28
|
+
double const length = -weight * DriftSliceQuadrupoleData_get__parent_length(el); // m
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
|
+
Drift_single_particle(part, length);
|
|
33
|
+
END_PER_PARTICLE_BLOCK;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#endif
|
|
37
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// This file is generated by _generate_slice_elements_c_code.py
|
|
2
|
+
// Do not edit it directly.
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// copyright ############################### //
|
|
6
|
+
// This file is part of the Xtrack Package. //
|
|
7
|
+
// Copyright (c) CERN, 2023. //
|
|
8
|
+
// ######################################### //
|
|
9
|
+
|
|
10
|
+
#ifndef XTRACK_DRIFT_SLICE_RBEND_H
|
|
11
|
+
#define XTRACK_DRIFT_SLICE_RBEND_H
|
|
12
|
+
|
|
13
|
+
#include <headers/track.h>
|
|
14
|
+
#include <beam_elements/elements_src/track_drift.h>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
GPUFUN
|
|
18
|
+
void DriftSliceRBend_track_local_particle(
|
|
19
|
+
DriftSliceRBendData el,
|
|
20
|
+
LocalParticle* part0
|
|
21
|
+
) {
|
|
22
|
+
|
|
23
|
+
double weight = DriftSliceRBendData_get_weight(el);
|
|
24
|
+
|
|
25
|
+
#ifndef XSUITE_BACKTRACK
|
|
26
|
+
double const length = weight * DriftSliceRBendData_get__parent_length(el); // m
|
|
27
|
+
#else
|
|
28
|
+
double const length = -weight * DriftSliceRBendData_get__parent_length(el); // m
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
|
+
Drift_single_particle(part, length);
|
|
33
|
+
END_PER_PARTICLE_BLOCK;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#endif
|
|
37
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// This file is generated by _generate_slice_elements_c_code.py
|
|
2
|
+
// Do not edit it directly.
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// copyright ############################### //
|
|
6
|
+
// This file is part of the Xtrack Package. //
|
|
7
|
+
// Copyright (c) CERN, 2023. //
|
|
8
|
+
// ######################################### //
|
|
9
|
+
|
|
10
|
+
#ifndef XTRACK_DRIFT_SLICE_SEXTUPOLE_H
|
|
11
|
+
#define XTRACK_DRIFT_SLICE_SEXTUPOLE_H
|
|
12
|
+
|
|
13
|
+
#include <headers/track.h>
|
|
14
|
+
#include <beam_elements/elements_src/track_drift.h>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
GPUFUN
|
|
18
|
+
void DriftSliceSextupole_track_local_particle(
|
|
19
|
+
DriftSliceSextupoleData el,
|
|
20
|
+
LocalParticle* part0
|
|
21
|
+
) {
|
|
22
|
+
|
|
23
|
+
double weight = DriftSliceSextupoleData_get_weight(el);
|
|
24
|
+
|
|
25
|
+
#ifndef XSUITE_BACKTRACK
|
|
26
|
+
double const length = weight * DriftSliceSextupoleData_get__parent_length(el); // m
|
|
27
|
+
#else
|
|
28
|
+
double const length = -weight * DriftSliceSextupoleData_get__parent_length(el); // m
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
|
+
Drift_single_particle(part, length);
|
|
33
|
+
END_PER_PARTICLE_BLOCK;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#endif
|
|
37
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// This file is generated by _generate_slice_elements_c_code.py
|
|
2
|
+
// Do not edit it directly.
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// copyright ############################### //
|
|
6
|
+
// This file is part of the Xtrack Package. //
|
|
7
|
+
// Copyright (c) CERN, 2023. //
|
|
8
|
+
// ######################################### //
|
|
9
|
+
|
|
10
|
+
#ifndef XTRACK_DRIFT_SLICE_UNIFORMSOLENOID_H
|
|
11
|
+
#define XTRACK_DRIFT_SLICE_UNIFORMSOLENOID_H
|
|
12
|
+
|
|
13
|
+
#include <headers/track.h>
|
|
14
|
+
#include <beam_elements/elements_src/track_drift.h>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
GPUFUN
|
|
18
|
+
void DriftSliceUniformSolenoid_track_local_particle(
|
|
19
|
+
DriftSliceUniformSolenoidData el,
|
|
20
|
+
LocalParticle* part0
|
|
21
|
+
) {
|
|
22
|
+
|
|
23
|
+
double weight = DriftSliceUniformSolenoidData_get_weight(el);
|
|
24
|
+
|
|
25
|
+
#ifndef XSUITE_BACKTRACK
|
|
26
|
+
double const length = weight * DriftSliceUniformSolenoidData_get__parent_length(el); // m
|
|
27
|
+
#else
|
|
28
|
+
double const length = -weight * DriftSliceUniformSolenoidData_get__parent_length(el); // m
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
32
|
+
Drift_single_particle(part, length);
|
|
33
|
+
END_PER_PARTICLE_BLOCK;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#endif
|
|
37
|
+
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// copyright ############################### //
|
|
2
|
+
// This file is part of the Xtrack Package. //
|
|
3
|
+
// Copyright (c) CERN, 2023. //
|
|
4
|
+
// ######################################### //
|
|
5
|
+
|
|
6
|
+
#ifndef XTRACK_MAGNET_H
|
|
7
|
+
#define XTRACK_MAGNET_H
|
|
8
|
+
|
|
9
|
+
#include <headers/track.h>
|
|
10
|
+
#include <beam_elements/elements_src/track_magnet.h>
|
|
11
|
+
#include <beam_elements/elements_src/default_magnet_config.h>
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
GPUFUN
|
|
15
|
+
void Magnet_track_local_particle(
|
|
16
|
+
MagnetData el,
|
|
17
|
+
LocalParticle* part0
|
|
18
|
+
) {
|
|
19
|
+
|
|
20
|
+
track_magnet_particles(
|
|
21
|
+
/*weight*/ 1.0,
|
|
22
|
+
/*part0*/ part0,
|
|
23
|
+
/*length*/ MagnetData_get_length(el),
|
|
24
|
+
/*order*/ MagnetData_get_order(el),
|
|
25
|
+
/*inv_factorial_order*/ MagnetData_get_inv_factorial_order(el),
|
|
26
|
+
/*knl*/ MagnetData_getp1_knl(el, 0),
|
|
27
|
+
/*ksl*/ MagnetData_getp1_ksl(el, 0),
|
|
28
|
+
/*num_multipole_kicks*/ MagnetData_get_num_multipole_kicks(el),
|
|
29
|
+
/*model*/ MagnetData_get_model(el),
|
|
30
|
+
/*default_model*/ BEND_DEFAULT_MODEL,
|
|
31
|
+
/*integrator*/ MagnetData_get_integrator(el),
|
|
32
|
+
/*default_integrator*/ BEND_DEFAULT_INTEGRATOR,
|
|
33
|
+
/*radiation_flag*/ MagnetData_get_radiation_flag(el),
|
|
34
|
+
/*radiation_flag_parent*/ 0, // not used here
|
|
35
|
+
/*radiation_record*/ NULL,
|
|
36
|
+
/*delta_taper*/ MagnetData_get_delta_taper(el),
|
|
37
|
+
/*h*/ MagnetData_get_h(el),
|
|
38
|
+
/*hxl*/ 0.,
|
|
39
|
+
/*k0*/ MagnetData_get_k0(el),
|
|
40
|
+
/*k1*/ MagnetData_get_k1(el),
|
|
41
|
+
/*k2*/ MagnetData_get_k2(el),
|
|
42
|
+
/*k3*/ MagnetData_get_k3(el),
|
|
43
|
+
/*k0s*/ MagnetData_get_k0s(el),
|
|
44
|
+
/*k1s*/ MagnetData_get_k1s(el),
|
|
45
|
+
/*k2s*/ MagnetData_get_k2s(el),
|
|
46
|
+
/*k3s*/ MagnetData_get_k3s(el),
|
|
47
|
+
/*ks*/ 0.,
|
|
48
|
+
/*dks_ds*/ 0.,
|
|
49
|
+
/*rbend_model*/ -1, // not rbend
|
|
50
|
+
/*body_active*/ 1,
|
|
51
|
+
/*edge_entry_active*/ MagnetData_get_edge_entry_active(el),
|
|
52
|
+
/*edge_exit_active*/ MagnetData_get_edge_exit_active(el),
|
|
53
|
+
/*edge_entry_model*/ MagnetData_get_edge_entry_model(el),
|
|
54
|
+
/*edge_exit_model*/ MagnetData_get_edge_exit_model(el),
|
|
55
|
+
/*edge_entry_angle*/ MagnetData_get_edge_entry_angle(el),
|
|
56
|
+
/*edge_exit_angle*/ MagnetData_get_edge_exit_angle(el),
|
|
57
|
+
/*edge_entry_angle_fdown*/MagnetData_get_edge_entry_angle_fdown(el),
|
|
58
|
+
/*edge_exit_angle_fdown*/ MagnetData_get_edge_exit_angle_fdown(el),
|
|
59
|
+
/*edge_entry_fint*/ MagnetData_get_edge_entry_fint(el),
|
|
60
|
+
/*edge_exit_fint*/ MagnetData_get_edge_exit_fint(el),
|
|
61
|
+
/*edge_entry_hgap*/ MagnetData_get_edge_entry_hgap(el),
|
|
62
|
+
/*edge_exit_hgap*/ MagnetData_get_edge_exit_hgap(el)
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
#endif
|
|
@@ -8,33 +8,33 @@
|
|
|
8
8
|
|
|
9
9
|
#include <headers/track.h>
|
|
10
10
|
#include <beam_elements/elements_src/track_magnet.h>
|
|
11
|
+
#include <beam_elements/elements_src/default_magnet_config.h>
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
GPUFUN
|
|
14
15
|
void Multipole_track_local_particle(MultipoleData el, LocalParticle* part0){
|
|
15
16
|
|
|
16
|
-
SynchrotronRadiationRecordData record = NULL;
|
|
17
17
|
int64_t radiation_flag = 0;
|
|
18
18
|
#ifndef XTRACK_MULTIPOLE_NO_SYNRAD
|
|
19
19
|
radiation_flag = MultipoleData_get_radiation_flag(el);
|
|
20
|
-
if (radiation_flag==2){
|
|
21
|
-
record = (SynchrotronRadiationRecordData) MultipoleData_getp_internal_record(el, part0);
|
|
22
|
-
}
|
|
23
20
|
#endif
|
|
24
21
|
|
|
25
22
|
track_magnet_particles(
|
|
23
|
+
/*weight*/ 1.,
|
|
26
24
|
/*part0*/ part0,
|
|
27
25
|
/*length*/ MultipoleData_get_length(el),
|
|
28
26
|
/*order*/ MultipoleData_get_order(el),
|
|
29
27
|
/*inv_factorial_order*/ MultipoleData_get_inv_factorial_order(el),
|
|
30
28
|
/*knl*/ MultipoleData_getp1_knl(el, 0),
|
|
31
29
|
/*ksl*/ MultipoleData_getp1_ksl(el, 0),
|
|
32
|
-
/*factor_knl_ksl*/ 1.,
|
|
33
30
|
/*num_multipole_kicks*/ 1,
|
|
34
31
|
/*model*/ -1, // kick only
|
|
32
|
+
/*default_model*/ 0, // unused
|
|
35
33
|
/*integrator*/ 3, // uniform
|
|
34
|
+
/*default_integrator*/ 3, // unused
|
|
36
35
|
/*radiation_flag*/ radiation_flag,
|
|
37
|
-
/*
|
|
36
|
+
/*radiation_flag_parent*/ 0, // not used here
|
|
37
|
+
/*radiation_record*/ (SynchrotronRadiationRecordData) MultipoleData_getp_internal_record(el, part0),
|
|
38
38
|
/*delta_taper*/ MultipoleData_get_delta_taper(el),
|
|
39
39
|
/*h*/ 0.,
|
|
40
40
|
/*hxl*/ MultipoleData_get_hxl(el),
|
|
@@ -48,6 +48,8 @@ void Multipole_track_local_particle(MultipoleData el, LocalParticle* part0){
|
|
|
48
48
|
/*k3s*/ 0.,
|
|
49
49
|
/*ks*/ 0.,
|
|
50
50
|
/*dks_ds*/ 0.,
|
|
51
|
+
/*rbend_model*/ -1, // not rbend
|
|
52
|
+
/*body_active*/ 1,
|
|
51
53
|
/*edge_entry_active*/ 0,
|
|
52
54
|
/*edge_exit_active*/ 0,
|
|
53
55
|
/*edge_entry_model*/ 0,
|