SmileiPIC / Smilei

Particle-in-cell code for plasma simulation
https://smileipic.github.io/Smilei
337 stars 119 forks source link

Maxwell solver for minimal numerical dispersion #365

Closed andsunds closed 3 years ago

andsunds commented 3 years ago

As a part of my current project, we aim to study the (physical) dispersion of a laser pulse travelling through a plasma. For that, we need to accurately resolve the electromagnetic fields, and numerical dispersion is a big limiter to how accurately we would be able to do this study with PIC.

My question to you is therefore, which of the listed Maxwell solvers you would recommend for minimal numerical dispersion? (A quick look at the Smilei website doesn't give me too much information about the differences between the solvers.) Do you have or are you working on spectral solvers (if any of the ones available aren't already)?

beck-llr commented 3 years ago

Hi This is a tough question to answer to. We do have spectral solvers but it is not yet in final form and it is not documented yet. On top of that they require the use of another library so it is not straightforward to use them at the moment. I think the one for cylindrical geometry is actually in a more advanced state than the Cartesian one.

I don't know about your numerical setup but are you aware that the standard solver has a perfect numerical dispersion in the kx=dx ky=dy direction ? So if you're able to setup a simulation in which the laser propagates in that direction and you do not mind about dispersion along the other directions that can work for you.

The other advanced solvers might do the trick too. The Lehe solver is ok to mitigate Cherenkov but you won't have an exact dispersion relation. My advice here would be to use the Bouchard solver since it is probably the most robust one but someone else should complement my answer here because that is as far as I know.

Hope that helps.

MickaelGrech commented 3 years ago

As @beck-llr mentioned the best solver will depend on what you want to model (directionality of the waves, frequency, etc). Bouchard solver could indeed be a very good solution as it has been tune to have the most, isotropic numerical dispersion relation. However, you should make sure to not increase the sufficiently the resolution, because it is not very good at very high frequency, so make sure your signal is not too close to pi/dx. Luckily the fix is simple, just increase the resolution.

Guilleaumes commented 3 years ago

In order to complete previous answer with some results you may find :

andsunds commented 3 years ago

Thank you all for the info! I'll test these methods and see how it works.

Ideally the plan is to send the pulse either along the axis or slightly obliquely, so perhaps the Bouchard model might work. In the end, we have some other plans for modelling the phase shifts separately from the PIC simulation, but it's good to know the options and limitations of doing it all in PIC.