Starfish is a two-dimensional gas and plasma simulation code. It implements the Electrostatic Particle in Cell (ES-PIC) method to model plasmas, as well as several fluid solvers for continuum problems. Surface geometry is represented by linear and/or cubic spline segments. The computational domain is discretized into a rectilinear or body-fitted mesh. Multiple gas injection sources are available, and a detailed surface handler is also implemented. The species interact with each other via collisions (MCC or DSCM) or by chemical reactions.

There are two versions. The open source Starfish contains basic support for plasma modeling via the Electrostatic Particle In Cell (ES-PIC) method with MCC or DSMC. It also supports free molecular flow, and contains diffusion-advection fluid solver. It is available as a free download from this site. The source code is available on Github. The full version extends the basic version by including additional particle source models, detailed surface treatment, and Navier Stokes solver. It also contains special module for modeling electric propulsion devices. The full version is currently not available for general distribution and is used internally in support of our contracts. Sign up for the newsletter to receive code release updates.


  • Common: XY/RZ support, linear/cubic spline geometry definition, rectilinear/stretched meshes, multiple fluid and/or kinetic species, material interactions, surface and volume sources, animation output, limited (for now) parallel processing, Tecplot and Paraview output
  • Starfish Light: electrostatic particle in cell (ES-PIC), collision modeling (MCC or DSMC), surface deposition, ionization, diffusion solver
  • Starfish Full: fluid models (advection-diffusion, Navier Stokes), Hall thruster model (similar to HPHall, can couple to kinetic 1D algorithm for computing mobility)
  • Work in Progress: Addition of Boyd’s detailed electron model, a simple GUI for helping write the input files and monitor the simulation, port of an advection-diffusion solver from a stand-alone code

Do not hesitate to contact us if there are specific features of interest, or if you would like to collaborate by adding solvers.


plasma sheath near a rough wall
Plasma sheath near a rough wall. Figure from Laura Rose thesis.
dsmc temperature supersonic jet
DSMC simulation of an atmospheric jet expanding to a low pressure tank. This plot shows the gas temperature.
Electron axial velocity and temperature from a full-PIC ion beam neutralization simulation reported in DOI: 10.1109/TPS.2018.2801282
Example of using multiple meshes to simulate ion transport through a sectioned tube

Getting Started

Starfish is a Java program, and as such, you will need to have the Java Runtime Environment installed. Starfish currently runs in command-line mode only. Navigate to the folder containing your input files and use the syntax below to launch the simulation.

> java -jar <path-to-file>/starfish-LE.jar

The simulation progresses according to commands specified in the starfish.xml located in the current directory. A GUI is on the short-list of things to work on in the near future.


User’s guide: Starfish-UG.pdf
Tutorials: ion flow past a charged sphere, DSMC supersonic gas expansion
Class listing: Starfish Javadoc
Seminar slides: starfish-seminar-jan-2018.pdf


The last Starfish seminar wast held Thursday January 25th, 2018. Information about upcoming seminars will be posted here.


You can obtain Starfish one of two ways. The easiest is to download the binary .jar file using the form below. The contact information is optional but it helps me get an idea of the code user base. The second option is by pulling the source code from GitHub. The GitHub version is generally more up to date than what is available here but may be less stable.

User Info Your Name:
Email Address:
Project Summary:

All info is optional, but it helps us get an idea of the user base
Check to confirm you are not a bot

Release notes:

  • v0.20, 2/15/20198: Rename of Starfish-LE to Starfish, addition of thermionic emission, evaporation, and particle merge, fixes to get tutorial working again
  • v0.19, 5/23/2018: Re-enables multidomain support and implements VTK output for all data types
  • v0.18, 1/27/2018: Fixes to code crashes
  • v0.17, 7/11/2017: Various fixes to DSMC and MCC, VTK vector output
  • v0.16.1, 4/6/2017: Fixed temperature sampling
  • v0.16, 4/3/2017: Addition of DSMC plus fixes to ambient boundary source
  • v0.15, 11/21/2016: Initial source release of version 0.15.
  • v0.15, 1/12/2016: Initial binary release of version 0.15 (probably quite buggy).


If you find the program useful, please cite one of the following:

  1. Brieda, L., “Starfish User’s Guide”,
  2. Brieda, L., “Model for Steady-State Fully Kinetic Ion Beam Neutralization Studies”, IEEE Trans. Plasma Sci., Vol. 46, No. 3, 2018, doi:10.1109/TPS.2018.2801282
  3. Brieda, L., and Keidar, M., “Development of the Starfish Plasma Simulation Code and Update on Multiscale Modeling of Hall Thrusters”, 48th AIAA Joint Propulsion Conference, Atlanta, GA, 2012, AIAA-2012-4015, doi:10.2514/6.2012-4015 (pdf)