xtrack 0.96.1__tar.gz → 0.97.0__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.96.1/xtrack.egg-info → xtrack-0.97.0}/PKG-INFO +11 -6
- xtrack-0.97.0/pyproject.toml +67 -0
- xtrack-0.97.0/setup.py +3 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_aperture_table.py +3 -3
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_element_internal_record.py +20 -22
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_elements.py +9 -7
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_environment.py +2 -2
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_native_madloader_sps.py +2 -2
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_particles.py +9 -6
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_particles_basics.py +45 -27
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_radial_steering.py +1 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_random_gen.py +5 -3
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_random_gen_exp.py +5 -3
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_random_gen_gauss.py +5 -3
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_random_gen_ruth.py +5 -3
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_rbend_straight_body.py +1082 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_tracker.py +10 -6
- xtrack-0.97.0/xtrack/_version.py +1 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/base_element.py +10 -7
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/bend.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/magnet.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/multipole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/octupole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/quadrupole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/rbend.h +3 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/sextupole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/slnd.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thick_slice_bend.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thick_slice_multipole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +3 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_bend.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_multipole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +3 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +3 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +3 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +4 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_magnet.h +61 -29
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_magnet.template.h +60 -29
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/variable_solenoid.h +4 -1
- xtrack-0.97.0/xtrack/headers/atomicadd.h +13 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/headers/constants.h +16 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/headers/track.h +8 -68
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/internal_record.py +2 -2
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/line.py +28 -13
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/monitors/beam_position_monitor.h +1 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/monitors/beam_profile_monitor.h +1 -1
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/monitors/beam_size_monitor.h +7 -7
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/monitors/particles_monitor.h +5 -2
- xtrack-0.97.0/xtrack/multisetter/multisetter.h +76 -0
- xtrack-0.97.0/xtrack/particles/local_particle_custom_api.h +289 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/tracker.py +1 -10
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/twiss.py +0 -1
- {xtrack-0.96.1 → xtrack-0.97.0/xtrack.egg-info}/PKG-INFO +11 -6
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack.egg-info/SOURCES.txt +3 -66
- xtrack-0.97.0/xtrack.egg-info/entry_points.txt +2 -0
- xtrack-0.96.1/ducktrack/be_beamfields/BB6D.py +0 -160
- xtrack-0.96.1/ducktrack/be_beamfields/BB6Ddata.py +0 -309
- xtrack-0.96.1/ducktrack/be_beamfields/__init__.py +0 -7
- xtrack-0.96.1/ducktrack/be_beamfields/beambeam.py +0 -441
- xtrack-0.96.1/ducktrack/be_beamfields/boost.py +0 -125
- xtrack-0.96.1/ducktrack/be_beamfields/gaussian_fields.py +0 -216
- xtrack-0.96.1/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -304
- xtrack-0.96.1/ducktrack/be_beamfields/qgauss.py +0 -80
- xtrack-0.96.1/ducktrack/be_beamfields/slicing.py +0 -61
- xtrack-0.96.1/ducktrack/be_beamfields/spacecharge.py +0 -182
- xtrack-0.96.1/pyproject.toml +0 -6
- xtrack-0.96.1/setup.py +0 -56
- xtrack-0.96.1/tests/test_atomic_add.py +0 -90
- xtrack-0.96.1/xtrack/_temp/__init__.py +0 -0
- xtrack-0.96.1/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- xtrack-0.96.1/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -96
- xtrack-0.96.1/xtrack/_temp/lhc_match/__init__.py +0 -3
- xtrack-0.96.1/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -57
- xtrack-0.96.1/xtrack/_temp/lhc_match/lhc_match.py +0 -1149
- xtrack-0.96.1/xtrack/_temp/lhc_match/var_limits.py +0 -337
- xtrack-0.96.1/xtrack/_temp/python_lattice_writer/__init__.py +0 -0
- xtrack-0.96.1/xtrack/_temp/python_lattice_writer/lattice_py_generation.py +0 -318
- xtrack-0.96.1/xtrack/_version.py +0 -1
- xtrack-0.96.1/xtrack/beam_elements/__init__.py +0 -37
- xtrack-0.96.1/xtrack/beam_elements/acdipole.py +0 -222
- xtrack-0.96.1/xtrack/beam_elements/apertures.py +0 -555
- xtrack-0.96.1/xtrack/beam_elements/beam_interaction.py +0 -97
- xtrack-0.96.1/xtrack/beam_elements/elements.py +0 -4306
- xtrack-0.96.1/xtrack/beam_elements/exciter.py +0 -159
- xtrack-0.96.1/xtrack/beam_elements/rft_element.py +0 -80
- xtrack-0.96.1/xtrack/beam_elements/slice_base.py +0 -41
- xtrack-0.96.1/xtrack/beam_elements/slice_elements_drift.py +0 -170
- xtrack-0.96.1/xtrack/beam_elements/slice_elements_edge.py +0 -416
- xtrack-0.96.1/xtrack/beam_elements/slice_elements_thick.py +0 -127
- xtrack-0.96.1/xtrack/beam_elements/slice_elements_thin.py +0 -256
- xtrack-0.96.1/xtrack/headers/atomicadd.h +0 -350
- xtrack-0.96.1/xtrack/loss_location_refinement/__init__.py +0 -6
- xtrack-0.96.1/xtrack/loss_location_refinement/loss_location_refinement.py +0 -631
- xtrack-0.96.1/xtrack/mad_parser/__init__.py +0 -2
- xtrack-0.96.1/xtrack/mad_parser/loader.py +0 -745
- xtrack-0.96.1/xtrack/mad_parser/parse.py +0 -322
- xtrack-0.96.1/xtrack/monitors/__init__.py +0 -8
- xtrack-0.96.1/xtrack/monitors/beam_position_monitor.py +0 -138
- xtrack-0.96.1/xtrack/monitors/beam_profile_monitor.py +0 -209
- xtrack-0.96.1/xtrack/monitors/beam_size_monitor.py +0 -151
- xtrack-0.96.1/xtrack/monitors/last_turns_monitor.py +0 -122
- xtrack-0.96.1/xtrack/monitors/particles_monitor.py +0 -184
- xtrack-0.96.1/xtrack/multiline_legacy/__init__.py +0 -2
- xtrack-0.96.1/xtrack/multiline_legacy/multiline_legacy.py +0 -684
- xtrack-0.96.1/xtrack/multiline_legacy/shared_knobs.py +0 -71
- xtrack-0.96.1/xtrack/multisetter/__init__.py +0 -1
- xtrack-0.96.1/xtrack/multisetter/multisetter.py +0 -266
- xtrack-0.96.1/xtrack/particles/__init__.py +0 -23
- xtrack-0.96.1/xtrack/particles/constants.py +0 -7
- xtrack-0.96.1/xtrack/particles/masses.py +0 -181
- xtrack-0.96.1/xtrack/particles/particles.py +0 -2337
- xtrack-0.96.1/xtrack/particles/pdg.py +0 -549
- xtrack-0.96.1/xtrack/pipeline/__init__.py +0 -3
- xtrack-0.96.1/xtrack/pipeline/core.py +0 -40
- xtrack-0.96.1/xtrack/pipeline/manager.py +0 -87
- xtrack-0.96.1/xtrack/pipeline/multitracker.py +0 -72
- xtrack-0.96.1/xtrack/prebuilt_kernel_definitions/__init__.py +0 -7
- xtrack-0.96.1/xtrack/prebuilt_kernel_definitions/element_inits.py +0 -38
- xtrack-0.96.1/xtrack/prebuilt_kernel_definitions/element_types.py +0 -114
- xtrack-0.96.1/xtrack/random/__init__.py +0 -5
- xtrack-0.96.1/xtrack/random/random_generators.py +0 -201
- xtrack-0.96.1/xtrack/svgutils/__init__.py +0 -1
- xtrack-0.96.1/xtrack/svgutils/parser.py +0 -327
- xtrack-0.96.1/xtrack/svgutils/path.py +0 -985
- xtrack-0.96.1/xtrack/svgutils/svgutils.py +0 -45
- {xtrack-0.96.1 → xtrack-0.97.0}/LICENSE +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/MANIFEST.in +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/README.md +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/ducktrack/__init__.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/ducktrack/base_classes.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/ducktrack/elements.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/ducktrack/line.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/ducktrack/particles.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/setup.cfg +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_acceleration.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_acdipole.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_acdipole_twiss.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_aperture_polygon.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_apertures.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_boris_spatial.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_bucket_with_ref_energy_change.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_coasting.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_collimation.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_coupling_edwards_teng.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_electron_cooler.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_elements_thick.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_footprint.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_full_rings.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_hvkick.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_ions.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_json.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_legacy_multiline_to_env.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_lhc_env.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_line.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_load.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_load_vars.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_lumi.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_mad_writer.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_madloader.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_madnginterface.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_magnet.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_match_nested.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_misalign.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_monitor.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_multiline.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_multisetter.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_multispecies.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_native_madloader.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_native_madloader_lhc.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_native_madloader_lhc_thin.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_native_madloader_ps.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_native_madloader_ti2.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_optimize_for_tracking.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_particles_pdg.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_pipeline.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_quadrupole_fringe_ptc.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_quadrupole_wedge.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_radiation.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_radiation_equilibrium_emittances_thick.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_radiation_integrals.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_rf_track.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_seeds.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_slice_elements.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_slicing.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_spin.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_sps_thick_cpymad_loader.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_sps_thick_native_loader.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_survey.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_tapering.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_thick_kickers_rf_crab.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_twiss.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_twiss_to_file.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_vs_madx.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/__init__.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/aperture_meas.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/acdipole.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/crab_cavity.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/default_magnet_config.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_exact.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_exact_slice.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice_cavity.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice_crab_cavity.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice_multipole.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/marker.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/misalignment.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/temprf.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thick_slice_cavity.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thick_slice_crab_cavity.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_cavity.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/thin_slice_crab_cavity.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_acdipole.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_magnet_configure.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_misalignments.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_rf.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_rf.template.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_xyshift.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/boris.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/builder.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/environment.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/footprint.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/functions.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/general.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/headers/checks.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/headers/track_local_particle_with_transformations.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/json.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/load.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/lumi.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/mad_loader.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/mad_writer.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/madng_interface.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/match.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/multiline.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/slicing.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/survey.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/synctime.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/table.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/tapering.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/targets.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/track_flags.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/tracker_data.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/twissplot.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack/view.py +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.96.1 → xtrack-0.97.0}/xtrack.egg-info/top_level.txt +0 -0
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: xtrack
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.97.0
|
|
4
4
|
Summary: Tracking library for particle accelerators
|
|
5
|
-
Home-page: https://xsuite.readthedocs.io/
|
|
6
|
-
Download-URL: https://pypi.python.org/pypi/xtrack
|
|
7
5
|
Author: G. Iadarola et al.
|
|
8
|
-
License: Apache
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://xsuite.readthedocs.io/
|
|
9
8
|
Project-URL: Bug Tracker, https://github.com/xsuite/xsuite/issues
|
|
10
9
|
Project-URL: Documentation, https://xsuite.readthedocs.io/
|
|
11
10
|
Project-URL: Source Code, https://github.com/xsuite/xtrack
|
|
11
|
+
Project-URL: Download, https://pypi.python.org/pypi/xtrack
|
|
12
|
+
Requires-Python: >=3.9
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
12
14
|
License-File: LICENSE
|
|
13
15
|
Requires-Dist: numpy>=1.0
|
|
14
16
|
Requires-Dist: pandas>=2.0
|
|
@@ -30,5 +32,8 @@ Provides-Extra: notebooks
|
|
|
30
32
|
Requires-Dist: jupyter; extra == "notebooks"
|
|
31
33
|
Requires-Dist: ipympl; extra == "notebooks"
|
|
32
34
|
Requires-Dist: xplt; extra == "notebooks"
|
|
35
|
+
Dynamic: license-file
|
|
33
36
|
|
|
34
|
-
|
|
37
|
+
# xtrack
|
|
38
|
+
|
|
39
|
+
Python package for tracking simulations in particle accelerators on CPU and GPU.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
build-backend = 'setuptools.build_meta'
|
|
3
|
+
requires = [
|
|
4
|
+
'setuptools>=77.0.0',
|
|
5
|
+
]
|
|
6
|
+
|
|
7
|
+
[project]
|
|
8
|
+
name = "xtrack"
|
|
9
|
+
dynamic = ["version"]
|
|
10
|
+
description = "Tracking library for particle accelerators"
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
requires-python = ">=3.9"
|
|
13
|
+
license = "Apache-2.0"
|
|
14
|
+
authors = [
|
|
15
|
+
{ name = "G. Iadarola et al." }
|
|
16
|
+
]
|
|
17
|
+
dependencies = [
|
|
18
|
+
"numpy>=1.0",
|
|
19
|
+
"pandas>=2.0",
|
|
20
|
+
"scipy",
|
|
21
|
+
"tqdm",
|
|
22
|
+
"requests",
|
|
23
|
+
"xobjects",
|
|
24
|
+
"xdeps",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
[project.urls]
|
|
28
|
+
"Homepage" = "https://xsuite.readthedocs.io/"
|
|
29
|
+
"Bug Tracker" = "https://github.com/xsuite/xsuite/issues"
|
|
30
|
+
"Documentation" = "https://xsuite.readthedocs.io/"
|
|
31
|
+
"Source Code" = "https://github.com/xsuite/xtrack"
|
|
32
|
+
"Download" = "https://pypi.python.org/pypi/xtrack"
|
|
33
|
+
|
|
34
|
+
[project.optional-dependencies]
|
|
35
|
+
tests = [
|
|
36
|
+
"cpymad",
|
|
37
|
+
"nafflib",
|
|
38
|
+
"PyHEADTAIL",
|
|
39
|
+
"pytest",
|
|
40
|
+
"pytest-mock",
|
|
41
|
+
"pymadng",
|
|
42
|
+
"requests-mock",
|
|
43
|
+
"tfs-pandas",
|
|
44
|
+
]
|
|
45
|
+
notebooks = [
|
|
46
|
+
"jupyter",
|
|
47
|
+
"ipympl",
|
|
48
|
+
"xplt"
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
[tool.setuptools.packages.find]
|
|
52
|
+
where = ["."]
|
|
53
|
+
include = ["xtrack", "ducktrack"]
|
|
54
|
+
|
|
55
|
+
[tool.setuptools.dynamic]
|
|
56
|
+
version = { attr = "xtrack._version.__version__" }
|
|
57
|
+
|
|
58
|
+
[tool.setuptools]
|
|
59
|
+
include-package-data = true
|
|
60
|
+
|
|
61
|
+
[project.entry-points.xobjects]
|
|
62
|
+
include = "xtrack"
|
|
63
|
+
|
|
64
|
+
[pytest]
|
|
65
|
+
markers = [
|
|
66
|
+
"context_dependent: marks test as one that depends on the execution context",
|
|
67
|
+
]
|
xtrack-0.97.0/setup.py
ADDED
|
@@ -61,9 +61,9 @@ def test_aperture_table():
|
|
|
61
61
|
aper_check = aper.rows['veba.20250.a_aper' : 'vebb.20270.b_aper']
|
|
62
62
|
|
|
63
63
|
assert np.all(aper_check.name == np.array(
|
|
64
|
-
['veba.20250.a_aper', '||
|
|
65
|
-
'veba.20250.b_aper', '||
|
|
66
|
-
'||
|
|
64
|
+
['veba.20250.a_aper', '||drift_976', 'mba.20250', '||drift_988',
|
|
65
|
+
'veba.20250.b_aper', '||drift_668', 'vebb.20270.a_aper',
|
|
66
|
+
'||drift_989', 'mbb.20270', '||drift_990', 'vebb.20270.b_aper']))
|
|
67
67
|
xo.assert_allclose(aper_check.s, np.array([
|
|
68
68
|
1225.8247 , 1225.8247 , 1226.0176907, 1232.2777093,
|
|
69
69
|
1232.4827 , 1232.4827 , 1232.4847 , 1232.4847 ,
|
|
@@ -26,7 +26,9 @@ def test_record_single_table(test_context):
|
|
|
26
26
|
extra_src = []
|
|
27
27
|
|
|
28
28
|
extra_src.append(r'''
|
|
29
|
-
|
|
29
|
+
#include "xtrack/headers/track.h"
|
|
30
|
+
|
|
31
|
+
GPUFUN
|
|
30
32
|
void TestElement_track_local_particle(TestElementData el, LocalParticle* part0){
|
|
31
33
|
|
|
32
34
|
// Extract the record and record_index
|
|
@@ -39,8 +41,7 @@ def test_record_single_table(test_context):
|
|
|
39
41
|
int64_t n_kicks = TestElementData_get_n_kicks(el);
|
|
40
42
|
//printf("n_kicks %d\n", (int)n_kicks);
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
44
45
|
for (int64_t i = 0; i < n_kicks; i++) {
|
|
45
46
|
double rr = 1e-6 * RandomUniform_generate(part);
|
|
46
47
|
LocalParticle_add_to_px(part, rr);
|
|
@@ -61,9 +62,7 @@ def test_record_single_table(test_context):
|
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
//end_per_particle_block
|
|
65
|
+
END_PER_PARTICLE_BLOCK;
|
|
67
66
|
}
|
|
68
67
|
''')
|
|
69
68
|
|
|
@@ -205,7 +204,9 @@ def test_record_with_twiss(test_context):
|
|
|
205
204
|
extra_src = []
|
|
206
205
|
|
|
207
206
|
extra_src.append(r'''
|
|
208
|
-
|
|
207
|
+
#include "xtrack/headers/track.h"
|
|
208
|
+
|
|
209
|
+
GPUFUN
|
|
209
210
|
void TestElement_track_local_particle(TestElementData el, LocalParticle* part0){
|
|
210
211
|
|
|
211
212
|
// Extract the record and record_index
|
|
@@ -218,8 +219,7 @@ def test_record_with_twiss(test_context):
|
|
|
218
219
|
int64_t n_kicks = TestElementData_get_n_kicks(el);
|
|
219
220
|
//printf("n_kicks %d\n", (int)n_kicks);
|
|
220
221
|
|
|
221
|
-
|
|
222
|
-
|
|
222
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
223
223
|
for (int64_t i = 0; i < n_kicks; i++) {
|
|
224
224
|
// We don't apply the kick, otherwise the twiss fails
|
|
225
225
|
double rr = 1e-6 * RandomUniform_generate(part);
|
|
@@ -240,9 +240,7 @@ def test_record_with_twiss(test_context):
|
|
|
240
240
|
}
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
//end_per_particle_block
|
|
243
|
+
END_PER_PARTICLE_BLOCK;
|
|
246
244
|
}
|
|
247
245
|
''')
|
|
248
246
|
|
|
@@ -308,7 +306,9 @@ def test_record_multiple_tables(test_context):
|
|
|
308
306
|
extra_src = []
|
|
309
307
|
|
|
310
308
|
extra_src.append(r'''
|
|
311
|
-
|
|
309
|
+
#include "xtrack/headers/track.h"
|
|
310
|
+
|
|
311
|
+
GPUFUN
|
|
312
312
|
void TestElement_track_local_particle(TestElementData el, LocalParticle* part0){
|
|
313
313
|
|
|
314
314
|
// Extract the record and record_index
|
|
@@ -327,8 +327,7 @@ def test_record_multiple_tables(test_context):
|
|
|
327
327
|
int64_t n_kicks = TestElementData_get_n_kicks(el);
|
|
328
328
|
// printf("n_kicks %d\n", (int)n_kicks);
|
|
329
329
|
|
|
330
|
-
|
|
331
|
-
|
|
330
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
332
331
|
// Record in table1 info about the ingoing particle
|
|
333
332
|
if (record){
|
|
334
333
|
// Get a slot in table1
|
|
@@ -372,8 +371,7 @@ def test_record_multiple_tables(test_context):
|
|
|
372
371
|
}
|
|
373
372
|
}
|
|
374
373
|
}
|
|
375
|
-
|
|
376
|
-
//end_per_particle_block
|
|
374
|
+
END_PER_PARTICLE_BLOCK;
|
|
377
375
|
}
|
|
378
376
|
''')
|
|
379
377
|
|
|
@@ -565,7 +563,9 @@ def test_record_standalone_mode(test_context):
|
|
|
565
563
|
extra_src = []
|
|
566
564
|
|
|
567
565
|
extra_src.append(r'''
|
|
568
|
-
|
|
566
|
+
#include "xtrack/headers/track.h"
|
|
567
|
+
|
|
568
|
+
GPUFUN
|
|
569
569
|
void TestElement_track_local_particle(TestElementData el, LocalParticle* part0){
|
|
570
570
|
|
|
571
571
|
// Extract the record and record_index
|
|
@@ -584,8 +584,7 @@ def test_record_standalone_mode(test_context):
|
|
|
584
584
|
int64_t n_kicks = TestElementData_get_n_kicks(el);
|
|
585
585
|
// printf("n_kicks %d\n", (int)n_kicks);
|
|
586
586
|
|
|
587
|
-
|
|
588
|
-
|
|
587
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
589
588
|
// Record in table1 info about the ingoing particle
|
|
590
589
|
if (record){
|
|
591
590
|
// Get a slot in table1
|
|
@@ -629,8 +628,7 @@ def test_record_standalone_mode(test_context):
|
|
|
629
628
|
}
|
|
630
629
|
}
|
|
631
630
|
}
|
|
632
|
-
|
|
633
|
-
//end_per_particle_block
|
|
631
|
+
END_PER_PARTICLE_BLOCK;
|
|
634
632
|
}
|
|
635
633
|
''')
|
|
636
634
|
|
|
@@ -542,34 +542,36 @@ def test_exciter(test_context):
|
|
|
542
542
|
|
|
543
543
|
|
|
544
544
|
test_source = r"""
|
|
545
|
-
|
|
545
|
+
#include "xtrack/headers/track.h"
|
|
546
|
+
|
|
547
|
+
GPUFUN
|
|
546
548
|
void test_function(TestElementData el,
|
|
547
549
|
LocalParticle* part0,
|
|
548
|
-
|
|
550
|
+
GPUGLMEM double* b){
|
|
549
551
|
|
|
550
552
|
double const a = TestElementData_get_a(el);
|
|
551
553
|
|
|
552
|
-
|
|
554
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
553
555
|
|
|
554
556
|
const int64_t ipart = part->ipart;
|
|
555
557
|
double const val = b[ipart];
|
|
556
558
|
|
|
557
559
|
LocalParticle_add_to_s(part, val + a);
|
|
558
560
|
|
|
559
|
-
|
|
561
|
+
END_PER_PARTICLE_BLOCK;
|
|
560
562
|
}
|
|
561
563
|
|
|
562
|
-
|
|
564
|
+
GPUFUN
|
|
563
565
|
void TestElement_track_local_particle(TestElementData el,
|
|
564
566
|
LocalParticle* part0){
|
|
565
567
|
|
|
566
568
|
double const a = TestElementData_get_a(el);
|
|
567
569
|
|
|
568
|
-
|
|
570
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
569
571
|
|
|
570
572
|
LocalParticle_set_s(part, a);
|
|
571
573
|
|
|
572
|
-
|
|
574
|
+
END_PER_PARTICLE_BLOCK;
|
|
573
575
|
}
|
|
574
576
|
|
|
575
577
|
"""
|
|
@@ -482,7 +482,7 @@ def test_assemble_ring():
|
|
|
482
482
|
== np.array([nn+'.cell.2' for nn in tt_cell.name[:-1]
|
|
483
483
|
if not nn.startswith('||drift')]))
|
|
484
484
|
assert np.all(tt_cell2.s == tt_cell.s)
|
|
485
|
-
tt_cell2_nodrift = tt_cell2.rows[~tt_cell2.rows.mask['\|\|drift.*']]
|
|
485
|
+
tt_cell2_nodrift = tt_cell2.rows[~tt_cell2.rows.mask[r'\|\|drift.*']]
|
|
486
486
|
assert tt_cell2_nodrift.isreplica[:-1].all()
|
|
487
487
|
assert tt_cell2['parent_name', 'mq.d.l.cell.2'] == 'mq.d.l'
|
|
488
488
|
assert tt_cell2['parent_name', 'mq.f.l.cell.2'] == 'mq.f.l'
|
|
@@ -907,7 +907,7 @@ def test_assemble_ring_builders():
|
|
|
907
907
|
assert np.all([nn for nn in tt_cell2.name[:-1] if not nn.startswith('||drift')]
|
|
908
908
|
== np.array([nn + '.cell.2' for nn in tt_cell.name[:-1] if not nn.startswith('||drift')]))
|
|
909
909
|
assert np.all(tt_cell2.s == tt_cell.s)
|
|
910
|
-
tt_cell2_nodrift = tt_cell2.rows[~tt_cell2.rows.mask['\|\|drift.*']]
|
|
910
|
+
tt_cell2_nodrift = tt_cell2.rows[~tt_cell2.rows.mask[r'\|\|drift.*']]
|
|
911
911
|
assert tt_cell2_nodrift.isreplica[:-1].all()
|
|
912
912
|
assert tt_cell2['parent_name', 'mq.d.l.cell.2'] == 'mq.d.l'
|
|
913
913
|
assert tt_cell2['parent_name', 'mq.f.l.cell.2'] == 'mq.f.l'
|
|
@@ -115,5 +115,5 @@ def test_native_madloader_sps():
|
|
|
115
115
|
xo.assert_allclose(twtest.wy_chrom[-1], twref.wy_chrom[-1], rtol=1e-4, atol=0)
|
|
116
116
|
xo.assert_allclose(twtest.ax_chrom[-1], twref.ax_chrom[-1], rtol=1e-4, atol=0)
|
|
117
117
|
xo.assert_allclose(twtest.ay_chrom[-1], twref.ay_chrom[-1], rtol=1e-4, atol=0)
|
|
118
|
-
xo.assert_allclose(twtest.dqx, twref.dqx, rtol=
|
|
119
|
-
xo.assert_allclose(twtest.dqy, twref.dqy, rtol=
|
|
118
|
+
xo.assert_allclose(twtest.dqx, twref.dqx, rtol=2e-4, atol=0)
|
|
119
|
+
xo.assert_allclose(twtest.dqy, twref.dqy, rtol=2e-4, atol=0)
|
|
@@ -20,18 +20,19 @@ def test_check_is_active_sorting_openmp():
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
_extra_c_sources = ["""
|
|
23
|
+
#include "xtrack/headers/track.h"
|
|
23
24
|
#define XT_OMP_SKIP_REORGANIZE
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
GPUFUN
|
|
26
27
|
void TestElement_track_local_particle(
|
|
27
28
|
TestElementData el,
|
|
28
29
|
LocalParticle* part0
|
|
29
30
|
) {
|
|
30
|
-
|
|
31
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
31
32
|
int64_t state = check_is_active(part);
|
|
32
33
|
int64_t id = LocalParticle_get_particle_id(part);
|
|
33
34
|
TestElementData_set_states(el, id, state);
|
|
34
|
-
|
|
35
|
+
END_PER_PARTICLE_BLOCK;
|
|
35
36
|
}
|
|
36
37
|
"""]
|
|
37
38
|
|
|
@@ -96,16 +97,18 @@ def test_check_is_active_sorting_cpu_default(test_context):
|
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
_extra_c_sources = ["""
|
|
99
|
-
|
|
100
|
+
#include "xtrack/headers/track.h"
|
|
101
|
+
|
|
102
|
+
GPUFUN
|
|
100
103
|
void TestElement_track_local_particle(
|
|
101
104
|
TestElementData el,
|
|
102
105
|
LocalParticle* part0
|
|
103
106
|
) {
|
|
104
|
-
|
|
107
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
105
108
|
int64_t state = check_is_active(part);
|
|
106
109
|
int64_t id = LocalParticle_get_particle_id(part);
|
|
107
110
|
TestElementData_set_states(el, id, state);
|
|
108
|
-
|
|
111
|
+
END_PER_PARTICLE_BLOCK;
|
|
109
112
|
}
|
|
110
113
|
"""]
|
|
111
114
|
|
|
@@ -345,14 +345,16 @@ def test_LocalParticle_add_to_energy(test_context):
|
|
|
345
345
|
'pz_only': xo.Int64,
|
|
346
346
|
}
|
|
347
347
|
_extra_c_sources = ['''
|
|
348
|
-
|
|
348
|
+
#include "xtrack/headers/track.h"
|
|
349
|
+
|
|
350
|
+
GPUFUN
|
|
349
351
|
void TestElement_track_local_particle(
|
|
350
352
|
TestElementData el, LocalParticle* part0){
|
|
351
353
|
double const value = TestElementData_get_value(el);
|
|
352
354
|
int const pz_only = (int) TestElementData_get_pz_only(el);
|
|
353
|
-
|
|
355
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
354
356
|
LocalParticle_add_to_energy(part, value, pz_only);
|
|
355
|
-
|
|
357
|
+
END_PER_PARTICLE_BLOCK;
|
|
356
358
|
}
|
|
357
359
|
''']
|
|
358
360
|
|
|
@@ -419,13 +421,15 @@ def test_LocalParticle_update_delta(test_context):
|
|
|
419
421
|
}
|
|
420
422
|
|
|
421
423
|
_extra_c_sources =['''
|
|
422
|
-
|
|
424
|
+
#include "xtrack/headers/track.h"
|
|
425
|
+
|
|
426
|
+
GPUFUN
|
|
423
427
|
void TestElement_track_local_particle(
|
|
424
428
|
TestElementData el, LocalParticle* part0){
|
|
425
429
|
double const value = TestElementData_get_value(el);
|
|
426
|
-
|
|
430
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
427
431
|
LocalParticle_update_delta(part, value);
|
|
428
|
-
|
|
432
|
+
END_PER_PARTICLE_BLOCK;
|
|
429
433
|
}
|
|
430
434
|
''']
|
|
431
435
|
|
|
@@ -460,13 +464,15 @@ def test_LocalParticle_update_ptau(test_context):
|
|
|
460
464
|
}
|
|
461
465
|
|
|
462
466
|
_extra_c_sources = ['''
|
|
463
|
-
|
|
467
|
+
#include "xtrack/headers/track.h"
|
|
468
|
+
|
|
469
|
+
GPUFUN
|
|
464
470
|
void TestElement_track_local_particle(
|
|
465
471
|
TestElementData el, LocalParticle* part0){
|
|
466
472
|
double const value = TestElementData_get_value(el);
|
|
467
|
-
|
|
473
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
468
474
|
LocalParticle_update_ptau(part, value);
|
|
469
|
-
|
|
475
|
+
END_PER_PARTICLE_BLOCK;
|
|
470
476
|
}
|
|
471
477
|
''']
|
|
472
478
|
|
|
@@ -500,14 +506,16 @@ def test_LocalParticle_update_pzeta(test_context):
|
|
|
500
506
|
'value': xo.Float64,
|
|
501
507
|
}
|
|
502
508
|
_extra_c_sources = ['''
|
|
503
|
-
|
|
509
|
+
#include "xtrack/headers/track.h"
|
|
510
|
+
|
|
511
|
+
GPUFUN
|
|
504
512
|
void TestElement_track_local_particle(
|
|
505
513
|
TestElementData el, LocalParticle* part0){
|
|
506
514
|
double const value = TestElementData_get_value(el);
|
|
507
|
-
|
|
515
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
508
516
|
double const pzeta = LocalParticle_get_pzeta(part);
|
|
509
517
|
LocalParticle_update_pzeta(part, pzeta+value);
|
|
510
|
-
|
|
518
|
+
END_PER_PARTICLE_BLOCK;
|
|
511
519
|
}
|
|
512
520
|
''']
|
|
513
521
|
|
|
@@ -543,13 +551,15 @@ def test_LocalParticle_update_p0c(test_context):
|
|
|
543
551
|
'value': xo.Float64,
|
|
544
552
|
}
|
|
545
553
|
_extra_c_sources = ['''
|
|
546
|
-
|
|
554
|
+
#include "xtrack/headers/track.h"
|
|
555
|
+
|
|
556
|
+
GPUFUN
|
|
547
557
|
void TestElement_track_local_particle(
|
|
548
558
|
TestElementData el, LocalParticle* part0){
|
|
549
559
|
double const value = TestElementData_get_value(el);
|
|
550
|
-
|
|
560
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
551
561
|
LocalParticle_update_p0c(part, value);
|
|
552
|
-
|
|
562
|
+
END_PER_PARTICLE_BLOCK;
|
|
553
563
|
}
|
|
554
564
|
''']
|
|
555
565
|
|
|
@@ -590,18 +600,20 @@ def test_LocalParticle_angles(test_context):
|
|
|
590
600
|
'scale_y2': xo.Float64,
|
|
591
601
|
}
|
|
592
602
|
_extra_c_sources = ['''
|
|
593
|
-
|
|
603
|
+
#include "xtrack/headers/track.h"
|
|
604
|
+
|
|
605
|
+
GPUFUN
|
|
594
606
|
void ScaleAng_track_local_particle(
|
|
595
607
|
ScaleAngData el, LocalParticle* part0){
|
|
596
608
|
double const scale_x = ScaleAngData_get_scale_x(el);
|
|
597
609
|
double const scale_y = ScaleAngData_get_scale_y(el);
|
|
598
610
|
double const scale_x2 = ScaleAngData_get_scale_x2(el);
|
|
599
611
|
double const scale_y2 = ScaleAngData_get_scale_y2(el);
|
|
600
|
-
|
|
612
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
601
613
|
LocalParticle_scale_xp(part, scale_x);
|
|
602
614
|
LocalParticle_scale_yp(part, scale_y);
|
|
603
615
|
LocalParticle_scale_xp_yp(part, scale_x2, scale_y2);
|
|
604
|
-
|
|
616
|
+
END_PER_PARTICLE_BLOCK;
|
|
605
617
|
}
|
|
606
618
|
''']
|
|
607
619
|
|
|
@@ -613,18 +625,20 @@ def test_LocalParticle_angles(test_context):
|
|
|
613
625
|
'kick_y2': xo.Float64,
|
|
614
626
|
}
|
|
615
627
|
_extra_c_sources = ['''
|
|
616
|
-
|
|
628
|
+
#include "xtrack/headers/track.h"
|
|
629
|
+
|
|
630
|
+
GPUFUN
|
|
617
631
|
void KickAng_track_local_particle(
|
|
618
632
|
KickAngData el, LocalParticle* part0){
|
|
619
633
|
double const kick_x = KickAngData_get_kick_x(el);
|
|
620
634
|
double const kick_y = KickAngData_get_kick_y(el);
|
|
621
635
|
double const kick_x2 = KickAngData_get_kick_x2(el);
|
|
622
636
|
double const kick_y2 = KickAngData_get_kick_y2(el);
|
|
623
|
-
|
|
637
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
624
638
|
LocalParticle_add_to_xp(part, kick_x);
|
|
625
639
|
LocalParticle_add_to_yp(part, kick_y);
|
|
626
640
|
LocalParticle_add_to_xp_yp(part, kick_x2, kick_y2);
|
|
627
|
-
|
|
641
|
+
END_PER_PARTICLE_BLOCK;
|
|
628
642
|
}
|
|
629
643
|
''']
|
|
630
644
|
|
|
@@ -648,18 +662,20 @@ def test_LocalParticle_angles(test_context):
|
|
|
648
662
|
'scale_y2': xo.Float64,
|
|
649
663
|
}
|
|
650
664
|
_extra_c_sources = ['''
|
|
651
|
-
|
|
665
|
+
#include "xtrack/headers/track.h"
|
|
666
|
+
|
|
667
|
+
GPUFUN
|
|
652
668
|
void ScaleAngExact_track_local_particle(
|
|
653
669
|
ScaleAngExactData el, LocalParticle* part0){
|
|
654
670
|
double const scale_x = ScaleAngExactData_get_scale_x(el);
|
|
655
671
|
double const scale_y = ScaleAngExactData_get_scale_y(el);
|
|
656
672
|
double const scale_x2 = ScaleAngExactData_get_scale_x2(el);
|
|
657
673
|
double const scale_y2 = ScaleAngExactData_get_scale_y2(el);
|
|
658
|
-
|
|
674
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
659
675
|
LocalParticle_scale_exact_xp(part, scale_x);
|
|
660
676
|
LocalParticle_scale_exact_yp(part, scale_y);
|
|
661
677
|
LocalParticle_scale_exact_xp_yp(part, scale_x2, scale_y2);
|
|
662
|
-
|
|
678
|
+
END_PER_PARTICLE_BLOCK;
|
|
663
679
|
}
|
|
664
680
|
''']
|
|
665
681
|
|
|
@@ -671,18 +687,20 @@ def test_LocalParticle_angles(test_context):
|
|
|
671
687
|
'kick_y2': xo.Float64,
|
|
672
688
|
}
|
|
673
689
|
_extra_c_sources = ['''
|
|
674
|
-
|
|
690
|
+
#include "xtrack/headers/track.h"
|
|
691
|
+
|
|
692
|
+
GPUFUN
|
|
675
693
|
void KickAngExact_track_local_particle(
|
|
676
694
|
KickAngExactData el, LocalParticle* part0){
|
|
677
695
|
double const kick_x = KickAngExactData_get_kick_x(el);
|
|
678
696
|
double const kick_y = KickAngExactData_get_kick_y(el);
|
|
679
697
|
double const kick_x2 = KickAngExactData_get_kick_x2(el);
|
|
680
698
|
double const kick_y2 = KickAngExactData_get_kick_y2(el);
|
|
681
|
-
|
|
699
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
682
700
|
LocalParticle_add_to_exact_xp(part, kick_x);
|
|
683
701
|
LocalParticle_add_to_exact_yp(part, kick_y);
|
|
684
702
|
LocalParticle_add_to_exact_xp_yp(part, kick_x2, kick_y2);
|
|
685
|
-
|
|
703
|
+
END_PER_PARTICLE_BLOCK;
|
|
686
704
|
}
|
|
687
705
|
''']
|
|
688
706
|
|
|
@@ -31,13 +31,15 @@ def test_random_generation(test_context, generator):
|
|
|
31
31
|
|
|
32
32
|
_extra_c_sources = [
|
|
33
33
|
'''
|
|
34
|
-
|
|
34
|
+
#include "xtrack/headers/track.h"
|
|
35
|
+
|
|
36
|
+
GPUFUN
|
|
35
37
|
void TestElement_track_local_particle(
|
|
36
38
|
TestElementData el, LocalParticle* part0){
|
|
37
|
-
|
|
39
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
38
40
|
double rr = !!GENERATOR!!_generate(part);
|
|
39
41
|
LocalParticle_set_x(part, rr);
|
|
40
|
-
|
|
42
|
+
END_PER_PARTICLE_BLOCK;
|
|
41
43
|
}
|
|
42
44
|
'''.replace('!!GENERATOR!!', generator)
|
|
43
45
|
]
|
|
@@ -29,13 +29,15 @@ def test_random_generation(test_context):
|
|
|
29
29
|
|
|
30
30
|
_extra_c_sources = [
|
|
31
31
|
'''
|
|
32
|
-
|
|
32
|
+
#include "xtrack/headers/track.h"
|
|
33
|
+
|
|
34
|
+
GPUFUN
|
|
33
35
|
void TestElement_track_local_particle(
|
|
34
36
|
TestElementData el, LocalParticle* part0){
|
|
35
|
-
|
|
37
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
36
38
|
double rr = RandomExponential_generate(part);
|
|
37
39
|
LocalParticle_set_x(part, rr);
|
|
38
|
-
|
|
40
|
+
END_PER_PARTICLE_BLOCK;
|
|
39
41
|
}
|
|
40
42
|
'''
|
|
41
43
|
]
|
|
@@ -28,13 +28,15 @@ def test_random_generation(test_context):
|
|
|
28
28
|
|
|
29
29
|
_extra_c_sources = [
|
|
30
30
|
'''
|
|
31
|
-
|
|
31
|
+
#include "xtrack/headers/track.h"
|
|
32
|
+
|
|
33
|
+
GPUFUN
|
|
32
34
|
void TestElement_track_local_particle(
|
|
33
35
|
TestElementData el, LocalParticle* part0){
|
|
34
|
-
|
|
36
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
35
37
|
double rr = RandomNormal_generate(part);
|
|
36
38
|
LocalParticle_set_x(part, rr);
|
|
37
|
-
|
|
39
|
+
END_PER_PARTICLE_BLOCK;
|
|
38
40
|
}
|
|
39
41
|
'''
|
|
40
42
|
]
|
|
@@ -36,14 +36,16 @@ def test_random_generation(test_context):
|
|
|
36
36
|
|
|
37
37
|
_extra_c_sources = [
|
|
38
38
|
'''
|
|
39
|
-
|
|
39
|
+
#include "xtrack/headers/track.h"
|
|
40
|
+
|
|
41
|
+
GPUFUN
|
|
40
42
|
void TestElement_track_local_particle(
|
|
41
43
|
TestElementData el, LocalParticle* part0){
|
|
42
44
|
RandomRutherfordData rng = TestElementData_getp_rng(el);
|
|
43
|
-
|
|
45
|
+
START_PER_PARTICLE_BLOCK(part0, part);
|
|
44
46
|
double rr = RandomRutherford_generate(rng, part);
|
|
45
47
|
LocalParticle_set_x(part, rr);
|
|
46
|
-
|
|
48
|
+
END_PER_PARTICLE_BLOCK;
|
|
47
49
|
}
|
|
48
50
|
'''
|
|
49
51
|
]
|