---
# System prepended metadata

title: 'PlasmaPy Dispersion Meeting | Thursday 2021 July 22 at 14:00 PT / 17:00 ET'
tags: [dispersion, ' minutes']

---

---
tags: dispersion, minutes
---

# PlasmaPy Dispersion Meeting | Thursday 2021 July 22 at 14:00 PT / 17:00 ET

[![hackmd-github-sync-badge](https://hackmd.io/uYvYWplHQpWyO95ICli2FQ/badge)](https://hackmd.io/uYvYWplHQpWyO95ICli2FQ)


### Video Conference Information
* Instant messaging: [Matrix](https://element.im/app/#/room/#plasmapy:openastronomy.org) and [Gitter](https://gitter.im/PlasmaPy/Lobby)
* [GitHub Minutes Repository](https://github.com/PlasmaPy/plasmapy-project/tree/master/minutes)
    * [Dispersion Sub-directory](https://github.com/PlasmaPy/plasmapy-project/tree/master/minutes/dispersion)
* [PlasmaPy on GitHub](https://github.com/PlasmaPy/plasmapy) ([pull requests](https://github.com/PlasmaPy/plasmapy/pulls), [issues](https://github.com/PlasmaPy/plasmapy/issues))
* [PlasmaPy Enhancement Proposals on GitHub](https://github.com/PlasmaPy/PlasmaPy-PLEPs)
* [PlasmaPy Google Calendar](https://calendar.google.com/calendar?cid=bzVsb3ZkcW0zaWxsam00ZTlrMDd2cmw5bWdAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ)
* GitHub Project: None at the moment

## Agenda (please feel free to edit or add items)

1. Introductions
2. GitHub Project: None at the moment
3. [minutes from last meeting 2021-01-21](https://hackmd.io/@plasmapy/Hka7cdP1O)
4. where do we stand?
5. what are the analytical solutions to add?
6. what are the numerical solvers to add?
7. what are the next steps?
8. ...
9. Issues
    1. [#973](https://github.com/PlasmaPy/PlasmaPy/issues/973): Two-fluid dispersion functionality
    2. ...
10. Pull requests in progress 
    1. [#1189](https://github.com/PlasmaPy/PlasmaPy/pull/1189): Hollweg solver

## Attendees

* Erik
* Nick
* Ben
* Ramiz
* Elliot
* Shane

## Action Items

***Shane***
* Open PR to refactor `plasmapy.dispersion` and create the analytical sub-pkg

***Erik***
* Update PR #973 with the lists from today's meeting and convert it to an Epic

## Minutes

* [Last mtg](https://hackmd.io/@plasmapy/Hka7cdP1O) was in January before Ramiz got into super thesis mode
* Need to find ways to validate the functions.  
    * Some paper have plots that can be reproduced, like for Bellan solution.
    * Some solutions...it's hard to find plots, or sometimes maybe just for reduced limits. It gives numbers, but are they the right numbers?
    * Not necessarily a good solution at the moment.  Good to compare to plots, good to compare to existing functionality.
    * Should build in warnings when a dispersion relation is being used with invalid assumptions
    * Docs should include assumptions and regimes of validity.
* [Hollweg PR](https://github.com/PlasmaPy/PlasmaPy/pull/1189)
    * Could replicate a plot in Hollweg's paper
    * Close to ready for a review
* Good to start with smaller pull requests. Good to start out with a refactoring, getting to the file structure discussed in [past meeting](https://hackmd.io/XDImSQ8iTsOxvtrGzHFexw)
* pkg structure for dispersion should follow
    ```bash
    plasmapy
    +-- dispersion
    |   +-- analytical/  # for solutions
    |   |   +-- __init__.py
    |   |   +-- two_fluid.py
    |   +-- numerical/  # for solvers
    |   |   +-- __init__.py
    |   |   +-- hollweg.py
    |   +-- __init__.py
    |   +-- core.py
    |   +-- dispersionfucntion.py
    ```
* What analytical solutions do we want in PlasmaPy? (all taken from bellan2012)
    - [x] Bellan soln
    - [ ] Hasegawa eqn 5
* What numerical solvers do we want in PlasmaPy? (all taken from bellan2012)
    - [ ] Hollweg...solving eqn 3
    - [ ] Hirose...solving eqn 7
    - [ ] Chen and Wu **??** section 1.5
    - [ ] Stix cold plasma...solving eqn 9
* Next steps
    1. Open a PR that refactors current code into the above file structure for the analyical sub-pkg
    2. Review and impelment Hollweg solver PR #1189
        * define the solver
        * create the numberical file structure in `plasmapy.dispersion`
        * will need a notebook but we can do one of the following options
            1. include notebook in PR
            2. open issue to create notebook
            3. open PR for notebook in parallel
    3. Creating a factory function
        * a possible model
            ```python
            def two_fluid_solution(branch="bellan"):
                """This is a factory function."""
                _solns = {
                    "bellan": two_fluid_bellan,
                    "hasegawa": two_fluid_hasegawa,
                }
                _soln = _solns[branch]

                ...

            def two_fluid_bellan():
                ...

            def two_fluid_hasegawa():
                ...
            ```
        * do we want a factory function for soutions and solvers or one factory func to rule them all?
        * 

