Open namurphy opened 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.
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.
The
plasmapy.physics
contains a bunch of functions to calculate plasma parameters, such as many of the ones inbapsflib.plasma.core
. Inplasmapy.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 theParticle
class andparticle_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 forplasmapy.physics
may change somewhat, possibly including renaming it to something likeplasmapy.parameters
. The API ofplasmapy.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.