Starfish Tutorial Part 3: Surface Interactions

Part 3 of Starfish plasma simulation solver tutorial. Here we introduce surface interactions and modify the input files to simulate the recombinations of ions at the surface of the cylinder. (Nov 12 2012)

Starfish Tutorial Part 2: Particles and Animation

The second part of the multi-part Starfish tutorial. In this part we add particle sources to simulate flow of plasma over a cylinder. We also introduce animations. (Nov 6 2012)

Starfish Tutorial Part 1: Domain, Boundaries, and a Potential Solver

The first part of the multi-part Starfish tutorial. In this article we introduce the input files needed to setup a simulation for a flow of plasma over an infinitely long cylinder. (Oct 29 2012)

Exporting Magnetic Field from FEMM

FEMM is a powerful (and free) 2D magnetic, electrostatic, and heat transfer solver. FEMM contains a nice GUI for defining and analyzing the problem. It does not contain an option for exporting the results. However, you can export the results from FEMM easily with a simple LUA script. (Sep 7 2012)

A quick summary of the past six months

A quick summary of the projects completed over the past 6 months. These include development of a 2D plasma simulation code Starfish, publication of two papers, initial analysis of a plasma-wall interface, and development of a Java-based VTK GUI. (Aug 24 2012)

Interactive Elliptic Mesh Generation with SVG and Javascript

SVG and Javascript can be used to create interactive applications and graphical user interfaces. Here is an example of an interactive elliptic mesh generator. (Jun 22 2012)

Smooth Bézier Spline Through Prescribed Points

How do you construct a smooth line through a set of prescribed points? This article shows you how. It also includes an interactive SVG demo that allows you to try it in real-time. (Jun 17 2012)

Efficient Particle Data Structures

Particle codes have very different memory optimization requirements than fluid-based solvers. Here we consider three types of data structures for holding particles that offer an efficient way of adding and removing particles and compare their performance. (Jun 11 2012)

Interpolation using an arbitrary quadrilateral

This article describes how to interpolate data between a particle and an arbitrary quadrilateral cell used in non-Cartesian grids. The technique is illustrated with several Matlab / Octave examples. The examples show how pick points located inside the polygon, how to classify their position, and how to scatter and gather particle data. (Jun 4 2012)

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. (May 24 2012)

Implementation of VTK-based 3D visualization capability in a solver GUI

Over the past few weeks, we at PIC-C have been busy integrating VTK (The Visualization Toolkit) into a client’s graphical user interface. The client for this project is a company specializing in CFD software for turbomachinery aerodynamic analysis. The client’s solvers are integrated with a Java-based GUI which allows the user to specify input parameters […] (May 3 2012)

Nonlinear Poisson Solver

Nonlinear Poisson's equation arises in typical plasma simulations which use a fluid approximation to model electron density. This article describes how to solve the non-linear Poisson's equation using the Newton's method and demonstrates the algorithm with a simple Matlab code. (Apr 30 2012)

Code Optimization: Speed up your code by rearranging data access

Often, a significant code speed up can be accomplished by simply rearranging the way data is stored or accessed in memory. This article compares data access with arrays vs. linked lists, and compares loop ordering for 3D data sets. It also looks at a flat 1D array representation of 3D data via a mapping function. (Apr 22 2012)

Orthogonal Curvilinear Coordinates

Cylindrical and spherical coordinates are just two examples of general orthogonal curvilinear coordinates. In this article we derive the vector operators such as gradient, divergence, Laplacian, and curl for a general orthogonal curvilinear coordinate system. (Jan 16 2012)

Data Visualization with Java and VTK

VTK is a powerful library for analyzing and visualizing scientific data. This example shows how to develop a simple Java application that uses VTK to render surface geometry, isosurfaces, and cutting planes. (Dec 16 2011)

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. (Nov 28 2011)

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 an ion thruster. We include an animation and the example Java source code. (Nov 24 2011)

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 particles. In the EP plumes this results in the formation of slow moving ions near the thruster exit. These ions are then accelerated radially out of the plume into areas with no line of sight to the thruster. (Nov 16 2011)

HTML5 for Scientific Computing

HTML5 is the new standard for writing webpages. It introduces several new powerful capabilities, such as embedded video and drag and drop. It also introduces a new tag called canvas that allows us to do real time graphing and visualization using Javascript. In this example we show you how to plot XY graphs using Javascript and HTML5. (Oct 28 2011)

Multiscale Modeling of Hall Thrusters

One of the topics we specialize in at Particle In Cell Consulting is modeling of electric propulsion (EP) thrusters. These devices generate thrust by accelerating ionized propellant (plasma). One of the most efficient EP devices is the Hall thruster. These devices have been flown for over 40 years, however, much still remains unknown about the details of their operation. (Aug 24 2011)