ComputationalRadiationPhysics / picongpu

Performance-Portable Particle-in-Cell Simulations for the Exascale Era :sparkles:
https://picongpu.readthedocs.io
Other
694 stars 218 forks source link

how is ionization process modelled? #4481

Closed ZippoFight closed 1 year ago

ZippoFight commented 1 year ago

hello everyone, i am new to PIConGPU, and want to simulate gas discharge process in argon. i noticed this code calculate collisional ionization by LTE model base on Thomas-Feimi model. i am wondering if this method of ionization consideration is applicable for gas atom ionization? and if it can be used for hydrogen gas molecule ionization?

another question is whether excitation and charge exchange are included?

thank you in advance.

pordyna commented 1 year ago

@BrianMarre, I think this is a question for you ;)

BrianMarre commented 1 year ago

Yes, Thomas-Fermi is in principle applicable to gas discharges but with significant caveats.

First PIConGPU is not intended for gases, since PIC(Particle in Cell) assumes that macro-particles are free and usually we assume our macro-particles to be atoms which does not represent reality for non-ionized noble gasses, where initially the atoms are bound in molecules. If you want to start with a molecule you need to define a species for the molecule with the appropriate parameters, easy just take one example and set the correct values. In addition you would need some mechanism for molecule break up, not yet existing but could be developed with some work as a derivative from ionization, but requires non-trivial coding and modelling work in PIConGPU, go ahead if you want we will not say no to a user pull request, but do not expect to be done in a day or week unless you are already proficient with PIConGPU coding. In addition you would need to provide some average ionization energy input for the molecule species, from the code side easy but the current implementation only allows one ionisation energy per charge state, so no excited states outside pre-simulation averages. If you are fine with starting with free atoms stuff becomes easier, hydrogen species can be easily taken from examples and ionization data for hydrogen is already available, just set them in the species. BUT if you start with a completely non-ionized hydrogen atom gas, you will not have any free electrons able to interact with the externally applied gas discharge field, therefore thomas-fermi ionization will not do anything, since it relies on the local free electron density. The initial free ionization would have to come from field ionization, likely only at far higher field values than in reality, since in reality some free electrons are to be expected to exist, providing a start for cascades. It would probably be more realistic to initialise at least one free electron macro-particle per cell, with weight(particle density equivalent) according to the saha-equation for the initial temperature, providing an initial free electron density that can be accelerated by the external field and start a cascade. Even if you do that Thomas-Fermi ionization is not that well suited to this situation, since it only covers ground-to-ground state ionization if using standard input data and even with custom data only supports tracking charge states, not atomic state. You would therefore be limited to one atomic state per charge state. I do not know whether that would be sufficient for your case, gas discharge is not my speciality. Also Thomas Fermi assumes thermal electron distributions, not really true for representing electron spectra for electrons accelerated in an external field, it will therefore give you some ionization but not necessarily a physical one, might give a reasonable approximations but no guarantee in without comparison to more complicated models or the experiment.

So TLDR, standard PIConPGU Thomas-Fermi ionization is well suited for atom-ionization from thermal like spectra and with some further development could be extended to average/ground-ground molecule ionization from thermal like spectra.

Regarding your second question, no current stock ionization does not include ionization from/to excited states, excitation in general or charge exchange. There is an upcoming physics extension for PIConGPU(FLYonPIC) I am developing which does cover your case much better. It will include for arbitrary spectra: collisional ionization, collisional de-/excitation and radiative spontaneous deexcitation for atoms using flyCHK atomic models and could be extended to molecule ionization with some coding work on your side and you providing an average state model for the hydrogen molecule as input. Combined with a molecule break-up model that would actually cover your case quite well apart from charge exchange, but would require a significant time investment on your side.

If you are willing to go the full mile, you could also implement a charge exchange as a derivative of our binary collision extension, but this would entail additional new physics modelling as far as I can tell, so even one step further.

Hope that answers your questions, if you have further questions or something is unclear just ask again. If I answered your question please remember to close the issue, thanks in advance. ;)