Plasma Simulations by Example

My new Plasma Simulations by Example (Brieda, L., CRC Press 2019) book is now available for purchase from CRC Press (use FMQ13 discount code for 20% off) or from Amazon. Code samples can be downloaded here (1.4 Mb .zip file).

The purpose of this book is to teach you how to develop plasma simulation codes through (hopefully) easy to follow examples. My experience has been that while many great books exist covering all kinds of theory related to plasma physics, plasma simulations, or general numerical methods, very few of them contain examples. And the examples that exist are generally written in archaic Fortran, thus not reflecting modern programming paradigms. In this book, I try to illustrate how plasma simulation codes (mainly particle-based but we also discuss fluid modeling) are written using modern C++. The book is based on the material originating from my online plasma simulation courses and covers the following:

  • Chapter 1: Kinetic vs. fluid modeling; Finite Difference; single particle motion
  • Chapter 2: 3D fully-kinetic Particle in Cell simulation of electrons oscillating in a grounded box; crash course in C++ (operator overloading, templates, dynamic memory)
  • Chapter 3: Hybrid 3D PIC simulation of flow past a sphere; Non-linear Poisson solver, Preconditioned Conjugate Gradient solver; diagnostics
  • Chapter 4: Maxwellian source; surface impact; Monte Carlo (MCC) and Direct Simulations Monte Carlo (DSMC) collisions; dielectric boundaries
  • Chapter 5: Symmetry, 2D, and axisymmetric formulation
  • Chapter 6: Particle in Cell on unstructured tetrahedral meshes; Finite Element Method
  • Chapter 7: Electromagnetics; Boris push, Magnetostatics
  • Chapter 8: Eulerian methods; Magnetohydrodynamics; Vlasov Solvers
  • Chapter 9: Parallel programming; multithreading, MPI domain decomposition; GPU programming with CUDA

See the flyer below for more info.

Do not hesitate to contact me if you have any questions (or to report corrections for possibly future editions).


Lubos Brieda, Ph.D.