Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrating non-Maxwellian distribution functions? #235

Open
jwreep opened this issue Apr 5, 2023 · 4 comments
Open

Integrating non-Maxwellian distribution functions? #235

jwreep opened this issue Apr 5, 2023 · 4 comments
Labels
Atomic Physics Knowledge Requires some knowledge of atomic physics effort-high help wanted

Comments

@jwreep
Copy link
Collaborator

jwreep commented Apr 5, 2023

Currently there's an extension to CHIANTI called KAPPA (http://kappa.asu.cas.cz/) that recreates its IDL structure for various kappa distributions, with the same functionality otherwise. The ionization equilibria, etc, could presumably be pooled into a separate H5 file as is being done for CHIANTI. For most of the functionality, it is identical to CHIANTI with one extra input parameter (kappa value).

Presumably fiasco could be extended to incorporate this with a bit of effort? Is there any interest in doing so?

Paper on the package: https://ui.adsabs.harvard.edu/abs/2021ApJS..257...62D/abstract

@wtbarnes
Copy link
Owner

wtbarnes commented Apr 6, 2023

Huh I hadn't even thought about integration with KAPPA. That is a really interesting idea.

I've not ever used KAPPA so I'm not really sure what the API/database look like. Are there additional file types needed (e.g. other than the usual elvlc, wgfa, etc.) or is it literally a drop-in replacement for the entire database? Do you have a sense of what calculations we would need to modify? My naive understanding is that anything that involves an integration over a cross-section has to be recomputed for varying $\kappa$ values.

If it is largely just the database that is modified then it probably wouldn't be too challenging as it would just be a matter of rebuilding the HDF5 database and then pointing fiasco at that. If there are significant changes in the underlying calculations, it becomes more tricky.

@jwreep
Copy link
Collaborator Author

jwreep commented Apr 6, 2023

I think the main data files are largely the same format (except that it's meant to be compatible with CHIANTI 10 rather than the older versions). There are a couple of extra file types that seem to be ionization/recombination rates broken down for different values of kappa.

Comparing the directories for a random ion:

CHIANTI 10:
ne_4 jreep$ ls ne_4.diparams ne_4.elvlc ne_4.rrparams ne_4.scups.fits.gz ne_4.drparams ne_4.fblvl ne_4.scups ne_4.wgfa

KAPPA:
ne_4 jreep$ ls ne_4.drparams ne_4_k10.ups ne_4_k3.dwns ne_4_k5.dwns ne_4.elvlc ne_4_k15.dwns ne_4_k3.sav ne_4_k5.sav ne_4.fblvl ne_4_k15.sav ne_4_k3.tioniz ne_4_k5.tioniz ne_4.rrparams ne_4_k15.ups ne_4_k3.tionizr ne_4_k5.tionizr ne_4.scups ne_4_k2.dwns ne_4_k3.trecombr ne_4_k5.trecombr ne_4.splups ne_4_k2.sav ne_4_k3.ups ne_4_k5.ups ne_4.transp ne_4_k2.tioniz ne_4_k33.dwns ne_4_k7.dwns ne_4.trparam ne_4_k2.tionizr ne_4_k33.sav ne_4_k7.sav ne_4.wgfa ne_4_k2.trecombr ne_4_k33.tioniz ne_4_k7.tioniz ne_4_k1.80.tioniz ne_4_k2.ups ne_4_k33.trecombr ne_4_k7.tionizr ne_4_k1.80.trecombr ne_4_k25.dwns ne_4_k33.ups ne_4_k7.trecombr ne_4_k10.dwns ne_4_k25.sav ne_4_k4.dwns ne_4_k7.ups ne_4_k10.sav ne_4_k25.tioniz ne_4_k4.sav ne_4_mxw.tionizr ne_4_k10.tioniz ne_4_k25.tionizr ne_4_k4.tionizr ne_4_mxw.trecombr ne_4_k10.tionizr ne_4_k25.trecombr ne_4_k4.trecombr ne_4_k10.trecombr ne_4_k25.ups ne_4_k4.ups

The routines for calculating free-free or free-bound emission are essentially modified versions of the CHIANTI routines to make adjustments in the equations. The biggest limitation is that there are only discrete values of kappa accepted (2, 3, 4, 5, 7, 10, 15, 25, 33).

@jwreep
Copy link
Collaborator Author

jwreep commented Apr 6, 2023

The user guide explains what the new files are:

Screen Shot 2023-04-06 at 10 43 11 AM

@wtbarnes
Copy link
Owner

wtbarnes commented Apr 8, 2023

Ok, looking at those files above, I'm unsure (just off the top of my head) where the "downsilon" files come in to play. From my understanding those files do not exist in CHIANTI.

I can imagine the API for this kind of feature being an argument for kappa= with the default being zero (corresponding to a Maxwellian) and the possible values being those you've listed above. In that way, it would be easy to incorporate these changes by then just selecting the appropriate datasets based on that value of $\kappa$.

I say all this with the caveat that fiasco is still lagging behind the Maxwellian version of CHIANTI and my current priority is implementing the changes introduced in v9 and v10. However, I think this should be the next step on the roadmap after those changes. The ability to relax the assumption of thermal equilibrium with one keyword would be really powerful. It would be really useful to gather a list of changes that need to be made to fiasco in order to support this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Atomic Physics Knowledge Requires some knowledge of atomic physics effort-high help wanted
Projects
None yet
Development

No branches or pull requests

2 participants