BaPSF / bapsflib

A Python Toolkit for BaPSF
11 stars 7 forks source link

Use plasmapy.physics for plasma parameter calculations? #27

Open namurphy opened 5 years ago

namurphy commented 5 years ago

The plasmapy.physics contains a bunch of functions to calculate plasma parameters, such as many of the ones in bapsflib.plasma.core. In plasmapy.transport, we also have some functions for collision frequencies, transport coefficients, and Coulomb logarithms. One possibility would be for bapsflib to use the functions in PlasmaPy instead.

This would also involve using the functionality in plasmapy.atomic which provides access to basic atomic and particle data. This subpackage lets us avoid having to figure out details like ion masses and things like that. The most important features are the Particle class and particle_input decorator.

Because PlasmaPy heavily uses astropy.units, this issue would need to be addressed after #26 is addressed.

One potential issue is that the API of PlasmaPy is still pretty unstable and things are likely to keep changing around for a while. I think plasmapy.atomic is probably our most stable subpackage. The API for plasmapy.physics may change somewhat, possibly including renaming it to something like plasmapy.parameters. The API of plasmapy.transport is probably going to change a lot. A strategy to get around this would be to set up an interface within bapsflib that does the calling of the PlasmaPy functions. That way, the calls to PlasmaPy would only need to be changed in one place if PlasmaPy's API changes, so the API within the rest of bapsflib could have a consistent API.

In any case, I would be very happy to talk more about this. The ultimate goal of PlasmaPy is to foster the creation of an open source software ecosystem for plasma physics, so it would be fantastic to work together.

rocco8773 commented 5 years ago

We are having an internal discussion on what plasma constants/parameters we want to integrate into bapsflib and how to do it. I do like the idea of integrating PlasmaPy (less duplication), but I was holding off since PlasmaPy API has been going through a lot of development. In the meantime, I've been directing users to use PlasmaPy.

I think, internally, we need to go through a more comprehensive review of what plasma parameters would be useful for BaPSF users. At that point we can decide to integrate them into bapsflib directly or indirectly by contributing to PlasmaPy. The direction will depend on how tailored the tools will be for BaPSF.

A potential fruitfully area for collaboration will be plasma diagnostic/analysis tools. We will definitely need these for bapsflib and could be a good resource for PlasmaPy as well.

namurphy commented 5 years ago

I do like the idea of integrating PlasmaPy (less duplication), but I was holding off since PlasmaPy API has been going through a lot of development.

Very sensible! I wrote a bit more about the interface approach in https://github.com/PlasmaPy/PlasmaPy/issues/609 as a strategy for disruption mitigation.

A potential fruitfully area for collaboration will be plasma diagnostic/analysis tools.

Definitely! We do have some Langmuir probe analysis tools that are still under development, and there is still much more work to do that will likely be broadly applicable to a bunch of experiments.