afivo-streamer 1.1
1D/2D/3D streamer simulations with AMR
Loading...
Searching...
No Matches
Afivo-streamer

Afivo-streamer is a tool for the simulation of streamer discharges in 1D, 2D and 3D, using plasma fluid models. Afivo-streamer makes uses of the afivo framework, which for example provides adaptive mesh refinement and parallelization.

Recommended reading for new users

Git repository links

Features

  • Adaptive mesh refinement
  • OpenMP parallelization
  • Multigrid field solvers
  • Plasma fluid model for streamer simulations
  • Photoionization using a Helmholtz or Monte Carlo approach
  • Support for tabulated transport data
  • Support for user-defined chemical reactions
  • Flexible usage through configuration files and command line arguments

More details about the implementation are given in the publications describing afivo-streamer.

Source code structure

Folder Contents
src The source code of afivo-streamer
src/config_fortran Module for configuration files
src/lookup_table_fortran Module for lookup tables
src/rng_fortran Module for random numbers
afivo The afivo library
documentation The documentation (mostly Markdown files)
lib_1d The afivo-streamer library (1D version)
lib_2d The afivo-streamer library (2D version)
lib_3d The afivo-streamer library (3D version)
makefiles Makefiles for building the library and programs
programs Streamer simulation programs
tools Python scripts for e.g. converting data
transport_data Input data files for simulations

Opiniated comparison against typical alternatives (advantages and disadvantages)

Strong points

  • Computational efficiency: relative to typical other codes, afivo-streamer has a high computational efficiency, see e.g. this paper. This usually makes it possible to do 2D simulations on a normal computer rather interactively.
  • Possibility of doing 3D simulations: due to the computational efficiency it is possible to do relevant 3D simulations in a reasonable time on typical hardware
  • Usage: the code has frequently been used for streamer simulations in various publications, which also means that things like plasma chemisty and different photoionization models are included
  • Open source: anyone can in principle change the code (although doing so might not always be easy)

Neutral points

  • Linux/unix: basic familiarity with such systems (and the command line) is required to compile and run the code
  • Fortran: experience with Fortran is required in order to change the code

Weak points

  • Complexity: it can be rather difficult to change the code or to add new physics, in particular due to the use of adaptive mesh refinement and parallelization
  • Research type code: which means there is not that much documentation and there is no graphical user interface
  • Complex geometries: although curved electrodes can be included, curved dielectrics and complex geometries are generally not supported

Links and related software

  • Lxcat website, where input data can be obtained
  • Bolsig+, which can be used to compute transport data from electron-neutral cross sections
  • Particle_swarm, which can also be used to compute transport data using a Monte Carlo approach
  • Chombo discharge, “A multiphysics code which uses Chombo for discharge simulations with adaptive mesh refinement (AMR) on embedded boundary grids”, developed by Robert Marskar
  • PASSKey, "Parallel Streamer Solver with Kinetics" by Yifei Zhu and others at LPP