---
# System prepended metadata

title: 2021 Ed. | Roadmap Brainstorming
tags: [roadmap, ' 2021']

---

---
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, ...)
    * ...
