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
Create functionality for calculating transport coefficients #35
Comments
Here is a brainstorm of a few functions to include in def Coulomb_logarithm():
def Spitzer_resistivity():
def Bohm_diffusion_coefficient():
def collision_time():
def collision_frequency():
def collision_cross_section():
def collision_rate(): The Coulomb logarithm will need a function I am not sure yet about how to structure the functions for the Braginskii coefficients so that they are as intuitive and understandable as possible. Any thoughts on other things to include would be appreciated! |
There are a few different ways to calculate the Coulomb logarithm in addition to the ones already listed. Gericke and Murillo's PRE (2002) list 6 different ways to obtain this value for dense plasmas. Might be handy to include these |
Thank you! I was just talking with someone at the APS DPP meeting last week about how to generalize the Coulomb logarithm, so I think it would be great if we could add more flexibility for people who study strongly coupled plasmas. The full reference is: Dense plasma temperature equilibration in the binary collision approximation by Gericke, D. O., Murillo, M. S., and Schlanges, M., Phys. Rev. E, 65, 3, 036418 (2002), doi: 10.1103/PhysRevE.65.036418 |
No problem! I definitely have a vested interest in seeing this happen as I've worked with warm dense plasmas where classical Coulomb logarithm becomes negative and explodes! 🤣 |
To follow up on the discussion in #166, I was thinking that it would probably be really important to get experts in plasma transport to provide advice on the best ways to calculate different transport quantities. I personally have been finding it hard to figure out which are the most general and/or reliable ways to calculate all of these things since I'm only somewhat familiar with transport theory. I'm also wondering about the best way to organize the calculations for transport quantities. Should we create a class instead of having separate functions to calculate everything? |
I agree getting as much input as possible from the community would be great! For my 2 cents, I think Spitzer and Braginskii are as fundamental as we have and make a great starting point. There is a 1986 Epperlein-Haines paper that fixed errors in a couple of the original Braginskii coefficients, and one in 2013 by Ji and Held that may even be another improvement, also some interesting consideration of Ti > Te cases. The Bohm diffusion coefficient I think is a similar sort of landmark that helps you figure out where you are when throwing the bones of the plasma transport. It would be good to ask a collisionless magnetic person what their mainstay theories are. I know they are always talking about neoclassical microturbulence gyrokinetic gyroBohm something-or-other. I haven't learned those yet. :) Other areas all probably have their own favorites theories too, I know in inertial fusion plasmas they often use Braginskii or similar but include a 'flux limiter' factor to account for nonlocal effects. In terms of organizing, it's a lot to keep track of. You could certainly have a bunch of functions that do the actual computations, which I guess seems unavoidable. A class might help organization, but you are already organized somewhat into the transport module. I think you could be okay with just functions. If you can do things like, eta_s = trans.conductivity('Spitzer', T_e, n_e, ion='p') or similar, I think it's pretty sweet. |
We decided at the telecon today that we'll be pushing this angle for the 0.1 prerelease. @namurphy said he wanted to assemble an ELITE TRANSPORT TASK FORCE (I'm not kidding, 75% of this is what he said) to make sure this is getting done on time and soon. I'll help out as time allows. @samurai688, @lemmatum? |
👍 I feel like I've always wanted to be part of an ELITE TRANSPORT TASK FORCE but never knew the words to explain. |
That Borat picture is pure gold, and I'm now angry that I missed the opportunity to call this an ELITE ALPHA/NEUTRAL TRANSPORT TASK FORCE. |
Cool, well I can start in on the Braginskii coefficients! If anyone has any time we will need tau_e and tau_i as well. What we will want are the "average momentum relaxation rate" electron-ion and ion-ion collision times in the form given on page 37 of the 2016 NRL formulary. The only issue with the equations given in the formulary is that they are assuming singly charged ions. A form that includes the effects of ion charge state is given in the original 1965 Braginskii paper, equations (2.5e) and (2.5i), and is also in Callen's online textbook Chapter 2 as inverse of equation 2.17 and inverse of equation 2.36. |
I've got some functions written up based on Chen and some papers on Langmuir probes in collisional plasmas. Shall I include these? |
Nice! These may prove very useful. I'm thinking we may wind up with many different forms for coulomb logs and mean free paths and so on, which could be healthy in development so that we can figure out all the differences and be prepared to fully document whatever we end up with. |
At some point we'll need to write the functionality for calculating transport coefficients, including resistivities, viscosities, Braginskii everything (and then some), etc. This is one of the next steps after pull request #34 to calculate plasma parameters. My hope is to have docstrings that describe the meanings of each of these coefficients in terms that are understandable to undergraduates but useful to experienced plasma physicists (which is what I'm trying to do for the plasma parameter functions). The equations would need to be put in SI units for consistency with the rest of the code, but should allow temperature to be in eV and so on. These will also need unit tests. (We'll eventually need a full separate documentation page to introduce/discuss the different plasma parameters, transport coefficients, dimensionless numbers, and so on but this can be a separate issue a few months from now once the API stabilizes a bit.)
Resources include:
I'll assign myself to this for the time being. It will probably take me a couple of weeks to get to this, so someone else could take the lead on this if you'd like!
The text was updated successfully, but these errors were encountered: