---
tags: roadmap, 2021
---
# 2021 Ed. | Roadmap Brainstorming
[TOC]
## Wants
1. Establish Quarterly (Q1, Q2, etc.) goals
2. Establish "Major" roadmap items
3. Assign leads to "Major" roadmap items
* leaders should have the freedom to manage the project under their control
* leaders should communicate "regularly" structure and progress of their project
5. ...
## 2021 Primary Items
"Primary" items are the principle, large scale projects for the 2021 roadmap. Each item will have a designated leader to manage and plan out the finer details of the project. These items will be published as part of the 2021 PlasmaPy Roadmap.
### 1. 2021 Workshop/Webinar/Hackathon
* **Leader:** Nick
* **Likely a webinar due to COVID restrictions**
* Q1
* Form planning committee
* Research implementation
* Action items for planning committee
* Pick date (tentatively in Q3)
* Determine duration of meeting
* Will tutorials be before the hack week?
* Create hack week website
* Announce the hack week
* Q2
* Form Hackathon Schedule
* Determine topics
* Determine Presenters
* Q3
* Final prep for workshop
* Hold workshop
### 2. Education
* **Leader:** David
* Why stick with education?
1. "easy" for undergrads to take up
2. will advertise `plasmapy` functionality
3. will highlight functionality that is needed and not in `plasmapy`
* Q1
* Outline topics for 1st plasma series
* Repurpose `Plasma-Education` repo
* Establish working group
* Q2
* Deploy repo on RTD
* Establish learn.plasmapy.org (directed to RTD)
* Start creating initial tutorials
* Q3
* Finish 1st plasma series
* Begin planning YouTube series for 1st plasma series
* Outline topics for 2nd plasma/physics series
* Q4
* First generation of 2nd plasma/physics series notebooks
* Release 3-4 YouTube videos for 1st plasma series
### 3. YouTube
* **Leader:** Erik, by Committee
* Q1
* Q2
* Nick assumes lead to implement Contribution series
* Q3
* David assumes lead for 1st plasma series educational release
* Q4
### 4. `plasmapy` Analysis & Diagnostics
* **Leader:** Erik
* Q1
* Create the `plasmapy.analysis.swept_langmuir` analysis pkg
* Contribute functionality for...
* find the floating potential
* finding the ion-saturation current
* Q2
* Expand `plasmapy.analysis.swept_langmuir` with functionality for
* finding the plasma potential via dI/dV
* finding electron temperature via dI/dV
* finding electron temperature via linear fit of `ln(I)` vs V
* Q3
* Initial deployment of `plasmapy.diagnostics.swept_langmuir` and the `xarray` framework
* All `plasmapy.analaysis.swept_langmuir` functionality should be implemented within the `xarray` framework
* Q4
* Introduce `Probe` classes
* Implement plotting into the `xarray` framework
* Prototype GUI into the `xarray` frame work via Jupyter Notebook widgets.
### 5. `plasmapy` Dispersion
* **Leader:** Erik
* Q1
* Add Bellan analytical expression for two-fluid dispersion relation
* Create `plasmapy.dispersion.analytical`
* Q2
* Add branches of the two-fluid dispersion relation
* Begin research & planning for dispersion solvers
* Q3
* Create `plasmapy.dispersion.numerical`
* Develop 1st dispersion solver
* Q4
* Expand dispersion documentation to help mitigate the confusion in the community about the naming of different waves.
### 6. `plasmapy` Transport
* **Leader:** Dominik
* Q1-Q2
* Add neoclassical transport coefficients for toroidal systems
* (master's thesis, so this gets done either way)
* Q2-Q3
* Refactor existing ClassicalTransport
* Q3
* ~~common API for neoclassical and classical transport~~
* ends up not being feasible due to differences in input (plasma equilibrium/geometry for neoclassics)
### 7. `plasmapy` Simulation
* **Leader:** Nick
* Q3
* Establish 1st PlasmaPy working group
* Outline required features for simulation interfaces
* Compile use cases for plasma simulation
* Q4
* Create prototypes for classes to represent
### 8. `plasmapy` `ParticleTracker`
* **Leader:** Dominik
* Q3-Q4
* basically go through [#936](https://github.com/PlasmaPy/PlasmaPy/issues/936)
* continue adding fixes from the abandoned [#675](https://github.com/PlasmaPy/PlasmaPy/pull/675)
* 3d viz through pyvista
* magnetostatics through numba
* speed up simulation through numba
* xarray interface for particle trajectories, in the style of [arviz.InferenceData](https://arviz-devs.github.io/arviz/api/generated/arviz.InferenceData.html)
## 2021 Secondary Items
Secondary items are important elements of the PlasmaPy project, but are not large enough in scale to be considered a "Primary" item of the PlasmaPy roadmap. These items would not be published as part of the main roadmap, but would be kept on the more detailed internal roadmap.
* Expand/Add-to "Project Issues"
* Add as permanent agenda item to the community and project meetings
* Expand Affiliated pkgs
* `plasmapy` releases
* aim for releases every 3-4 months
* keep debating move to date based versioning...`YYYY.MINOR.MICRO`
* could help with citation traceback
* would require new release in Q1 of each year
* https://calver.org/
* the [stability matrix](https://docs.plasmapy.org/en/latest/about/stability.html) needs to updated, continuously maintained, and probably placed on the docs.plasmapy.org landing page
* Setup donation mechanisms
* GitHub Donations
* NumFOCUS registration/application
* Patreon
* Are there conflicts w/ the NSF grant?
* Form subject specific working groups
* this is an effort to avoid development in isolation
* should hash out a rough fraemwork/concept for these
* meetings don't need to be weekly and will probably be on a monthly basis
* Nick w/ Jimmy Juno on simmulation interfaces with [gkeyll](https://gkeyll.readthedocs.io/en/latest/) would be a good trial run
* Setup `*@plasmapy.org` email addresses
* each of us should have our own
* a general email address that is received by all team members
* maybe have separate email addresses for GitHub teams
* Finish implementation of [PLEP7](https://github.com/PlasmaPy/PlasmaPy-PLEPs/blob/master/PLEP-0007.rst) (i.e. finish with `plasmapy.addons`)
* ...
## Items for Next Year
* Expand/Add-to "Project Issues"
* Expand Affiliated pkgs
* `plasmapy` releases
* move to date based versioning **???**
* Update stability matrix
* ...
## Categorized
#### `plasmapy`
* general
* populate ["Project Issues"](https://github.com/PlasmaPy/PlasmaPy/issues/964)
* Paschen curve
* fill out drifts
* Distribution function overhaul
* Review of formulary for consistent UI
* `plasmapy.analysis` & `plasmapy.diagnostics`
* `plasmapy.dispersion`
* `plasmapy.formulary`
* Overhaul/expand transport functionality
* consider updating PLEP7 to add sub-pkg `plasmapy.transport`
* who is in charge
* `plasmapy.particles`
* `plasmapy.plasma`
* `plasmapy.simulation`
* focus on simulation pre- and post-interfaces
* forming metadata standards (could have cross-contribution to other sub-pkgs ... e.g. properties of a diagnostic)
* connect with Jimmy Juno about collab with [gkeyll](https://gkeyll.readthedocs.io/en/latest/)
* good test for working groups
* `plasmapy.tests`
* `plasmapy.utils`
#### YouTube
* recorded webinars vs tutorial series
* key difference is that webinars are done live w/ an audience
* types of videos
* educational: focus more on a plasma topic then `plasmapy` functionality
* condribution fundamentals: mechanics on contributing (installation, versioning, GitHub fundamentals, etc.)
* `plasmapy` highlights: quick videos (< 5 min) that demonstrate a simple pkg functionality
* recorded webinars
* `plasmapy` functionality: detailed videos or series on complex functionality (e.g. analysis process of a swept langmuir probe) ... educational and functionality highlighting
* topics
* How to/Process of Contributing
* ...
## Brainstorm
* refine workflow to help team be more productive and merge/develop more functionality
* the plasmapy review team ["PlasmaPy Reviewers"](https://github.com/orgs/PlasmaPy/teams/plasmapy-reviewers) should be requested to review a PR
* a team member needs to then claim the PR by assigning him/herself as a reviewer and assignee of the PR
* That person is then in charge of the review process for the PR
* during community meeting we should prioritize reviews for the coming week
* `numba`-fy functionality
* what should get this treatment?
* metadata standards
* most needed in simulations
* good cross-over and collaboration with Jimmy and Andrew with gkeyll
* Alternate revenue streams
* creating products to sell/distribute
* t-shirts
* t-shirt gun for conferences?
* sweatshirts
* hats
* sticker packs
* fridge magnetsstress balls
* pamphlets with QR codes
* business cards with QR codes
* bouncy balls
* pins
* A series of notebooks explaining different analysis techniques (might or might not include adding functionality to `plasmapy`)
* **Idea suggested by Steve**
* How to analyze a swept langmuir
* How to analyze a bdot signal
* bicoherence spectra
* time series analysis (pulling out entropy info, ...)
* ...