Repository navigation
Description
Over the last few years, I have gradually learned that plasmas tend to contain atoms. Hence, we will need to include some degree of atomic physics within PlasmaPy. The atomic data needs in plasma physics are very broad. For example, temperatures of interest range from ~10 K in molecular clouds to ~30-40 MK in solar flares. Astronomers tend to care about the dozen or so most abundant elements in the universe, while laboratory plasma physicists care a lot about impurities leeching in from the plasma-facing wall which is often from different materials. Dust also plays important roles in laboratory and astrophysical plasmas.
Including the ability to access all of the information any plasma physicist might ever need would be a never-ending project that would increase the size of this package by orders of magnitude. However, the ability to access important atomic data will be extremely useful for numerous plasma physicists across sub-disciplines. Hence we will need to do a lot of strategizing about what the most important needs are and how best to fill them. Some questions are:
- What atomic data sets are most broadly needed by plasma physicists?
- How and to what extent should PlasmaPy fulfil atomic physics needs?
- What are the existing databases, and how would it be best to partner with them?
- Are there atomic data needs that are not being fulfilled by any databases?
- What should we include in the core package in our version 0.1 release?
A subset of the atomic data needs are:
- Ionization and recombination rates
- Collisional ionization, photoionization, etc.
- Radiative recombination, dielectronic recombination, etc.
- Cooling rate coefficients (e.g., for a given ion at a given temperature)
- Collisional cross sections
- Charge exchange cross sections
- Photoionization cross sections
- Everything associated with plasma spectroscopy and radiative transfer (which would be huge amounts of data and would undoubtedly be too much)
- Ability to work with both Maxwellian and non-Maxwellian distribution functions
Occasionally there are nicely behaved functions that would be easy to implement such as the radiative recombination rate. Things like that are definitely worth including.
I am not sure what the best ways to proceed are. Some of our many options are:
- Include the most important atomic data within the core package (or not)
- Have an affiliate package that would be responsible for atomic data needs
- Have query or bridge routines within the core package that would get the requested atomic data from websites or the local directories that contain the databases
- Or instead, not include much in the way of atomic data within PlasmaPy and instead just put up some documentation that lets users know how/where to access atomic data using other databases/Python packages.
I am imagining that this will be a long-term conversation, but I figured it would be worth bringing up sooner rather than later. Any thoughts or ideas?
Activity
namurphy commentedon Jul 19, 2017
Existing atomic databases or spectral modeling codes used in astrophysics include:
Fusion databases include:
Other databases include:
ORNL Redbooks
Potentially interesting references and websites
namurphy commentedon Jul 31, 2017
Astroquery has some really helpful functionality in terms of retrieving atomic data from places like NIST.
antoinetavant commentedon Aug 2, 2017
Concerning Cross sections (Elastic, excitation, ionization) LXcart is a quite well known data base.
lemmatum commentedon Apr 3, 2018
I think a good chunk of this overlaps with SpectroscoPy. In particular, this issue aims to create atomic state classes as an easy to use interface for fetching information from various databases. We just need to be careful about creating circular dependencies, in case SpectroscoPy will need to import plasma functions from PlasmaPy in the future.
namurphy commentedon Oct 31, 2018
Cross-reference: #404
namurphy commentedon May 2, 2019
It seems reasonable to close this issue since it's been quiet and there are no tasks associated with it. However, if anyone finds this issue in the future, please comment if you have atomic data needs that are missing!