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

Implement an X-Ray Thomson Scattering (XRTS) module #24

Open
lemmatum opened this issue Jun 30, 2022 · 3 comments
Open

Implement an X-Ray Thomson Scattering (XRTS) module #24

lemmatum opened this issue Jun 30, 2022 · 3 comments
Labels
2022 Issues created as part of the 2022 Hack Week.

Comments

@lemmatum
Copy link

We already have some optical Thomson Scattering features in PlasmaPy, but it would be good to extend these into the XRTS and warm dense matter regimes, where Compton scattering features, and electron degeneracy, and chemical potentials become important.

@rocco8773 rocco8773 added the 2022 Issues created as part of the 2022 Hack Week. label Jul 10, 2022
@pmk-LANL
Copy link

pmk-LANL commented Jul 12, 2022

I think the easiest simulation to get up and running (which still has some depth to it) would be to simulate the free electron component of the XRTS in the random phase approximation (RPA) regime.

Scattered spectrum power is related to the dynamic structure factor S(k,w) as well as the incident and scattered wavevectors:
image

Here is the Dynamic Structure Factor equation for the free electron component:
image
The leading term is just detailed balance, which can be implemented as its own function.

Probably the most complicated part of it is doing the complex-valued triple integral for the dielectric function (in the RPA regime), but if it is done in a general enough way, you can use this function with various input distribution functions:
image
This requires two real-valued integrals to be done (most likely in Gaussian quadrature), followed by a Cauchy Principal Value integral to deal with the asymptote

We want to use the Fermi-Dirac distribution specifically to describe degenerate electrons in the warm dense matter regime:
image

The chemical potential in the above distribution function can be described by an interpolation between classical and quantum theories, given by:
image

where the coefficients are A = 0.25945, B = 0.072, and b = 0.858

Note that as temperature T goes large, the above distribution function reduces to the Maxwell-Boltzmann function, so it's still valid for classical plasmas. This interpolated chemical potential is already implemented in PlasmaPy here.

@pmk-LANL
Copy link

pmk-LANL commented Jul 12, 2022

The integral can be done by splitting into a double integral and a Cauchy integral. For the double integral, I think we can use scipy.dblquad. For the Cauchy integral we can use scipy.integrate.quad with weight = 'cauchy' to get the principal value. This is just a wrapper around the QAWC method from QUADPACK.

And since these integrals are being dong at every value of photon energy in the simulation space, we might be able to further optimize this by using scipy.integrate.quad_vec.

@lemmatum
Copy link
Author

I should've added that the theta in the equation for the chemical potential is the degeneracy parameter given by:
image

Where the Fermi energy is:
image

I already implemented the Fermi Energy in plasmapy here and theta here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2022 Issues created as part of the 2022 Hack Week.
Projects
None yet
Development

No branches or pull requests

3 participants