ECP-WarpX / WarpX

WarpX is an advanced electromagnetic & electrostatic Particle-In-Cell code.
https://ecp-warpx.github.io
Other
305 stars 195 forks source link

Implement binary particle collisions #429

Closed RemiLehe closed 4 years ago

RemiLehe commented 5 years ago

For dense plasmas, it would be useful to have binary particle collisions implemented.

Here are a few references that could be useful:

Yin-YinjianZhao commented 5 years ago

@RemiLehe @MaxThevenet @jlvay

Some updates of my progress:

I have implemented the model proposed in Perez's paper (https://aip.scitation.org/doi/10.1063/1.4742167) by writing a small c++ code. The code is attached in the code.zip file. code.zip

Currently I can reproduce the results of non-relativistic tests in Nanbu's paper (https://www.sciencedirect.com/science/article/pii/S0021999198960491?via%3Dihub).

An attached ongoing report presents my implementation in details and the test results. main.pdf

Next, I will work on some tests that are relativistic.

Any comments are very welcome :)

MaxThevenet commented 5 years ago

Thanks! Note that the Smilei documentation mentions a typo in Perez's paper, but it is yet another one, see http://www.maisondelasimulation.fr/smilei/collisions.html

Yin-YinjianZhao commented 5 years ago

@MaxThevenet @RemiLehe @jlvay

Some updates of my progress:

Finally added a relativistic test into the report: relaxation to Maxwell-Jüttner distribution. Also added some equations to present the full version of Perez's elastic model and fixed a stupid mistake under Maxence's help. main.pdf

In addition, I have been working on some other tests, e.g. electrical conductivity (Perez), stoping power (Perez), energy transfer rate (Sentoku), beam relaxation (Sentoku), etc. But so far the results are not good. The reasons could be that I don't fully understand the corresponding physics behind these tests, and some details of these tests are not described clearly enough at least to me, so I applied something wrong, or there are still some issues of my implement of the algorithm. I will keep working on it.

Also, I will try to implement Sentoku's algorithm, so I can compare between his and Perez's.

Thanks!

RemiLehe commented 5 years ago

Thanks a lot for the update and the report! I'll have a look at it today!

Yin-YinjianZhao commented 5 years ago

@MaxThevenet @RemiLehe

Some updates of my progress:

Updated report: main.pdf

  1. I found when I implemented the algorithm, I mixed the two from Nanbu and Perez, in terms of computing the density parameter n12. But I realized it does not work well for general cases. So, I changed my implementation to follow Perez only. The updated algorithm is described in the report.

  2. To make sure my old tests still work, I redid all of them using the new implementation, and updated all figures in the report. The results still look good for the tests I have done. But notice that the relaxation becomes slightly slower as it should be for test 2.

  3. @RemiLehe You can have a look at the updated test 2. It includes a test with different weights in the same species. Let me know if this is what you were thinking and if it solves your concerns. From my current understanding, the two collision populations can be either the same species or not. But all particles in the same population should have the same mass and charge, while the weights of each individual particle could be different. Also, for each population, the local density needs to be solved according to the individual particle weight, but I didn't do that in my old code.

Next, I will try to do more tests as we discussed yesterday, and start to think about how to implement it into WarpX.

Thanks!

RemiLehe commented 4 years ago

Closed by #539