- Rename
plasmapy.atomic
to ~plasmapy.particles. In ~plasmapy.formulary.collisions and ~plasmapy.formulary.braginskii, change arguments named particles tospecies
and arguments namedion_particle
toion
for multiple functions. (#742) - Officially delete
plasmapy.examples
. (#822) - Move
plasmapy.data
toplasmapy.particle.data
. (#823) - Renamed the plasmapy.classes subpackage to plasmapy.plasma. (#842)
- Added units to reprs of .formulary.magnetostatics classes. (#743)
- Create prototype abstract interfaces for plasma simulations (#753)
- Created classes to represent custom and dimensionless particles in
plasmapy.particles
. (#755) - Create
~plasmapy.formulary.relativity.relativistic_energy
function, which uses the established~plamsapy.formulary.relativity.Lorentz_factor
function to aid in the calculation of the relativistic energy of an object. (#805) - Create
~plasmapy.formulary.dimensionless.Reynolds_number
function. (#815) - Create
~plasmapy.formulary.dimensionless.Mag_Reynolds
function. (#820) - Create
~plasmapy.formulary.parameters.Bohm_diffusion
function. (#830) - Added a new diagnostics module thomson containing a function spectral_density that calculates Thomson scattering spectra for Maxwellian plasmas in both the collective and non-collective regimes. As a followup to PR #835, set the minimal required Numpy version to 1.18.1 to finally fix unit dropping bugs. (#831)
- Revised parameters.thermal_speed to support 1D and 2D distributions as well as 3D, and added an example notebook for this function. (#850)
- Create plasmapy/formulary/ionization.py Create
~plasmapy.formulary.ionization.Z_bal
function. (#851) - Create
~plasmapy.formulary.ionization.Saha
function. (#860) Added aliases (with trailing underscores) for parameters in the formulary:
- plasmapy.formulary.dimensionless.Reynolds_number -> ~plasmapy.formulary.dimensionless.Re_
- plasmapy.formulary.dimensionless.Mag_Reynolds -> ~plasmapy.formulary.dimensionless.Rm_
- plasmapy.formulary.drifts.ExB_drift -> ~plasmapy.formulary.drifts.veb_
- plasmapy.formulary.drifts.force_drift -> ~plasmapy.formulary.drifts.vfd_
- plasmapy.formulary.parameters.mass_density -> ~plasmapy.formulary.parameters.rho_
- plasmapy.formulary.parameters.Afven_speed -> ~plasmapy.formulary.parameters.va_
- plasmapy.formulary.parameters.ion_sound_speed -> ~plasmapy.formulary.parameters.cs_
- plasmapy.formulary.parameters.thermal_speed -> ~plasmapy.formulary.parameters.vth_
- plasmapy.formulary.parameters.thermal_pressure -> ~plasmapy.formulary.parameters.pth_
- plasmapy.formulary.parameters.kappa_thermal_speed -> ~plasmapy.formulary.parameters.vth_kappa_
- plasmapy.formulary.parameters.inertial_length -> ~plasmapy.formulary.parameters.cwp_
- plasmapy.formulary.parameters.Hall_parameter -> ~plasmapy.formulary.parameters.betaH_
- plasmapy.formulary.parameters.gyrofrequency -> ~plasmapy.formulary.parameters.oc_, ~plasmapy.formulary.parameters.wc_
- plasmapy.formulary.parameters.gyroradius -> ~plasmapy.formulary.parameters.rc_, ~plasmapy.formulary.parameters.rhoc_
- plasmapy.formulary.parameters.plasma_frequency -> ~plasmapy.formulary.parameters.wp_
- plasmapy.formulary.parameters.Debye_length -> ~plasmapy.formulary.parameters.lambdaD_
- plasmapy.formulary.parameters.Debye_number -> ~plasmapy.formulary.parameters.nD_
- plasmapy.formulary.parameters.magnetic_pressure -> ~plasmapy.formulary.parameters.pmag_
- plasmapy.formulary.parameters.magnetic_energy_density -> ~plasmapy.formulary.parameters.ub_
- plasmapy.formulary.parameters.upper_hybrid_frequency -> ~plasmapy.formulary.parameters.wuh_
- plasmapy.formulary.parameters.lower_hybrid_frequency -> ~plasmapy.formulary.parameters.wlh_
- plasmapy.formulary.parameters.Bohm_diffusion -> ~plasmapy.formulary.parameters.DB_
- plasmapy.formulary.quantum.deBroglie_wavelength -> ~plasmapy.formulary.quantum.lambdaDB_
- plasmapy.formulary.quantum.thermal_deBroglie_wavelength -> ~plasmapy.formulary.quantum.lambdaDB_th_
- plasmapy.formulary.quantum.Fermi_energy -> ~plasmapy.formulary.quantum.Ef_ (#865)
- Add json_dumps method to ~plasmapy.particles.particle_class.AbstractParticle to convert a particle object into a JSON string. Add json_dump method to ~plasmapy.particles.particle_class.AbstractParticle to serialize a particle object and writes it to a file. Add JSON decoder ~plasmapy.particles.serialization.ParticleJSONDecoder to deserialize JSON objects into particle objects. Add plasmapy.particles.serialization.json_loads_particle function to convert JSON strings to particle objects (using ~plasmapy.particles.serialization.ParticleJSONDecoder). Add plasmapy.particles.json_load_particle function to deserialize a JSON file into a particle object (using ~plasmapy.particles.serialization.ParticleJSONDecoder). (#836)
- Fix incorrect use of pkg.resources when defining plasmapy.__version__. Add setuptools to package dependencies. Add a definition of __version__ for developers using source files. (#774)
- Repair notebook links that are defined in the nbsphinx_prolog sphinx configuration variable. (#828)
- Increase the required Astropy version from 3.1 to 4.0, Numpy from 1.14 to 1.16.6, Scipy from 0.19 to 1.2 and lmfit from 0.9.7 to 1.0.1. This fixes long-standing issues with Numpy operations dropping units from AstroPy quantities. (#835)
- Added documentation to file test_converters (#756)
- Updated installation instructions. (#772)
- Reorder documentation page (#777)
- Fix failing documentation build due to duplicate docstrings for ParticleTracker.kinetic_energy_history and incompatibility of sphinx-automodapi with sphinx v3.0.0. (#780)
- Automate definition of documentation release and version in docs/conf.py with plasmapy.__version__. (#781)
- Add a docstring to
__init__.py
in plasmapy.formulary. (#788) - Replaced sphinx-gallery with nbsphinx, turning .py example files into .ipynb files and allowing for easier example submission. (#792)
- Linked various instances of classes and functions in the .ipynb examples in docs/notebooks/ to the respective API docs. (#825)
- Fixed a few documentation formatting errors. (#827)
- Add notes on the PlasmaPy benchmarks repository to documentation. (#841)
- Improve readability of the plasmapy.formulary page by replacing the toctree list with a cleaner reST table. (#867)
- Remove mutable arguments from Particle.is_category method. (#751)
- Remove all occurrences of default mutable arguments (#754)
- Handle ModuleNotFoundError when trying to import __version__ but setuptools_scm has not generated the version.py file. This commonly happens during development when plasmapy is not installed in the python environment. (#763)
- Updated pep8speaks/flake8 configuration and added .pre-commit-config.yaml to simplify automated style checks during development. (#770)
- Removes some lint from setup.py and setup.cfg. Use pkg_resources for version checking in code. Remove version.py file in favor of pkg_resources. (#771)
- Default settings for isort were set to be consistent with default settings for black. (#773)
- Update community meeting and funding information in docs. (#784)
- Improved pull request template to include more information about changelog entries. (#843)
- Added GitHub actions that apply pre-commit and flake8 (separately) to incoming pull requests. (#845)
- Apply pre-commit hooks to entire repository, so that GitHub actions do not shout at contributors needlessly. (#846)
- Update
~plasmapy.particles.particle_class.CustomParticle
so input parameters mass and charge can accept string representations of astropy Quantities. (#862)
- Create simulation subpackage; move Species particle tracker there; rename to particletracker (#665)
- Changed plasmapy.classes.Species to plasmapy.simulation.ParticleTracker (#668)
- Move pytest helper functionality from plasmapy.utils to ~plasmapy.utils.pytest_helpers (#674)
- Move plasmapy.physics, plasmapy.mathematics and plasmapy.transport into the common plasmapy.formulary subpackage (#692)
- Change ClassicalTransport methods into attributes (#705)
- Remove parameters_cython.pyx, switching to Numba for the future of computationally intensive code in PlasmaPy (#650)
- Remove plasmapy.constants, which was a thin wrapper around astropy.constants with no added value (#651)
- Generalize ion_sound_speed function to work for all values of k2λD2 (i.e. not just in the non-dispersive limit). (#700)
- Optimize add__magnetostatics for a 16x speedup in tests! (#703)
- Define preserve_signature decorator to help IDEs parse signatures of decorated functions. (#640)
- Fix Pytest deprecations of message argument to raise and warn functions. (#666)
- Fix h5py warning in OpenPMD module, opening files in read mode by default (#717)
- Added real-world examples to examples/plot_physics.py and adjusted the plots to be more human-friendly. (#448)
- Add examples images to the top of the main doc page in docsindex.rst (#655)
- Added exampes to the documentation to mass_density
and Hall_parameter functions (#709)
- Add docstrings to decorator
plasmapy.utils.decorators.converter.angular_freq_to_hz
. (#729)
- Replace decorator
plasmapy.utils.decorators.checks.check_quantity
with decoratorplasmapy.utils.decorators.validators.validate_quantities
. Permanently delete decorator~plasmapy.utils.decorators.checks.check_quantity
and its supporting code. For functionsplasmapy.formulary.quantum.chemical_potential
andplasmapy.formulary.quantum._chemical_potential_interp
, add a RaiseNotImplementedError due to bug outlined in issue #726. Associated pytests are marked with pytest.mark.xfails and doctests are marked with doctests: +SKIP. (#722) - Add Towncrier automated changelog creation support (#643)
- Move existing "check" decorators to new
plasmapy.utils.decorators
module (#647) - Allow running our sphinx-gallery examples as Jupyter notebooks via Binder (#656)
- Overhaul CI setup, following the example of SunPy (#657)
- Patch sphinx_gallery.binder to output custom links to Binder instance (#658)
- Remove the now unnecessary astropy_helpers submodule (#663)
- Followup PR to CI overhaul (#664)
- Add a Codemeta file (
codemeta.json
) (#676) - Overhaul and simplify CI, add Python 3.8 to tests, bump minimal required package versions, fix docs. (#712)
- Update communication channels in docs (#715)
- Code style fixes to the atomic subpackage (#716)
- Clean up main package namespace, removing plasmapy.test (#718)
- Reduce precision of tests and doctests to allow for refinements of fundamental constants. (#731)
- Create decorators for checking/validating values and units of function/method input and return arguments. Defined decorators include
~plasmapy.utils.decorators.checks.check_values
,~plasmapy.utils.decorators.checks.check_units
, and~plasmapy.utils.decorators.validators.validate_quantities
. These decorators are fully defined by "decorator classes"~plasmapy.utils.decorators.checks.CheckBase
,~plasmapy.utils.decorators.checks.CheckValues
,~plasmapy.utils.decorators.checks.CheckUnits
, and~plasmapy.utils.decorators.validators.ValidateQuantities
. (#648) - Create a decorator to change output of physics functions from "radians/s" to "hz" (#667)
- Added pytest.mark.slow to pytest markers. Updated documentation to notify developers of functionality. (#677)