Case study III - Glow discharge model#
In the last case study, the glow discharge in argon at low pressure is modelled. The aim of this example is to demonstrate the use of the code for the case when multiple particle species with many processes are considered in the model and when the local mean energy approximation is assumed. The model describes spatiotemporal evolution of the number density of particle species, the potential and the mean electron energy. In order to simplify the problem, the simplest plan-parallel configuration in axisymmetric geometry is assumed. In comparison to the time-of-flight and the streamer examples, the FEDM functions are used extensively. First the simulation conditions (pressure 1 Torr, working voltage -250 V, gas temperature 300 K) and the geometry are specified manually. Then the model is set up in the following way:
the particle species list are read from the input file stored in the
file_input
folder using theread_speclist()
function, which returns the number of species, their names and corresponding file namesthe particle properties are read from the input files stored in the
file_input
folder using theread_particle_properties()
function, which returns the mass and the charge of the particlesthe number of equations that nedd to be solved are determined based on the used type of approximation in the model (LFA or LMEA) using the
modify_approximation_vars()
functionthe output files are created using the
output_files()
functionthe logging of the particle properties, the simulation conditions, the mesh statistics and the time are done using the
log()
functionthe reaction matrices used to construct the rates and the source terms are read from the reaction scheme file using the
reaction_matrices()
functionthe names of files containing the rate coefficients are read using the
rate_coefficient_file_names()
functionthe energy loss for the given reaction are read from the file using the
read_energy_loss()
functionthe transport coefficients are read from the input files using the
read_transport_coefficients()
functionthe rate coefficients are read from the input files using the
read_rate_coefficients()
functionthe values of the transport coefficient for the given energy, the reduced electric field or the temperature are obtained using the
Transport_coefficient_interpolation()
functionthe values of the rate coefficient for the given energy, the reduced electric field or the temperature are obtained using the
Rate_coefficient_interpolation()
functionthe source terms for all particle species in the model are obtained using the
Source_term()
functionthe energy source term is generated using the
Energy_Source_term()
functionthe boundaries are marked with the boundary marking function
Marking_boundaries()
, returning the mesh function which is used for the redefinition of the surface integral measureds
the list of the functions (or trial and test functions for segregated approach) for the given number of particle species is done using
Function_definition()
the variational form of the Poisson’s equation is defined using
weak_form_Poisson_equation()
the fluxes are defined using
Flux()
orFlux_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 equation with adaptive time stepping 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 terminal:
python3 fedm-gd.py
or in parallel using mpi
mpirun -np 8 python3 fedm-gd.py