PlasmaPy is an open source, community-developed Python 3.8+ package for plasma science. PlasmaPy intends to be for plasma science what Astropy is for astronomy — a collection of functionality commonly used and shared between plasma scientists and researchers globally, running within and leveraging the open source scientific Python ecosystem. The goals of PlasmaPy are more thoroughly described in this video. Current functionality is described in PlasmaPy's online documentation, and many of our recent presentations are available from the PlasmaPy Community on Zenodo.
Please submit a feature request if you have an idea for new functionality. PlasmaPy is community-driven, and feature requests really help guide the direction of software development. Please also submit a bug report if you notice any bugs. Feedback really helps!
If you are interested in contributing, please check out our contributor guide and code of conduct. There are also a number of good first issues in our GitHub repository. New contributors are very welcome!
PlasmaPy requires Python 3.8 or newer. If you do not have Python installed already, here are the instructions to download and install Python.
plasmapy on macOS or Linux, open a terminal and run:
python -m pip install plasmapy
On some systems, it might be necessary to specify the Python version
number, for example by using
python3.10 instead of
plasmapy on Windows, open a terminal and run
py -3.10 -m pip install plasmapy
3.10 may be replaced by any version of Python that is supported by
If you have installed Conda, then you can also install PlasmaPy into an activated Conda environment by running:
conda install -c conda-forge plasmapy
PlasmaPy can also be installed using Anaconda Navigator so long as
conda-forge is added as a channel.
Check out our instructions on installing PlasmaPy for more details.
Please check out our documentation for more information on how to install PlasmaPy. To contribute to the package or use the most recent version, check out our instructions on installing PlasmaPy from source.
Our weekly informal office hours are an opportunity to chat with active members of the PlasmaPy community about topics related to Python and plasma science. If you'd like to learn more about PlasmaPy, our office hours are one of the best places to start. As of April 2022, our office hours are on Thursdays at 2 pm Eastern. Please feel free to come by!
PlasmaPy's weekly community meetings are a place to talk about code development. If you have an idea for a new feature or would like to make a code contribution, community meetings are a good place to go to. As of April 2022, community meetings are on Tuesdays at 2 pm Eastern.
PlasmaPy's weekly project meetings are a place to discuss education, outreach, and project coordination. Topics might range from creating educational notebooks to organizing community events. As of April 2022, project meetings are held on Wednesdays at 3 pm Eastern.
Working group meetings
PlasmaPy has started several working groups, including on diagnostics, dispersion relations, and simulation. These working groups usually meet fortnightly, and their meeting times can be found in PlasmaPy's event calendar. If you would like to join a PlasmaPy working group or even start a new one, please email us at email@example.com!
Plasma Hack Week
A hack week is a mix of a hackathon and a summer school. Hack weeks provide an opportunity to learn from each other and code together. The inaugural Plasma Hack Week was held virtually in the summer of 2021, and will hopefully be held annually. Please check out the Plasma Hack Week website for more details, and email firstname.lastname@example.org if you would like to become an organizer.
We're trying out GitHub discussions as a place to suggest ideas, bring up discussion topics, and ask questions.
You can subscribe to PlasmaPy's low-volume mailing list to receive PlasmaPy newsletters and other announcements.
We have a suggestion box if you would like to (optionally anonymously) suggest a feature/topic for consideration. These suggestions might be changed into GitHub issues for further discussion.
PlasmaPy is permissively licensed under a 3-clause BSD license with added protections against software patents.
An emerging best practice for software citation is to cite the specific version of each software package used in a research project (instead of only citing a journal article, website, or GitHub repository). The citation should include a persistent identifier that uniquely identifies which version of the software was used. We therefore ask that you cite the specific version of PlasmaPy used in your research project. Releases of PlasmaPy are available from the PlasmaPy community on Zenodo, along with many other PlasmaPy resources. Please check our documentation for more detailed citation instructions.
Early development on PlasmaPy was supported in part by the U.S. Department of Energy, the Smithsonian Institution, NASA, and Google Summer of Code. Ongoing PlasmaPy development is being supported through a collaborative award from the Cyberinfrastructure for Sustained Scientific Innovation program of the U.S. National Science Foundation.