PlasmaPy v0.6.0 (2021-03-14)

The people who have contributed to the code for this release are:

  • Anthony Vo

  • Dhawal Modi *

  • Dominik Stańczak

  • Drozdov David *

  • Erik Everson

  • Kevin Montes *

  • Nick Murphy

  • Peter Heuer

  • Ramiz Qudsi

  • Tiger Du

Where a * indicates their first contribution to PlasmaPy.

Backwards Incompatible Changes

  • The State namedtuple was changed to the plasmapy.particles.IonicFraction class. (Note: #1046 subsequently changed that to IonicLevel). (#796)

  • Now, when the IonizationState class is provided with an ion, the ionic fraction for that ion is set to 100% for the corresponding element or isotope. (#796)

  • AtomicError was renamed to ParticleError and MissingAtomicDataError was renamed to MissingParticleDataError. (#796)

  • In plasmapy.particles, the IonizationStates class was renamed to IonizationStateCollection. Argument n of IonizationStates was changed to n0 in IonizationStateCollection. (#796)

  • Moved and refactored error message formatting functionality from plasmapy.utils.error_messages to plasmapy.utils.code_repr. (#920)

  • Renamed the available “methods” for computing the Coulomb logarithm in an attempt to make the names more explicit. This is implemented using the method keyword for functions Coulomb_logarithm and impact_parameter, and then propagated throughout the functionality in plasmapy.formulary.collisions. (#962)

  • Add dependency pandas >= 1.0.0. Modify xarray dependency to be xarray >= 0.14.0. (#963)

  • The AbstractGrid property grid is now dimensioned (has units) and cannot be accessed if all dimensions do not share the same units. (#981)

  • Renamed attribute is_uniform_grid on AbstractGrid to is_uniform. (#981)

  • Drop Python 3.6 support. (#987)

  • The __getitem__ method of AbstractGrid now returns a Quantity array instead of a reference to a xarray.DataArray. (#1027)

  • Renamed IonicFraction to IonicLevel. This lays groundwork for future changes, where that class is going to become more than a fraction. (#1046)

Deprecations and Removals

  • The particle attribute of Particle has been deprecated in favor of the new symbol attribute. The particle attribute now issues a FutureWarning to indicate that it will be removed in a future release. (#984)

Features

Bug Fixes

  • Fixed a minus sign bug in the Particle Tracker simulation that caused the E×B drift to go in the incorrect direction. (#953)

  • Bugfix plasmapy.analysis.fit_functions.Linear.root_solve() to handle the case where the slope is zero and no finite roots exist. (#959)

  • Fixed a bug that prevented nested iterations of a single IonizationState or IonizationStateCollection instance. (#1025)

  • Fixed a bug in grids.py for non-uniform grids that arose when xarray upgraded to v0.17.0 (#1027)

  • In plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph, adaptive dt now calculates the cyclotron period using the provided particle charge and mass (previously assumed protons). (#1035)

  • In plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph, the adaptive timestep algorithm now works when particles are provided using plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph.load_particles. (#1035)

  • In plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph, removed highly deflected particles so the call of plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph.max_deflection does not raise an exception. (#1035)

Improved Documentation

  • Add narrative documentation on ionization state functionality. (#796)

  • Added description to plasmapy.formulary.parameters.Hall_parameter signature and equation in docstrings. (#934)

  • Updated documentation for the plasmapy.particles and plasmapy.utils subpackages. (#942)

  • Improves documentation of plasmapy/formulary/quantum.py by cleaning up docstrings of contained functionality. (#951)

  • Update all docstrings associated with computing the Coulomb logarithm and the possible methods of calculation. (#962)

  • Add two Jupyter notebooks for functionality contained in plasmapy.plasma.grids: grids_cartesian.ipynb and grids_nonuniform.ipynb. (#963)

  • Added the ExB drift notebook, which demonstrates the analytical solution for the drift and the implementation of the corresponding formulary drift functions, force_drift and ExB_drift. (#971)

  • Describe what constitutes a valid representation of a particle in the docstring for the plasmapy.particles.particle_class.ParticleLike typing construct. (#985)

  • Put the docstring for plasmapy.particles.particle_class.Particle.is_category into numpydoc format. (#1039)

  • Adds formulas (which were missing) to the docstrings of plasmapy.formulary.dimensionless.quantum_theta and beta. (#1041)

  • Add live rendering of changelog entries on documentation builds, based on sphinx-changelog. (#1052)

  • Created an example notebook demonstrating how the plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph class can be used to generate synthetic proton radiographs with arbitrary source profiles. Add code documentation links to all proton radiograph notebooks. (#1054)

  • Update formatting and broken sphinx.ext.intersphinx links in plasmapy.formulary docstrings. (#1058)

  • Make minor fixes in plasmapy.particles docstrings. (#1064)

  • Organize the layout of the example Jupyter notebooks on the Read the Docs example page. (#1066)

  • Fix formatting and broken sphinx.ext.intersphinx links in docstrings in various places in the code base. Improve installation instructions in the docs; the subpackage stability matrix, and funding acknowledgments. (#1076)

Trivial/Internal Changes

  • Removed colorama as a dependency. (#920)

  • Moved remaining CI from CircleCI to GitHub Actions. (#996)

  • Add notebook CI through nbqa. (#997)

  • Remove lambda expressions from plasmapy.particles and plasmapy.utils. (#1013)

  • Add unicode particle aliases for electrons ("β-", "β⁻"), muons ("μ-", "μ⁻"), anti-muons ("μ+", "μ⁺"), tau particles ("τ", "τ-", "τ⁻"), anti-tau particles ("τ+", "τ⁺") electron neutrinos ("ν_e"), muon neutrinos ("ν_μ"), tau neutrinos ("ν_τ"), and alpha particles ("α"). (#1036)

  • A set containing all valid particle categories may now be accessed via plasmapy.particles.particle_class.Particle.is_category.valid_categories. (#1039)

  • Properly handled warnings in test_proton_radiography.py (#1050)