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