Sammendrag
chombo-discharge is a parallelized Cartesian 2D and 3D adaptive code for simulating low temperature gas discharges in complex geometries. Such discharges occur when electrons
accelerate in strong electric fields and ionize the gas, and further evolution is affected by
residual space charges. Streamers, for example, are filamentary plasma dominated by space
charge effects. They are the natural precursors to leader, sparks, and lightning.
Gas discharge modeling involves simulations over multiple scales in time and space. chombo discharge reduces the cost of such simulations by using Cartesian Adaptive Mesh Refinement
(AMR). It also provides support for multi-material complex geometries (gas phase, electrodes,
and solid dielectrics) through an embedded boundary (EB) formulation. Geometries are
represented as implicit functions, and can be created using constructive solid geometry.
Conversion of surface meshes to implicit functions is also supported. Under the hood, chombo discharge uses Chombo (Colella et al., 2000) for the AMR and EB infrastructure, and is
parallelized using MPI. However, chombo-discharge supplies all numerical solvers.
chombo-discharge uses a solver-centered modular design where larger applications are developed
by coupling numerical solvers in the chombo-discharge base code, using C++ interfaces. Many
solvers already exist in chombo-discharge, all of which are parallelized and compatible with
EBs and AMR:
• Advection-diffusion-reaction solvers.
• Helmholtz equation solvers, using geometric multigrid.
• An electrostatic solver (with support for discontinuous coefficients).
• Kinetic Monte Carlo chemistry solvers.
• Radiative transfer solvers (continuum and Monte Carlo).
• Various particle solvers, e.g., for Monte Carlo radiative transfer, tracer particles, and
microscopic drift-diffusion.
• ODE solvers defined over volume or surface meshes.
All solvers exist as stand-alone applications, and many of them are also coupled through more
complex physics applications that aim at resolving different types of discharge phenomena
(e.g., statistical inception models, or particle and fluid models of streamer discharges). The
interaction of these solvers occurs through a common AMR “core”, which can also use dual
grids where e.g. fluid and particle kernels are load-balanced separately. Depending on their
needs, users can therefore enter the framework at several levels. For example, they need to
learn interfaces when using existing applications (e.g., streamer models); use C++ APIs if
developing new physics applications, or use the EB-AMR infrastructure if contributing with
new solvers.
Vis fullstendig beskrivelse