SmileiPIC / Smilei

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

Simulation of Ionization in an Hollow Cathode #171

Closed tommyesse95 closed 5 years ago

tommyesse95 commented 5 years ago

Hello! The next 6 months I will be working on the design of the ionization stage for a micropropulsion system and I'm trying to find the ideal open-source code to simulate the model of an hollow cathode (cylindrical geomtery). I do not have much experience in programming therefore, before doing anything, I will have to study a lot. However before starting to focus on somethin, I would like to understand whether Smilei could be a solution for my problem or not. It's a master thesis so there is no need of a complete solution but maybe you already know that it will be impossible get reasonable results also at this first stage.

mccoys commented 5 years ago

Hi I don't think anybody related to Smilei is familiar with this kind of work, so we would need some more information on the physical parameters of your system. Note that PIC codes of this kind can only simulate plasmas that are not too cold and/or too dense. A good starting point is to compute the debye length of your plasma. This would provide some idea of the resolution needed, thus the total number of cells in the simulation. Multiply by ~10 to obtain an idea of the number of particles. If your simulation would contain much more than a billion particles, then this becomes difficult. Note also that, for most applications, PIC codes require enormous amount of computing resources, from 10000 to millions of cpu-hours.

tommyesse95 commented 5 years ago

Thank you for the answer! I think that maybe it's better trying to study more in depth the physics of the phenomena involved and afterwards come back here giving you more concrete data. Thank you again for now!

MickaelGrech commented 5 years ago

Usually plasma thruster simulations rely on electrostatic PIC codes which solve the Vlasov-Poisson problem, while SMILEI is an electromagnetic PIC code that will solve the Vlasov-Maxwell problem. You can find an exemple of Vlasov-Poisson simulation in this paper: https://doi.org/10.1063/1.5017033.

Solving the Vlasov-Poisson problem has a very low computational cost with respect to solving the full Maxwell problem. Therefore, I think you should look for such a code for your study. Using SMILEI would require you to over resolve your simulation box and with a most likely prohibitive computational cost. Furthermore, it is also most likely that you will not find in SMILEI as it is right now correct boundary conditions to treat your problem. Developing them would be nice, but certainly not do-able in the short time of a traineeship.

I do not know however any open-source electrostatic PIC code. If you do find one, please let us know.

jdasmith commented 5 years ago

OOPIC / XOOPIC has been used for this kind of calculation, available from John Verboncoeur's group . I'm not sure how actively maintained. There are some python projects that perform electrostatic pic around, and actually the Starfish code from Lubos Breida targets this kind of work (is in Java for understandability, rather than written for performance). These simulations do tend to take quite a long time, and there are various assumptions you might want to make or performance advantages that are not natural for an 'electromagnetic' PIC code like Smilei rather than an Electrostatic one. My preferred code for this kind of work was the commercial code VORPAL (VSim), and there are several publications using this software for electronic propulsion. There is a GPL code NINJA in use in the ion source community that you may also find could be applied to these kind of problems. JP Boeuf is also active in this domain. Smilei doesn't solve the right equations or have the appropriate boundary conditions for electrostatic plasma simulation - a principal difference being the characteristic length scales vs size of the domain. You might try adapting IBSIMU to these requirements too (again from the ion source community). To get results in a reasonable time, you will need some parallel advantage, which mostly rules out many of the non-commercial software tools. Keep in mind that the other principal applications of electrostatic codes are to things like semiconductor processing, so the opportunity to exploit the code base is high. Vizglow, Pegasus are alternative commercial solutions, which I have not explored.

tsung1029 commented 5 years ago

I think the best starting point would be XPDC1 or XPDC2, available through John Verboncoeur's group @ MSU here:

https://ptsg.egr.msu.edu/#Software

And as pointed out previously, it may not be actively maintained.