Software is crucial to all areas of modern plasma physics research. Plasma physicists use software for activities such as analyzing data from laboratory experiments and simulating the behavior of plasmas. Research groups often use software developed independently within their own group, which leads to unnecessary duplication of functionality and a lack of interoperability between different software packages. The lack of interoperability is compounded by different groups writing software using different coding styles and conventions. Much of the research software in plasma physics is not openly available to the public, which makes it harder for other scientists to reproduce scientific results. The team will develop PlasmaPy: a community-wide open source software package for plasma physics research and education. PlasmaPy will be written using the freely available Python programming language which is commonly used in related fields like astronomy. PlasmaPy itself will contain the general functionality needed by most plasma physicists, whereas community-developed affiliated software packages will contain more specialized functionality. The team will seek feedback from plasma physicists, hold annual workshops, and actively support new users and contributors.
The research team will lead the development of PlasmaPy and affiliated packages to foster the creation of an open source software ecosystem for plasma physics. The PlasmaPy core package will contain functionality needed by plasma physicists across disciplines, whereas affiliated package will contain more specialized functionality. At the beginning of the project, the research team will formalize the software architecture, refactor existing code, improve tests, and improve base data structures to provide a solid foundation for future development. Subsequent code development priorities include a dispersion relation solver for plasma waves and instabilities, the groundwork for a flexible framework for plasma simulation, time series turbulence analysis tools, classes for the analysis of plasma diagnostics, and tools to provide access to atomic and physical data. They will make base data structures compatible with open source packages for data science to enable future data science studies. The research team will actively seek feedback from the plasma physics community, and adjust code development priorities based on this feedback. The team will hold workshops each year and actively support new users and contributors to grow PlasmaPy into a self-sustaining project.
This project is supported by the Office of Advanced Cyberinfrastructure in the Directorate for Computer & Information Science & Engineering, the Division of Physics in the Directorate of Mathematical and Physical Sciences, and the Division of Atmospheric and Geospace Sciences in the Directorate for Geosciences.
This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.