Skip to content

0.7.1

Choose a tag to compare

@jank324 jank324 released this 21 Mar 17:53
· 1322 commits to master since this release

🚨 Breaking Changes

  • The incoming argument of Segment.plot_overview is no longer optional. This change also affects the order of the arguments. Fixes an exception that was raised by an underlying plot function that requires incoming to be set. (see #316, #344) (@Hespe)
  • Python 3.9 is no longer supported. This does not immediately break existing code, but might cause it to break in the future. (see #325) (@jank324)
  • The covariance properties of the different beam classes were renamed from names like cor_x and sigma_xpx to consistent names like cov_xpx (see #331) (@jank324)
  • The signature of the transfer_map method of all element subclasses was extended by a non-optional species argument (see #276) (@cr-xu, @jank324, @Hespe)
  • ParticleBeam.plot_distribution allows for Seaborn-style passing of axs and returns the latter as well. In line with that change for the purpose of overlaying distributions, the contour argument of ParticleBeam.plot_2d_distribution was replaced by a style argument. (see #330) (@jank324)
  • The default values for total_charge in both beam classes are no longer 0.0 but more sensible values (see #377) (@jank324)
  • ParameterBeam._mu and ParameterBeam._cov were renamed to ParameterBeam.mu and ParameterBeam.cov (see #378) (@jank324)

🚀 Features

  • ParticleBeam now supports importing from and exporting to openPMD-beamphysics HDF5 files and ParticleGroup objects. This allows for easy conversion to and from other file formats supported by openPMD-beamphysics. (see #305, #320) (@cr-xu, @Hespe)
  • Add marker, quadrupole and csbend element names to the Elegant converter (see #327) (@jank324)
  • Add Python 3.13 support (see #275) (@jank324)
  • Methods to_parameter_beam and to_particle_beam have been added for convenient conversion between ParticleBeam and ParameterBeam (see #331) (@jank324)
  • Beam classes now have the mu_tau and mu_p properties on their interfaces (see #331) (@jank324)
  • Lattice and beam converters now adhere to the default torch dtype when no explicit dtype is passed (see #340) (@Hespe, @jank324)
  • Add options to include or exclude the first and last element when retrieving a Segment.subcell and improve error handling (see #350) (@Hespe, @jank324)
  • Add support for particle species through a new Species class (see #276, #376) (@cr-xu, @jank324, @Hespe)
  • Various optimisations for a roughly 2x speed improvement over v0.7.0 (see #367) (@jank324, @Hespe)

🐛 Bug fixes

  • Fix issue where a space before a comma could cause the Elegant and Bmad converters to fail (see #327) (@jank324)
  • Fix issue of BPM and Screen not properly converting the dtype of their readings (see #335) (@Hespe)
  • Fix is_active and is_skippable of some elements not being boolean properties (see #357) (@jank324)

🐆 Other

  • Test tolerances were adjusted reduce the chance of random test failures (see #309, #324) (@Hespe, @jank324)
  • The copyright years were updated to 2025 (see #318) (@jank324)
  • The broken institution logo rendering in the documentation has been fixed (see #318) (@jank324)
  • Added pyproject.toml to conform with PEP 660 as enforced as of pip 25 for editable installs (see #334) (@jank324)
  • Add TUHH logo to contributing institution logos (see #338) (@jank324)
  • The tests for backward-mode differentiation with space charge was improved by checking the accuracy of the gradients (see #339) (@RemiLehe)
  • A tests for forward-mode differentiation with space charge was added (see #339) (@RemiLehe)
  • Link to different ImpactX example in test docstring (see #341) (@ax3l)
  • Add link to the new Discord server (see #355, #382) (@jank324)
  • Fix typo that said "quadrupole" in a dipole docstring (see #358) (@jank324)
  • Type annotations were updated to the post-PEP 585/604... style (see #360) (@jank324)
  • Add badge to the README for the number of downloads from PyPI (see #364) (@jank324)