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

Variety in Line Shapes #85

Open
cjperks7 opened this issue Jul 25, 2023 · 6 comments
Open

Variety in Line Shapes #85

cjperks7 opened this issue Jul 25, 2023 · 6 comments

Comments

@cjperks7
Copy link
Collaborator

Due to my various needs, I would like there to be more flexibility available in aurora.radiation.get_local_spectrum(). I nominate myself to address these needs on appropriate branches to be reviewed by @fsciortino .

NOTE: In my efforts, I will be heavily relying on functions and data files from the Flexible Atomic Code (FAC, https://github.com/flexible-atomic-code/fac). This is because it can satisfy missing components to my needs not covered under OpenADAS. FAC may therefore become a hidden dependency when utilizing specific upgrades I need. Care would be taken for a more general user to have options to avoid this when possible.

Issue

Currently, only Doppler broadening is available for the line shape. I would like to convolute other shape due to other physics.

Motivation

  • I would like to also include Natural broadening
    • On SPARC, we are considering Kr, Xe as seeded impurities for Ti measurements per XICS as the current workhorse, Ar, will burn through at the high electron temperatures in a fusion reactor environment
    • This comes with a drawback as the FWHM from Lorentzian Natural broadening scales ~Z^4
    • How important this effect is depends on the specific transition you're considering due to the specific population mechanisms, i.e. if we consider the He-like seqeuence this is still irrelevant for the z line, but can be comparable to the FWHM from Doppler broadening at lower ion temperatures for the w line (which is also brighter). Similar observations have been made for the Ne-like sequence.
    • We therefore wish to investigate how a Natural broadening component would impact Ti/vtor profile reconstructions on SPARC (per detector post-processing that will eventually be a dedicated module in ToFu)
  • I might also include Instrumental broadening
    • I use the ToFu synthetic diagnostic code (by D. Vezinet: https://github.com/ToFuProject/tofu, I understand you're familiar) which automatically convolutes instrumental broadening effects when performing the spectral-integration for the throughput to a pixel
    • Similar to Natural broadening, we wish to investigate an Instrumental broadening component and the impact on Ti/vtor profile reconstructions on SPARC (per detector post-processing that will eventually be a dedicated module in ToFu)
    • It may be useful for other users or for quick scoping to include a model for a Gaussian Instrumental broadening
  • I would like to also include super-Gaussian features due to suprathermal ions
    • On C-Mod, I am investigating potential observations of direct ICRF heating into the Ar impurity
    • I am in the process of calculating what the RF-accelerated Ar energy distributions are
    • We hypothesize that the energies reached are high enough to make a significant impact on the transport causing a significant drop in impurity density
    • This might have a noticeable effect on the line shapes measured from XICS
    • I would therefore like to explore this component when doing full spectra modeling, i.e. in ImpRad
    • I would also like to explore the impact of suprathermal ions on the inferred ion temperature on C-Mod

Plan of Action

  • The chunk of code in aurora.radiation.get_local_spectrum that calculates the Doppler broadening profile will be moved to a hidden sub-function
  • Similar hidden sub-functions will be created for other line spaces due to other physics
  • A task manager would therefore obtain profiles from user-requested physics (units 1/AA), convolute them together, and then multiply the relevant PEC at a wavelength (units ph/cm3/s) hence yielding the local spectrum (units ph/cm3/s/AA)
    • The default would be just do Doppler broadening to not perturb anyone else's workflows upon PR
  • For Natural broadening
    • I will be directly utilizing transition rates calculated by FAC and will likely use FAC's built-in file reading functions
    • Alternatively for a general user, they should be able to directly give transition rates per wavelength to avoid a FAC dependency
  • For Instrumental broadening
    • I will likely be inputting values into a Gaussian model that were informed via ray-tracing with ToFu
    • SPARC's XICS system is highly non-traditional as is evident in the spectral resolution maps so really ToFu ray-tracing is appropriate to properly model is effect
    • As such, a general user would interact with this the same extent I would here via inputting parameters from an average spectral resolution map
    • Maybe more sophistication would be implemented later, i.e. for C-Mod's XICS, as I am curious
  • For suprathermal ions
    • I am exploring calculating RF-acclerated ion energy distributions from a number of resources (ASCOT, TRANSP, TORIC+CQL3D via S. Frank's current work)
    • In all cases, a user would likely need to directly provide a data file of the distribution or input parameters into an RF-tail model

@fsciortino any opinions?

@fsciortino
Copy link
Owner

Hey @cjperks7 , this all sounds great! Strong encouragement from my side. Only concern: please try not to make your code specific to one application or another, but keep it general for other users. I know of several people across institutions who may be interested in these developments and could contribute at some point!

Worth mentioning: one challenge is to make the code efficient. If you do something super detailed, but it takes minutes to run, it may be good, but would have different applications. What is currently in Aurora isn't optimized for many calculations and line-integrals, but gives the gist of it (the more optimized version was used for BITS for C-Mod analysis, you might remember).

@cjperks7
Copy link
Collaborator Author

@fsciortino, I understand the concerns you point out under all my posts. I will be clear with providing minimum working examples so that you can quickly see progress yourself and provide feedback on flexibility.

This will probably be an ongoing enhancement for a while before PR as I work on other physics in parallel (as always...) so hopefully you can review at your leisure.

FYI I have thought about using BITS to see what its basis functions would say about suprathermal ion features. Down the line though

@cjperks7
Copy link
Collaborator Author

As I work on this, feel free to point whatever collaborators you're thinking of my way if you ever get the chance. More people with eyes on this can assure flexibility.

@cjperks7
Copy link
Collaborator Author

cjperks7 commented Aug 3, 2023

@fsciortino Can I get write access to the Aurora repo?
Screenshot 2023-08-03 at 11 25 06 AM

@fsciortino
Copy link
Owner

@cjperks7 done!

@cjperks7
Copy link
Collaborator Author

cjperks7 commented Aug 3, 2023

Thank you very much!

cjperks7 pushed a commit that referenced this issue Aug 3, 2023
…ions that can be shared amongst similar broadening mechanisms
cjperks7 pushed a commit that referenced this issue Aug 3, 2023
cjperks7 pushed a commit that referenced this issue Aug 4, 2023
cjperks7 pushed a commit that referenced this issue Aug 4, 2023
cjperks7 pushed a commit that referenced this issue Feb 13, 2024
…efficient is related to: either central wavelength or adf15 isel
cjperks7 pushed a commit that referenced this issue Feb 13, 2024
cjperks7 pushed a commit that referenced this issue Feb 13, 2024
…aussians each with a known variance. NOTE: Assumes no systematic shift as isgit add aurora/line_broaden.py git add aurora/line_broaden.py
cjperks7 pushed a commit that referenced this issue Feb 15, 2024
cjperks7 pushed a commit that referenced this issue Feb 17, 2024
cjperks7 pushed a commit that referenced this issue Feb 17, 2024
…hod so included an alternative using scipy's built-in function
cjperks7 pushed a commit that referenced this issue Feb 17, 2024
cjperks7 pushed a commit that referenced this issue Feb 19, 2024
cjperks7 pushed a commit that referenced this issue Feb 29, 2024
cjperks7 pushed a commit that referenced this issue Apr 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants