Plasma Simulation

Fun with Raspberry Pi – plasma simulation code performance

Raspberry Pi 3 Model B is a $40 credit card sized computer with 1.2GHz CPU and 1Gb of RAM. But before buying bunch of the boards to build a small MPI cluster, I wanted to see how the performance compares to a typical PC.

Brief Intro to GPU PIC with CUDA

This post shows how to develop a PIC plasma simulation code that uses NVIDIA CUDA to perform computations on the graphics card (GPU). Even without any optimization, the GPU version runs almost twice as fast as the CPU version for a large number of pa...

Finite Element Particle in Cell (FEM-PIC)

Example Finite Element Particle in Cell code for flow of ions past a charged sphere on an unstructured mesh

Particle In Cell Method in Cylindrical Coordinates

Details of implementing plasma simulations with the Particle In Cell Method in cylindrical coordinates. We develop a simulation of a simplistic ion gun.

Two Stream Instability Javascript Simulation

Particle In Cell (PIC) plasma simulation of two-stream instability implemented in Javascript and running in your browser. Two cold beams interact with each other until streaming is destroyed and particles become trapped in phase space vortices.

Current Density Limit

Ion thrusters are space charge limited devices, with maximum current density given by the Child Langmuir law. This simulation code explores the impact of space charge saturation on the flow between two planar electrodes.

Direct Simulation Monte Carlo (DSMC) Method

DSMC, or Direct Simulation Monte Carlo, is a particle based method for simulating gas kinetics. Popularized by G.A. Bird in the 60's, this method is now commonly used as an alternative to CFD. In addition, DSMC is commonly combined with PIC codes to ...

Loading an isotropic velocity distribution

Tutorial on the simple but important topic of loading particles with uniform spatially distributed velocity. This loading is important when loading background gas for particle simulations or when loading drifting Maxwellian beams.

Simple Particle In Cell Code in Matlab

This article includes the source code for a simple particle in cell code. The code simulates flow of plasma over a charged plate and is written in Matlab.

Monte Carlo Collisions (MCC) Example

Monte Carlo Collisions (MCC) is a simple algorithm for modeling particle collisions in situations where the target species is much denser than the source. In this example we use this method to model the charge-exchange (CEX) process in the plume of a...

Charge Exchange Collisions (CEX)

Charge exchange is an important reaction occurring in the plumes of electric propulsion devices. In this reaction, an ion and neutral come into a close contact and exchange an electron without any corresponding change in the momentum of the two parti...

Particle Push in Magnetic Field (Boris Method)

A follow up on the previous article, in this tutorial we show you how to integrate the particle motion in the presence of a magnetic field. Inclusion of the magnetic field makes the integration an implicit problem, and care needs to be taken to conse...

Leapfrog Particle Push (Velocity Integration)

In this article we discuss probably the most fundamental aspect of numerical simulations with the particle in cell (PIC) method: pushing particles. We introduce the commonly used leapfrog method, and provide a simple numerical algorithm in the form o...

The Electrostatic Particle In Cell (ES-PIC) Method

Particle In Cell (PIC) is the name of a method used to numerically model dynamics of ionized gases, or plasmas. Its name stems from the fact that the gas is represented by a large number of computational particles that move in a disretized domain. Th...