Turner benchmarks
Problem Description
Monte Carlo collisions (MCC) are used to model kinetic particles colliding with a continuum background species. Collisional problems are difficult to predict analyically, so benchmark problems, where output from one code is compared to output from another, trusted code, are acceptable. One suite of benchmark problems comes from Turner [TDD+13]. These problems model a capacitive, RF discharge of a helium plasma under various low-pressure conditions.
Theory
A full description of MCC is provided on the interactions page. To summarize, for each colliding “source” particle, a “target” particle is randomly drawn from the continuum species. For each possible collision, the associated cross section is computed and used to compute a collision probability. A random number is drawn to decide between each possible collision, and if one is selected, that collision is performed.
Simulation Setup
One-dimensional domain
Uniform mesh
Absorbing boundaries for charged particles
Neutral helium background with temperature \(T = 300\) K
Ion temperature: \(T_i = 300\) K
Electron temperature: \(T_e = 30000\) K
Input Files
There are four test cases.
This Python script
can be used to generate the input decks for each one.
The cross section data is copyrighted and therefore not provided. To get this data, write it in a format readable by hPIC2, and generate the input decks,
Download the supplementary material from Turner’s paper: https://doi.org/10.1063/1.4775084
Copy the cross section data into space-separated .dat files for each collision type, with the units converted to SI, e.g. eV converted to joules. The filenames should be
he_ion_elastic.datfor the ion-neutral isotropic elastic collisions,he_ion_back.datfor the ion-neutral backscattering collisions,he_electron_elastic.datfor the electron-neutral elastic collisions,he_electron_excitation_1.datfor the first set of excitation collisions,he_electron_excitation_2.datfor the second set of excitation collisions, andhe_electron_ionization.datfor the electron-neutral ionization collisions.Run
python3 turner_test_generator.py
This writes the four input decks, named test_n.toml
where n runs 1 through 4.
Running
To run a simulation, using the following command:
./hpic2 --i test_n.toml
Plotting the results
The simulation results are stored in test_n_out.
The key output is the ion density.
The test generator Python script can also be used to
create plots of the ion number density, averaged over the last few timesteps,
in exactly the same manner as in the Turner paper.
Simply run
python3 turner_test_generator.py test_n
to create the plot for the n-th test case. An example of the plot for the first test case is shown below.