Arduino Plasma Simulation

An example electrostatic particle-in-cell simulation was developed that runs on the Arduino microcontroller. Field results are visualized over serial port using Python.

USC ASTE-499 Applied Scientific Computing Debrief

In the spring semester 2020, I had the opportunity to teach an Applied Scientific Computing course at USC. Here is a course summary and a debrief.

Effect of Ion Thruster Plume-Thermosphere Interaction on Satellite Aerodynamics in Very Low Earth Orbit

Satellite operations in Very Low Earth Orbit (VLEO), altitudes below 250km, are highly appealing for flexible, high-performing and economical spacecraft operations to deliver low-cost communications and Earth observation data. However, the mission li...
arduino pi estimator

Computing pi with CPUs, GPUs, threads, MPI, Javascript, Arduino, and FPGAs

This year, for “pi day” (March 14th), I figured I’ll post a short article demonstrating how to estimate the value of π using different computer architectures. This topic is somewhat in line with the ASTE-499 Applied Scientific Co...

Introduction to Vlasov Solvers

A simple 1D-1V Vlasov code for two-stream instability is developed. The code is based on a splitting scheme proposed by Cheng and Knorr in 1975.

Multigrid Solver

The Multigrid scheme for accelerating convergence of iterative matrix solvers is explained and demonstrated with a one-dimensional Python code.

Handling Surfaces: Line Triangle Intersection Example

This article presents an algorithm for performing particle-surface impact checks using a mixed triangular-quadrilateral mesh with warped and overlapping elements.

Starfish DSMC Tutorial: Supersonic Jet and Argon Diffusion

This tutorial shows you how setup a DSMC simulation using Starfish. We model expansion of an atmospheric pressure gas to a low pressure reservoir and also compute self-diffusion coefficient of argon.

Vorticity – Stream Function Formulation for Axisymmetric Flow

Vorticity - Stream Function formulation for incompressible Navier Stokes equation is developed and demonstrated with Python code for flow in a cylindrical cavity. More complex geometry from a Java code is also shown.

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.

Free molecular flow in a cylindrical pipe – with multithreading

In this blog post we develop a multi-threaded C++ program for computing molecular transmission through a cylinder of a varying length. The results are compared against tabulated data of Clausing.

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...

3D Viewer

WebGL-based interactive 3D plotter for surface mesh files in Paraview's .vtu or .vtp formats

Particulate Contamination Transport on Orbiting Satellites

Particulates launched from an orbiting object may intersect the satellite on a future orbit and cause contamination of surfaces beyond the line of sight of the originating surface. This post describes a simply Python code that was developed to model ...

CTSP Molecular Contamination Modeling Validation

Summary of CTSP molecular contamination modeling validation effort to date

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