User Tools

Site Tools


codes:particle

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
codes:particle [2014/07/07 12:24] janniscodes:particle [2025/04/17 13:57] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Introduction ====== ====== Introduction ======
-On this page we give a brief overview of the 3D particle code that was (and is being) developed in our group.+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/fluid code. Margreet Nool restructured this code, from which Jannis Teunissen then extracted just the particle part. To be able to do meaningful simulations with just particles, much had to be changed and essentially all the code was rewritten by Jannis. Later, Anbang Sun has contributed to parts of the code. A brief summary of the history: the development of a particle code was started by Chao Li, who developed a hybrid particle/fluid code. Margreet Nool restructured this code, from which Jannis Teunissen then extracted just the particle part. To be able to do meaningful simulations with just particles, much had to be changed and essentially all the code was rewritten by Jannis. Later, Anbang Sun has contributed to parts of the code.
  
Line 38: Line 38:
 ===== Particles ===== ===== 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). 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.+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://homepages.cwi.nl/~ebert/JCPJannis2014.pdf|paper]].
  
 ===== Electric field ===== ===== Electric field =====
Line 44: Line 44:
  
 ===== Photoionization ===== ===== Photoionization =====
 +We include a discrete approach to photoionization, with data for nitrogen/oxygen mixtures, much like in this article [[http://dx.doi.org/10.1016/j.jcp.2008.04.016|DOI]]
 +
 +===== 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/output ===== ===== Input/output =====
 +The input consists of particle cross sections and a text configuration file. Output is in the [[https://wci.llnl.gov/codes/silo/|Silo]] format, which can be easily visualized using for example [[https://wci.llnl.gov/codes/visit/|Visit]] or [[http://www.paraview.org/|Paraview]].
  
-====== Usage ======+====== Usage examples ====== 
 +These will be added in the near future...
  
-====== Examples ======+====== Source / installation ====== 
 +The source code can be found [[https://github.com/jannisteunissen/pamdi3d|here]].
  
-====== Contact ====== +The code depends on the following external libraries, which are distributed along with the code: 
-Questions should be addressed to [[jannis@teunissen.net|Jannis Teunissen]].+  [[https://www2.cisl.ucar.edu/resources/legacy/fishpack|Fishpack]] 
 +  * [[https://wci.llnl.gov/codes/silo/|Silo]] 
 +  * [[http://arxiv.org/abs/physics/0408067|KDTREE2]]
  
 +Furthermore, you need to have a working MPI installation with development files, such as openmpi or mpich, and a Fortran compiler.
  
 +To compile, execute the following commands:
 +<code>
 +$ git submodule init
 +$ git submodule update
 +$ make
 +</code>
  
 +Running (sequential):
 +<code>
 +$ ./pampi3d my_config_file.txt
 +</code>
 +
 +Running (parallel, N = number of tasks):
 +<code>
 +$ mpirun -n N ./pampi3d my_config_file.txt
 +</code>
 +
 +You can also specify multiple configuration files, like:
 +<code>
 +$ ./pampi3d cfg_base.txt cfg_1.txt
 +</code>
 +
 +This should((hopefully)) work with newer versions (> 4.4) of [[https://gcc.gnu.org/wiki/GFortran|gfortan]].
 +
 +====== Contact ======
 +Questions should be addressed to [[jannis@teunissen.net|Jannis Teunissen]].
  
codes/particle.1404735846.txt.gz · Last modified: 2025/04/17 13:58 (external edit)