Unreleased changes

PlasmaPy v2024.10.1.dev36+g8910b5d (2025-01-16)

New Features

  • The new method soften_edges applies an error function mask to the edges of all quantities on a grid. This is useful for any application where the grid must go to zero smoothly at the edges, e.g. for particle tracking with ParticleTracker. (#2911)

Documentation Improvements

  • Updated author metadata in CITATION.cff. (#2890)

  • Removed duplicate section headers for example notebooks in documentation for plasmapy.formulary. (#2892)

  • Added acknowledgements to several organizations that have supported PlasmaPy or are aligned with its mission. (#2895)

  • Fixed formatting problems and improved verb tense consistency in prior changelog entries. (#2901)

  • Fixed references to the astropy.units.equivalencies module in the docs. Astropy now considers this file to be private API, and wants its contents imported through the units module namespace, which broke PlasmaPy’s intersphinx links. This PR changes those links to a direct URL to the page in the astropy docs: Astropy Equivalencies. (#2915)

  • Added a sentence to introduce what a dispersion relation is and why it’s useful. (#2932)

Backwards Incompatible Changes

  • The method add_stopping argument I must now be a list of Quantity objects rather than a single Quantity array. This is because None entries are now also accepted to that keyword as placeholders for grids on which stopping will not be applied. (#2911)

  • ParticleTracker no longer takes the keyword req_quantities, but instead automatically requires quantitities required by the tracker for the given setup. Users wishing to require quantitities may use the method require_quantities. (#2911)

  • Variables in ParticleTracker and Tracker have been updated such that n* is now num_*, e.g. nparticles is now num_particles. Similarly, v_init is now v0 to be consistent with x0. (#2911)

Internal Changes and Refactorings

  • Dropped support for Python 3.10 and bumped the minimum required versions of several dependencies following SPEC 0. (#2880)

  • Updated the release checklist following the v2024.10.0 release. (#2886)

  • The internal structure of ParticleTracker was optimized by caching some variables (e.g., tracked_particle_mask) which are then reset after every push cycle by a _reset_cache method. Instead of adding zero arrays for missing quantities, only quantities provided on the grid are interpolated, and other required quantities are filled in with an array of zeros automatically. Particle stopping can now be enabled on a subset of the provided grids. Adaptive time steps do not include magnetic field candidates if a magnetic field does not exist on the grid. The adaptive timestep is now set to that of the highest resolution grid for particles that are not currently on any grid. (#2911)

  • Added User-Agent to the header of Downloader to resolve an issue with GitHub blocking API access. (#2915)

Additional Changes

  • ax#, dx# and *_si properties of AbstractGrid are now cached properties for faster access, since these attributes do not change after the grid has been initialized. (#2911)