xtrack 0.98.3__tar.gz → 0.98.4__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.98.3/xtrack.egg-info → xtrack-0.98.4}/PKG-INFO +1 -1
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_environment.py +147 -0
- xtrack-0.98.4/xtrack/_version.py +1 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/builder.py +9 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/environment.py +0 -1
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/line.py +6 -5
- {xtrack-0.98.3 → xtrack-0.98.4/xtrack.egg-info}/PKG-INFO +1 -1
- xtrack-0.98.3/xtrack/_version.py +0 -1
- {xtrack-0.98.3 → xtrack-0.98.4}/LICENSE +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/MANIFEST.in +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/README.md +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/base_classes.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/BB6D.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/beambeam.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/boost.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/qgauss.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/slicing.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/be_beamfields/spacecharge.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/elements.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/line.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/mathlibs.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/particles.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/ducktrack/temp_pyparticles.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/pyproject.toml +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/setup.cfg +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/setup.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_acceleration.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_acdipole.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_acdipole_twiss.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_amplitude_detuning.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_aperture_polygon.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_aperture_table.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_aperture_turn_ele_and_monitor.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_apertures.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_attr_replicas_and_slices.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_boris_spatial.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_bucket_with_ref_energy_change.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_cavity_absolute_time.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_chromatic_functions_vs_madx.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_coasting.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_collective_tracker.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_collimation.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_coupling_edwards_teng.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_electron_cooler.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_element_characterization_functions.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_element_internal_record.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_elements.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_elements_classflags.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_elements_thick.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_fcc_ee_solenoid_correction.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_footprint.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_freeze_longitudinal.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_full_rings.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_h6_sps_beamline.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_hvkick.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_ions.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_json.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_lhc_env.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_lhc_match_phase_15.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_line.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_load.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_load_vars.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_lumi.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_mad_writer.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_madloader.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_madnginterface.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_magnet.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_match_and_track_from_element.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_match_coupling_knob.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_match_nested.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_match_optics_and_ip_knob.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_match_orbit_bump.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_match_tune_chroma_cminus.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_misalign.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_monitor.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_multi_bunch_gauss.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_multiline.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_multisetter.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_multispecies.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_native_madloader.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_native_madloader_lhc.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_native_madloader_lhc_thin.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_native_madloader_ps.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_native_madloader_sps.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_native_madloader_ti2.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_optimize_for_tracking.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_particles.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_particles_basics.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_particles_pdg.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_pipeline.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_prebuild_kernels.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_ps_against_ptc.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_ps_multiturn_twiss.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_psb_chicane.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_pyht_interface.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_quadrupole_fringe_ptc.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_quadrupole_wedge.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_radial_steering.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_radiation.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_radiation_equilibrium_emittances.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_radiation_equilibrium_emittances_thick.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_radiation_integrals.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_random_gen.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_random_gen_exp.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_random_gen_gauss.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_random_gen_ruth.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_rbend_straight_body.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_rf_track.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_rotation_signs.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_second_order_taylor_map.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_seeds.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_slice_and_insert_with_replicas.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_slice_elements.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_slicing.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_solenoid_bz_map_vs_boris.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_solenoid_bz_map_vs_boris_legacy.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_spacecharge_in_ring.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_spin.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_sps_thick_cpymad_loader.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_sps_thick_native_loader.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_survey.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_tapering.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_thick_kickers_rf_crab.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_thick_lhc.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_tilt_shifts.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_tracker.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_trajectory_correcton.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_twiss.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_twiss_to_file.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_twiss_vs_madx_psb.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_vs_madx.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/tests/test_xmask_orbit_correction.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/lhc_match/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/lhc_match/var_limits.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/python_lattice_writer/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/_temp/python_lattice_writer/lattice_py_generation.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/aperture_meas.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/base_element.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/acdipole.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/apertures.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/beam_interaction.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/_generate_slice_elements_c_code.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/_include_integrator.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/acdipole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/bend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/cavity.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/crab_cavity.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/default_magnet_config.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/dipole_fringe.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_exact.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_exact_slice.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice_cavity.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice_crab_cavity.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice_multipole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice_rbend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/drift_slice_uniform_solenoid.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/electroncooler.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/elens.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/exciter.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/legacy_solenoid.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/magnet.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/magnet_drift.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/magnet_edge.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/magnet_kick.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/marker.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/misalignment.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/multipole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/multipoleedge.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/octupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/rbend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/slnd.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/srotation.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/temprf.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thick_slice_cavity.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thick_slice_crab_cavity.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thick_slice_multipole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thick_slice_rbend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thick_slice_uniform_solenoid.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_cavity.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_crab_cavity.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_multipole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_octupole_entry.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_octupole_exit.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_entry.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_quadrupole_exit.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_rbend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_rbend_entry.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_rbend_exit.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_sextupole_entry.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_sextupole_exit.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_entry.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/thin_slice_uniform_solenoid_exit.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_acdipole.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_dipole_fringe.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_drift.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_legacy_solenoid.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_legacy_solenoid_multipolar_components.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_legacy_solenoid_radiation.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_magnet.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_magnet.template.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_magnet_configure.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_magnet_drift.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_magnet_edge.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_magnet_kick.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_magnet_radiation.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_misalignments.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_mult_fringe.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_rf.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_rf.template.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_wedge.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_xyshift.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/variable_solenoid.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/wedge.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/wire.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/exciter.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/rft_element.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/slice_base.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/slice_elements_drift.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/slice_elements_edge.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/slice_elements_thick.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/beam_elements/slice_elements_thin.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/boris.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/footprint.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/functions.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/general.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/headers/atomicadd.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/headers/checks.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/headers/constants.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/headers/particle_states.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/headers/synrad_spectrum.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/headers/track.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/headers/track_local_particle_with_transformations.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/internal_record.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/json.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/linear_normal_form.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/load.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/loss_location_refinement/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/lumi.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/mad_loader.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/mad_parser/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/mad_parser/loader.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/mad_parser/madx.lark +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/mad_parser/parse.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/mad_writer.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/madng_interface.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/match.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/beam_position_monitor.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/beam_position_monitor.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/beam_profile_monitor.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/beam_profile_monitor.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/beam_size_monitor.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/beam_size_monitor.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/last_turns_monitor.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/last_turns_monitor.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/particles_monitor.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/monitors/particles_monitor.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/multiline.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/multiline_legacy/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/multiline_legacy/multiline_legacy.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/multiline_legacy/shared_knobs.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/multisetter/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/multisetter/multisetter.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/multisetter/multisetter.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/particles/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/particles/constants.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/particles/local_particle_custom_api.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/particles/masses.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/particles/particles.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/particles/pdg.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/particles/rng_src/base_rng.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/particles/rng_src/particles_rng.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/pipeline/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/pipeline/core.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/pipeline/manager.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/pipeline/multitracker.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/prebuilt_kernel_definitions/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/prebuilt_kernel_definitions/element_inits.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/prebuilt_kernel_definitions/element_types.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/progress_indicator.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/random/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/random/random_generators.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/random/random_src/exponential.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/random/random_src/normal.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/random/random_src/rutherford.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/random/random_src/uniform.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/random/random_src/uniform_accurate.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/slicing.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/survey.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/svgutils/__init__.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/svgutils/parser.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/svgutils/path.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/svgutils/svgutils.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/synctime.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/table.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/tapering.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/targets.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/track_flags.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/tracker.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/tracker_data.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/tracker_src/tracker.h +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/trajectory_correction.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/twiss.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/twissplot.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack/view.py +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack.egg-info/SOURCES.txt +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack.egg-info/dependency_links.txt +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack.egg-info/entry_points.txt +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack.egg-info/requires.txt +0 -0
- {xtrack-0.98.3 → xtrack-0.98.4}/xtrack.egg-info/top_level.txt +0 -0
|
@@ -2003,6 +2003,50 @@ def test_copy_element_from_other_env():
|
|
|
2003
2003
|
assert env2['quad/env2'].knl[0] == 0
|
|
2004
2004
|
assert env2['quad/env2'].knl[1] == 8
|
|
2005
2005
|
|
|
2006
|
+
def test_import_line_matrix_attribute():
|
|
2007
|
+
|
|
2008
|
+
apert = xt.LongitudinalLimitRect(
|
|
2009
|
+
min_zeta = -1e-3,
|
|
2010
|
+
max_zeta = 1e-3,
|
|
2011
|
+
min_pzeta = -1e-3,
|
|
2012
|
+
max_pzeta = 1e-3)
|
|
2013
|
+
tmap = xt.FirstOrderTaylorMap(
|
|
2014
|
+
length=0,
|
|
2015
|
+
m0=[ 2.3e-3, 3.07e-04, 0, 0,
|
|
2016
|
+
-2.06e-5, 0],
|
|
2017
|
+
m1=[[ 1, -6.1e-5, 0,
|
|
2018
|
+
0, 0, -2.3e-3],
|
|
2019
|
+
[ 5.2e-7, 9.9e-1, 0,
|
|
2020
|
+
0, 0, 1.0e-7],
|
|
2021
|
+
[ 0, 0, 1,
|
|
2022
|
+
2.0e-5, 0, 0],
|
|
2023
|
+
[ 0, 0, 0,
|
|
2024
|
+
1, 0, 0],
|
|
2025
|
+
[-1.0e-7, -2.3e-3, 0,
|
|
2026
|
+
0, 1, 4.1e-5],
|
|
2027
|
+
[ 0, 0, 0,
|
|
2028
|
+
0, 0, 1]]
|
|
2029
|
+
)
|
|
2030
|
+
line = xt.Line(
|
|
2031
|
+
elements=[apert, tmap],
|
|
2032
|
+
element_names=['apert', 'taylor_map']
|
|
2033
|
+
)
|
|
2034
|
+
|
|
2035
|
+
line['a'] = 10
|
|
2036
|
+
line['taylor_map'].m1[2, 1]= 'a'
|
|
2037
|
+
|
|
2038
|
+
assert line['taylor_map'].m1[2, 1] == 10
|
|
2039
|
+
line['a'] = 15
|
|
2040
|
+
assert line['taylor_map'].m1[2, 1] == 15
|
|
2041
|
+
|
|
2042
|
+
env = xt.Environment()
|
|
2043
|
+
env.import_line(line, suffix_for_common_elements='', line_name='line_env')
|
|
2044
|
+
assert env['a'] == 15
|
|
2045
|
+
assert env['taylor_map'].m1[2, 1] == 15
|
|
2046
|
+
|
|
2047
|
+
env['a'] = 20
|
|
2048
|
+
assert env['taylor_map'].m1[2, 1] == 20
|
|
2049
|
+
|
|
2006
2050
|
|
|
2007
2051
|
def test_insert_repeated_elements():
|
|
2008
2052
|
|
|
@@ -4192,3 +4236,106 @@ def test_rename_var():
|
|
|
4192
4236
|
assert str(env.ref['cc']._expr) == "(2.0 * vars['aa'])"
|
|
4193
4237
|
assert str(env.ref['mb'].angle._expr) == "(vars['cc'] * 0.001)"
|
|
4194
4238
|
assert str(env.ref['mb'].knl[1]._expr) == "(3.0 * vars['cc'])"
|
|
4239
|
+
|
|
4240
|
+
def test_parametric_line_update():
|
|
4241
|
+
|
|
4242
|
+
env = xt.Environment()
|
|
4243
|
+
env.particle_ref = xt.Particles(kinetic_energy0=2.86e9, mass0 = xt.ELECTRON_MASS_EV)
|
|
4244
|
+
|
|
4245
|
+
env['l_cell'] = 5.00 # cell length is 5 m
|
|
4246
|
+
env['l_bend'] = 1.50 # length of bend (along arc using sector bends)
|
|
4247
|
+
env['l_quad'] = 0.40 # length of quads
|
|
4248
|
+
env['l_drift'] = '(l_cell - 2*l_bend - 2*l_quad)/4.' # remaining length for drifts
|
|
4249
|
+
print( f"Initial value of env['l_drift'] ={env['l_drift']:6.3f}" )
|
|
4250
|
+
|
|
4251
|
+
env['alfB'] = np.pi/20 # 20 cells each with two bends in 100 m ring
|
|
4252
|
+
env['kQf'] = 0.7
|
|
4253
|
+
env['kQd'] = -0.7
|
|
4254
|
+
|
|
4255
|
+
# Definition of elements and two ways to define a FODO cell
|
|
4256
|
+
env.new('drift', xt.Drift, length='l_drift')
|
|
4257
|
+
env.new('mb', xt.Bend, length='l_bend', angle='alfB', k0_from_h=True,
|
|
4258
|
+
edge_entry_angle='alfB/2', edge_exit_angle='alfB/2') # shoild be kind of RBend
|
|
4259
|
+
|
|
4260
|
+
env.new('mQf', xt.Quadrupole, length='l_quad', k1='kQf')
|
|
4261
|
+
env.new('mQd', xt.Quadrupole, length='l_quad', k1='kQd')
|
|
4262
|
+
|
|
4263
|
+
cell_line = env.new_line( components =[ # analogeous to MAD LINE
|
|
4264
|
+
env.place('mQf'), env.place('drift'), env.place('mb'), env.place('drift'),
|
|
4265
|
+
env.place('mQd'), env.place('drift'), env.place('mb'), env.place('drift'),
|
|
4266
|
+
])
|
|
4267
|
+
|
|
4268
|
+
cell_sequ1 = env.new_line( length='l_cell', components =[ # analogeous to MAD Sequence
|
|
4269
|
+
env.place('mQf', at='0*l_drift + 0.5*l_quad + 0.0*l_bend'),
|
|
4270
|
+
env.place('mb', at='1*l_drift + 1.0*l_quad + 0.5*l_bend'),
|
|
4271
|
+
env.place('mQd', at='2*l_drift + 1.5*l_quad + 1.0*l_bend'),
|
|
4272
|
+
env.place('mb', at='3*l_drift + 2.0*l_quad + 1.5*l_bend'),
|
|
4273
|
+
])
|
|
4274
|
+
|
|
4275
|
+
cell_sequ2 = env.new_line( length='l_cell', components =[ # analogeous to MAD Sequence
|
|
4276
|
+
env.place('mQf', at='0*(l_cell - 2*l_bend - 2*l_quad)/4. + 0.5*l_quad + 0.0*l_bend'),
|
|
4277
|
+
env.place('mb', at='1*(l_cell - 2*l_bend - 2*l_quad)/4. + 1.0*l_quad + 0.5*l_bend'),
|
|
4278
|
+
env.place('mQd', at='2*(l_cell - 2*l_bend - 2*l_quad)/4. + 1.5*l_quad + 1.0*l_bend'),
|
|
4279
|
+
env.place('mb', at='3*(l_cell - 2*l_bend - 2*l_quad)/4. + 2.0*l_quad + 1.5*l_bend'),
|
|
4280
|
+
])
|
|
4281
|
+
|
|
4282
|
+
t_cell_line = cell_line.get_table()
|
|
4283
|
+
t_cell_sequ1 = cell_sequ1.get_table()
|
|
4284
|
+
t_cell_sequ2 = cell_sequ2.get_table()
|
|
4285
|
+
for tt in [t_cell_line, t_cell_sequ1, t_cell_sequ2]:
|
|
4286
|
+
xo.assert_allclose(tt.s, [0. , 0.4, 0.7, 2.2, 2.5, 2.9, 3.2, 4.7, 5. ],
|
|
4287
|
+
atol=1e-14)
|
|
4288
|
+
|
|
4289
|
+
env['l_quad'] = 0.30
|
|
4290
|
+
cell_sequ1.regenerate_from_composer()
|
|
4291
|
+
cell_sequ2.regenerate_from_composer()
|
|
4292
|
+
t_cell_line = cell_line.get_table()
|
|
4293
|
+
t_cell_sequ1 = cell_sequ1.get_table()
|
|
4294
|
+
t_cell_sequ2 = cell_sequ2.get_table()
|
|
4295
|
+
for tt in [t_cell_line, t_cell_sequ1, t_cell_sequ2]:
|
|
4296
|
+
xo.assert_allclose(tt.s, [0. , 0.3 , 0.65, 2.15, 2.5 , 2.8 , 3.15, 4.65, 5.],
|
|
4297
|
+
atol=1e-14)
|
|
4298
|
+
|
|
4299
|
+
# back to original
|
|
4300
|
+
env['l_quad'] = 0.40
|
|
4301
|
+
cell_sequ1.regenerate_from_composer()
|
|
4302
|
+
cell_sequ2.regenerate_from_composer()
|
|
4303
|
+
t_cell_line = cell_line.get_table()
|
|
4304
|
+
t_cell_sequ1 = cell_sequ1.get_table()
|
|
4305
|
+
t_cell_sequ2 = cell_sequ2.get_table()
|
|
4306
|
+
for tt in [t_cell_line, t_cell_sequ1, t_cell_sequ2]:
|
|
4307
|
+
xo.assert_allclose(tt.s, [0. , 0.4, 0.7, 2.2, 2.5, 2.9, 3.2, 4.7, 5. ],
|
|
4308
|
+
atol=1e-14)
|
|
4309
|
+
|
|
4310
|
+
# increased cell length
|
|
4311
|
+
env['l_cell'] = 5.50
|
|
4312
|
+
cell_sequ1.regenerate_from_composer()
|
|
4313
|
+
cell_sequ2.regenerate_from_composer()
|
|
4314
|
+
t_cell_line = cell_line.get_table()
|
|
4315
|
+
t_cell_sequ1 = cell_sequ1.get_table()
|
|
4316
|
+
t_cell_sequ2 = cell_sequ2.get_table()
|
|
4317
|
+
for tt in [t_cell_line, t_cell_sequ1, t_cell_sequ2]:
|
|
4318
|
+
xo.assert_allclose(tt.s,
|
|
4319
|
+
[0. , 0.4 , 0.825, 2.325, 2.75 , 3.15 , 3.575, 5.075, 5.5 ],
|
|
4320
|
+
atol=1e-14)
|
|
4321
|
+
|
|
4322
|
+
def test_str_in_composer_to_dict_from_dict():
|
|
4323
|
+
env = xt.Environment()
|
|
4324
|
+
|
|
4325
|
+
line = env.new_line(components=[
|
|
4326
|
+
env.new('q1', 'Quadrupole', length=1.0, at=2),
|
|
4327
|
+
'q1',
|
|
4328
|
+
'q1']
|
|
4329
|
+
)
|
|
4330
|
+
assert isinstance(line.composer.components[0], xt.Place)
|
|
4331
|
+
assert line.composer.components[0].name == 'q1'
|
|
4332
|
+
assert line.composer.components[0].at == 2
|
|
4333
|
+
assert line.composer.components[1] == 'q1'
|
|
4334
|
+
assert line.composer.components[2] == 'q1'
|
|
4335
|
+
|
|
4336
|
+
line2 = xt.Line.from_dict(line.to_dict())
|
|
4337
|
+
assert isinstance(line2.composer.components[0], xt.Place)
|
|
4338
|
+
assert line2.composer.components[0].name == 'q1'
|
|
4339
|
+
assert line2.composer.components[0].at == 2
|
|
4340
|
+
assert line2.composer.components[1] == 'q1'
|
|
4341
|
+
assert line2.composer.components[2] == 'q1'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.98.4'
|
|
@@ -154,6 +154,11 @@ class Builder:
|
|
|
154
154
|
formatter = xd.refs.CompactFormatter(scope=None)
|
|
155
155
|
|
|
156
156
|
for cc in self.components:
|
|
157
|
+
|
|
158
|
+
if isinstance(cc, str):
|
|
159
|
+
dct['components'].append(cc)
|
|
160
|
+
continue
|
|
161
|
+
|
|
157
162
|
if not isinstance(cc, xt.Place):
|
|
158
163
|
raise NotImplementedError('Only Place components are implemented for now')
|
|
159
164
|
|
|
@@ -211,6 +216,10 @@ class Builder:
|
|
|
211
216
|
out = cls(env=env)
|
|
212
217
|
components = dct.pop('components')
|
|
213
218
|
for cc in components:
|
|
219
|
+
if isinstance(cc, str):
|
|
220
|
+
out.components.append(cc)
|
|
221
|
+
continue
|
|
222
|
+
|
|
214
223
|
if isinstance(cc['name'], dict):
|
|
215
224
|
assert cc['name']['__class__'] == 'Line'
|
|
216
225
|
name = xt.Line.from_dict(cc['name'], _env=env)
|
|
@@ -57,7 +57,7 @@ from .general import _print
|
|
|
57
57
|
|
|
58
58
|
log = logging.getLogger(__name__)
|
|
59
59
|
|
|
60
|
-
_ALLOWED_ELEMENT_TYPES_IN_NEW
|
|
60
|
+
_ALLOWED_ELEMENT_TYPES_IN_NEW = [
|
|
61
61
|
xt.Drift, xt.DriftExact,
|
|
62
62
|
xt.Magnet, xt.Replica, xt.Marker,
|
|
63
63
|
xt.Bend, xt.RBend, xt.Quadrupole, xt.Sextupole, xt.Octupole, xt.Multipole,
|
|
@@ -65,7 +65,7 @@ _ALLOWED_ELEMENT_TYPES_IN_NEW = [
|
|
|
65
65
|
xt.Cavity, xt.RFMultipole, xt.CrabCavity, xt.ReferenceEnergyIncrease,
|
|
66
66
|
xt.XYShift, xt.XRotation, xt.YRotation, xt.SRotation, xt.ZetaShift,
|
|
67
67
|
xt.LimitRacetrack, xt.LimitRectEllipse, xt.LimitRect, xt.LimitEllipse,
|
|
68
|
-
xt.LimitPolygon, xt.DipoleEdge]
|
|
68
|
+
xt.LimitPolygon, xt.DipoleEdge, xt.LongitudinalLimitRect, xt.FirstOrderTaylorMap]
|
|
69
69
|
|
|
70
70
|
_ALLOWED_ELEMENT_TYPES_DICT = {
|
|
71
71
|
cc.__name__: cc for cc in _ALLOWED_ELEMENT_TYPES_IN_NEW}
|
|
@@ -3764,7 +3764,8 @@ class Line:
|
|
|
3764
3764
|
newline = Line(elements=[], element_names=[])
|
|
3765
3765
|
|
|
3766
3766
|
for ee, nn in zip(self._elements, self.element_names):
|
|
3767
|
-
if isinstance(ee, Multipole) and nn not in keep
|
|
3767
|
+
if (isinstance(ee, Multipole) and nn not in keep and
|
|
3768
|
+
not(ee.isthick and ee.length != 0)):
|
|
3768
3769
|
ctx2np = ee._context.nparray_from_context_array
|
|
3769
3770
|
aux = ([ee.hxl]
|
|
3770
3771
|
+ list(ctx2np(ee.knl)) + list(ctx2np(ee.ksl)))
|
|
@@ -5202,7 +5203,7 @@ def _deserialize_element(el, class_dict, _buffer):
|
|
|
5202
5203
|
return eltype.from_dict(eldct)
|
|
5203
5204
|
|
|
5204
5205
|
def _is_simple_quadrupole(el):
|
|
5205
|
-
if not isinstance(el, Multipole):
|
|
5206
|
+
if not isinstance(el, Multipole) or el.isthick:
|
|
5206
5207
|
return False
|
|
5207
5208
|
return (el.radiation_flag == 0
|
|
5208
5209
|
and (el.order == 1 or len(el.knl) == 2 or not any(el.knl[2:]))
|
|
@@ -5213,7 +5214,7 @@ def _is_simple_quadrupole(el):
|
|
|
5213
5214
|
and np.abs(el.rot_s_rad) < 1e-12)
|
|
5214
5215
|
|
|
5215
5216
|
def _is_simple_dipole(el):
|
|
5216
|
-
if not isinstance(el, Multipole):
|
|
5217
|
+
if not isinstance(el, Multipole) or el.isthick:
|
|
5217
5218
|
return False
|
|
5218
5219
|
return (el.radiation_flag == 0
|
|
5219
5220
|
and (el.order == 0 or len(el.knl) == 1 or not any(el.knl[1:]))
|
xtrack-0.98.3/xtrack/_version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '0.98.3'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|