This new course introduces fundamentals of plasma simulations by following the content of my recent textbook. We start by reviewing basic programming principles as well as numerical techniques such as Finite Difference. We then learn how to develop a fully kinetic simulation of plasma oscillating in a grounded box using the Particle in Cell (PIC) method. Next we cover hybrid particle-fluid approaches, material interactions, and collisions. From there, we review the Finite Element Method, Eulerian (fluid) approaches, and electromagnetics. The course closes by introducing high performance computing based on multithreading, MPI, and CUDA. At the end of the course, you should have a good understanding of the underlying principles behind PIC and MHD methods, and be able to develop your own 1D, 2D, and 3D plasma simulation codes. The course also cover post-processing and data visualization. Use this link to register, and select “Plasma Sim Methods” as the course.

While not absolutely required, if possible, please obtain a copy of my 2019 book Plasma Simulations by Example, available from Routledge (CRC Press), Amazon, Barnes & Noble, or other similar book vendors. Given the large amount of material to be covered, the book will serve as a valuable resource for additional detail that does not fit into the allotted time slot.

**Lesson 1 (Fundamentals), Jun 22:**In this lesson, we cover basic C++ and Python programming concepts such as variables, loops, and functions. We then learn how to approximate derivatives using the Finite Difference Method, and use it develop a simulation of a charged particle oscillating in a potential well.**Lesson 2 (Grounded Box), Jun 29:**We next develop a 3D Particle in Cell simulation of electrons and ions oscillating in a grounded box.**Lesson 3 (Flow Around a Sphere), Jul 6:**In this lesson, we replace the electrons with a fluid approximation and also add a solid internal boundary to simulate flow of ions past a charged sphere**Lesson 4 (Material Interactions), Jul 13:**Next, we add models to surface recombination. We also learn how to simulate inter-particle collisions using Monte Carlo Collisions (MCC) and Direct Simulation Monte Carlo (DSMC) methods.**Lesson 5 (Symmetry), Jul 20:**In this lesson, we see how to speed up the computation by considering symmetry and reduced dimensionality. We also learn about the Finite Volume Method (FVM).**Lesson 6 (Unstructured Meshes), Jul 27:**This lesson introduces PIC simulations on unstructured meshes. We start by covering techniques for tracking particles on meshes composed of tetrahedral elements. We then review the Finite Element Method (FEM) for solving plasma potential.**Lesson 7 (Electromagnetics), Aug 3:**We study solution methods for magnetostatic and electromagnetic problems in which we need to compute the magnetic field.**Lesson 8 (Eulerian Methods), Aug 10:**This class first introduces solution techniques for the model advection-diffusion equation. We then demonstrate its use to solve a simplified form of the Magnetohydrodynamics (MHD) equation. We close by introducing Vlasov solvers.**Lesson 9 (Parallel Processing), Aug 17:**We introduce multithreading, distributed computing with MPI, and GPU programming with CUDA. We learn how to parallelize the particle push and a field solve.

Below you will find example output from codes to be developed as well as example of lecture slides from prior courses.

The course contains weekly optional assignments. These assignments need to be completed (graded on effort) in order to receive a course certificate

All students are expected to have a basic understanding of numerical techniques, plasma and gas dynamics, and computer programming. The lectures and demonstration programs will utilize C++ and Python programming languages. Students need to have access to a computer with a compiler of choice. Computer with Internet access will be needed to access the lectures and course material. The course will be conducted in English.

The course consists of online lessons conducted through GoToMeeting. The lessons are recorded and the videos, along with pdf slides and code examples, are posted online shortly after each lesson ends. The course also includes optional homework assignments, which need to be completed in order to receive a certificate of completion.

The instructor, Dr. Lubos Brieda (Ph.D. George Washington University 2012, M.Sc. Virginia Tech 2005), is the founder and president of Particle In Cell Consulting, LLC, a Los Angeles-based company specializing in providing tools and services for spacecraft contamination control and electric propulsion communities. He has over 15 years of experience developing plasma simulation codes for a wide range of applications, including spacecraft electric propulsion, space environment interactions, surface processing, plasma medicine, and contamination control. The DRACO code, developed as part of his MSc study, became the primary tool of the AFRL spacecraft plasma thruster interaction framework Coliseum. More recently, his CTSP code has been used to model spacecraft molecular and particulate contamination on a wide range of missions including MMS, GOES-R, Restore-L, TESS, STPSat-6, and JWST. His teaching experience includes an on-going position of a Lecturer at the Department of Astronautics as University of Southern California, where he developed a new course on applied scientific computing that became part of the undergraduate curriculum.