codes:particle
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
codes:particle [2014/07/07 10:06] – created jannis | codes:particle [2025/04/17 13:57] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | Jannis: | + | ====== Introduction ====== |
+ | On this page we give a brief overview of the 3D particle code that was (and is being) developed in our group: **Pamdi3D** (__Pa__rticle __M__odel __Di__scharge). | ||
+ | A brief summary of the history: the development of a particle code was started by Chao Li, who developed a hybrid particle/ | ||
+ | |||
+ | **Important notes** | ||
+ | This code is still under development. Currently, we are transitioning to a newer version, for which much has been rewritten to make the code more general and clear. If you want incorporate parts of our particle model in your own code, please contact us for more details. | ||
+ | Furthermore, | ||
+ | |||
+ | ====== Goal ====== | ||
+ | It is often important to know for what applications a simulation model was | ||
+ | developed, because different simplifying assumptions can be made for different | ||
+ | applications, | ||
+ | specialized. | ||
+ | Therefore, let us give a list of applications we had in mind while developing | ||
+ | the simulations. | ||
+ | We wanted to simulate/ | ||
+ | * the inception of streamer discharges around electrodes | ||
+ | * the formation and destabilization of inception clouds around electrodes | ||
+ | * the formation of single streamer discharges by a polarized `seed' | ||
+ | * the evolution of a discharge in an electric field globally above breakdown | ||
+ | * the interaction between streamer channels | ||
+ | * the branching of streamers | ||
+ | |||
+ | ====== Assumptions ====== | ||
+ | In this code, the following assumptions are made: | ||
+ | * The discharge plasma is weakly ionized. | ||
+ | * The electrical currents are not big enough to create significant magnetic fields compared to the electric fields. | ||
+ | * Ions are immobile. | ||
+ | * We do not include heating or chemical reactions in the background gas. | ||
+ | |||
+ | ====== Description of components ====== | ||
+ | Here we'll describe the functionality of the essential components of the code. | ||
+ | |||
+ | Only electrons are included as particles in the particle model. | ||
+ | Different types of ions are included as a densities, and neutral gas molecules | ||
+ | provide a background that electrons randomly collide with. | ||
+ | |||
+ | ===== Particles ===== | ||
+ | We use a particle-in-cell (PIC) approach, with tri-linear interpolation to map particles to densities, also known as cloud-in-cell (CIC). | ||
+ | As a particle mover we use the so-called velocity-verlet scheme. For electron-neutral collisions, we use the null-collision method. For a description of the adaptive particle management that we use, see this [[http:// | ||
+ | |||
+ | ===== Electric field ===== | ||
+ | We use a block-based adaptive mesh refinement strategy. For each block, the Poisson equation is solved for the electric potential using [[https:// | ||
+ | |||
+ | ===== Photoionization ===== | ||
+ | We include a discrete approach to photoionization, | ||
+ | |||
+ | ===== Electrode ===== | ||
+ | We currently include an electrode in a less-than-optimal way, namely by placing test charges on the electrode surface that are adjusted to keep it equipotential. Because we use the rather strict (buf efficient) Fishpack solver, we do not have the flexibility of including them more directly into the equations. | ||
+ | |||
+ | ===== Input/ | ||
+ | The input consists of particle cross sections and a text configuration file. Output is in the [[https:// | ||
+ | |||
+ | ====== Usage examples ====== | ||
+ | These will be added in the near future... | ||
+ | |||
+ | ====== Source / installation ====== | ||
+ | The source code can be found [[https:// | ||
+ | |||
+ | The code depends on the following external libraries, which are distributed along with the code: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | |||
+ | Furthermore, | ||
+ | |||
+ | To compile, execute the following commands: | ||
+ | < | ||
+ | $ git submodule init | ||
+ | $ git submodule update | ||
+ | $ make | ||
+ | </ | ||
+ | |||
+ | Running (sequential): | ||
+ | < | ||
+ | $ ./pampi3d my_config_file.txt | ||
+ | </ | ||
+ | |||
+ | Running (parallel, N = number of tasks): | ||
+ | < | ||
+ | $ mpirun -n N ./pampi3d my_config_file.txt | ||
+ | </ | ||
+ | |||
+ | You can also specify multiple configuration files, like: | ||
+ | < | ||
+ | $ ./pampi3d cfg_base.txt cfg_1.txt | ||
+ | </ | ||
+ | |||
+ | This should((hopefully)) work with newer versions (> 4.4) of [[https:// | ||
+ | |||
+ | ====== Contact ====== | ||
+ | Questions should be addressed to [[jannis@teunissen.net|Jannis Teunissen]]. |
codes/particle.1404727577.txt.gz · Last modified: 2025/04/17 13:58 (external edit)