Case study II - Streamer discharge model#
In the second case study, the positive streamer in air at atmospheric pressure is modelled. The number density profiles and electric potential are calculated and used for the code verification by benchmarking, where results from Bagheri et al. 2018 Plasma Sources Sci. Technol. 27 095002 are used as the benchmark. The model consists of Poisson’s and the balance equations for electrons and positive ions, which are solved in axisymmetric geometry, assuming the local field approximation. The simulation conditions are defined in the model as parameters (pressure 750 Torr, working voltage 18750 V, gas temperature 300 K). The problem is defined mostly using FEDM functions:
the particle species list are read from the input file stored in
file_input
folder usingread_speclist()
function, which returns the number of species, their names and corresponding file namesthe particle properties are read from the input files stored in
file_input
folder usingread_particle_properties()
, which returns the mass and the charge of the particlesthe transport coefficients are read from the input files using
reading_transport_coefficients()
, noting that since the coefficients are described as the functions in this example, they should be expressed as the python code in the input filesthe number of equations are determined based on the type of approximation used in the model (LFA or LMEA) by
modify_approximation_vars()
functionthe output files are created using
output_files()
functionthe boundaries are marked with boundary marking function
Marking_boundaries()
, returning the mesh function that is used for redefinition of the surface integral measureds
the logging of the particle properties, the simulation conditions, the mesh statistics and the time is done using
log()
functionthe mixed function space is defined using
Mixed_element_list()
which creates the list of function elements of the desired orderthe list of functions (or trial and test functions for segregated approach) for given number of particle species is done using
Function_definition()
the variational form of Poisson’s equation is defined using
weak_form_Poisson_equation()
the fluxes are defined using
Flux()
ofFlux_log()
(for the logarithmic formulation)the variational forms of the balance equations for the particle species are defined using
weak_form_balance_equation()
orweak_form_balance_equation_log_representation()
(for the logarithmic formulation)the boundary conditions are defined using
Boundary_flux()
functionsolving of the equations in adaptive manner requires two functions,
adaptive_solver()
andadaptive_timestep()
the results are written into file using
file_output()
The code can be executed by running the following in the terminal:
python3 fedm-streamer.py
or in parallel using MPI
mpirun -np 8 python3 fedm-streamer.py