--- tags: community, minutes --- # PlasmaPy Community Meeting | Tuesday 2023 Feb 21 at 2 pm ET ### Video Conference Information * [Zoom link](https://zoom.us/j/91633383503?pwd=QWNkdHpWeFhrYW1vQy91ODNTVG5Ndz09) * [Element chat](https://app.element.io/#/room/#plasmapy:openastronomy.org) * [GitHub Minutes Repository](https://github.com/PlasmaPy/plasmapy-project/tree/master/minutes) * ["Community" Sub-directory](https://github.com/PlasmaPy/plasmapy-project/tree/master/minutes/_community) * [Repository](https://github.com/PlasmaPy/plasmapy) ([pull requests](https://github.com/PlasmaPy/plasmapy/pulls), [issues](https://github.com/PlasmaPy/plasmapy/issues)) * [PlasmaPy Enhancement Proposals](https://github.com/PlasmaPy/PlasmaPy-PLEPs) * [Calendar](https://calendar.google.com/calendar/embed?src=c_sqqq390s24jjfjp3q86pv41pi8%40group.calendar.google.com&ctz=America%2FNew_York) ## Agenda (please feel free to edit or add items) [MPRL]: http://webhome.auburn.edu/~thomaed/mprl/mdpx-pages/mdpx-construction/construction-images-junejul/index.html [ZEUS]: https://zeus.engin.umich.edu/laser/ [bridge]: http://ems-docs.element.io/books/element-cloud-documentation/page/discord-bridge [SULI summer school]: https://suli.pppl.gov/2021/course/ 1. Introductions 2. [Issues](https://github.com/PlasmaPy/PlasmaPy/issues) - Classes for equilibria/configurations: - [#1978](https://github.com/PlasmaPy/PlasmaPy/issues/1978): pinches - [#1979](https://github.com/PlasmaPy/PlasmaPy/issues/1979): Harris sheet - [#1980](https://github.com/PlasmaPy/PlasmaPy/issues/1980): those cylindrical equilibria with Bessel functions whatever they're called 3. [Pull requests](https://github.com/PlasmaPy/PlasmaPy/pulls) - ... 4. 5. 6. ## Attendees * ... ## Action Items ***Person*** * ... ## Minutes Harris: $$B_x(y) = B_0 \tanh((y-y_0)/\delta)$$ dimensionless or **dimensional form** <- focus this for now Pinch: * takes current density -> outputs magnetic field * OR takes magnetic field -> outputs current density * AND optionally also takes a pressure profile * OR (in 2d axisymmetric case) takes stream function -> outputs the other three Magnetic flux rope (force-free) $$ \vec{B} = B_0 J_1(\lambda r) \hat{\theta} + B_0 J_0 (\lambda r) \hat{z}$$ * Sketching ```python= class Abstract1DEquilibrium(abc): pass def magnetic_field(self, one_d_coordinate: float[N]) -> np.ndarray[3, N]: pass def current_density(self, one_d_coordinate: float[N]) -> np.ndarray[3, N]: pass def pressure (same): # assume scalar pass class Pinch(Abstract1DEquilibrium): def __init__(self, current_density: Callable[Quantity, Quantity], # is this right format for Callable? magnetic_field: Callable[Quantity, Quantity], r_max = np.inf, # default unbounded for example for flux rope ): pass # figure out current density from magnetic field or other way around at this time # calling functions from another module """ TODO later: @classmethod def from_sympy(cls, expression) """ """ inputting discrete values: nah, but happy to provide example on how to do that via scipy.interpolate """ """ # not doing it like this: class Harris1DSheet(Pinch): def __init__(self, B0, y0, delta): B = lambda y: ... super().__init__(self, B) """ class Harris1DSheet(AbstractEquilibrium): def magnetic_field(self, x: float[N] # positional only args mean they share interface ) -> np.ndarray[3, N]: pass class ForceFreeFluxRope(Abstract1DEquilibrium): def magnetic_field(self, r: float[N]) -> np.ndarray[3, N]: pass def current_density(self, one_d_coordinate: float[N]) -> np.ndarray[3, N]: pass def pressure (same): # assume scalar pass ``` - [ ] TODO: [look into `omfit_classes`](https://omfit.io/code.html#module-omfit_classes.omfit_eqdsk) to see how much overlap there is and how much we can really bring to the table