/Starfish

Starfish is a two-dimensional PIC-DSMC plasma / rarefied gas simulation program.

Primary LanguageJavaOtherNOASSERTION

GitHub forks Twitter Follow

Starfish

Starfish logo

Starfish is a 2D (Cartesian or axisymmetric) code for simulating a wide range of plasma and gas problems. It implements the electrostatic Particle-in-Cell (ES-PIC) method along with several fluid solvers. Material interactions are included through MCC or DSMC collisions, or via chemical reactions. The computational domain can be divided into multiple rectilinear or body-fitted meshes, and linear/cubic splines represent the surface geometry. The code can be easily extended with plugins. Starfish is written in Java and is actively being developed.

Getting Started

Installation

For user purposes

Download a Jar file from the Releases page.

There are two versions: a simple, standalone command-line UI and a GUI equipped with advanced features.

  1. For the CLI: Download StarfishCLI.jar and run it using java -jar StarfishCLI.jar
  2. For the GUI: Download Starfish.jar, follow these instructions to install VTK, and run Starfish using java -jar Starfish.jar

warning: GUI is experimental and may not support all operating systems or display servers

For developer purposes

Starfish requires some external libraries in order to run. This project has a Dockerfile that can create a container. The container not will correct software versions and will automatically download and build any libraries required, but it will keep everything for this project separate from the rest of the OS to prevent version conflicts between different projects. This project comes with configurations for Visual Studio Code to best utilize the container's capabilities.

  1. Download and Install Docker and Visual Studio Code
  2. In VSCode, download the Dev Container extension
  3. Download this repo and open the folder in VSCode
  4. Create the Dev Container by pressing CTRL + SHIFT + P and executing the command Open Folder in Container.

How to Use

Start by taking a look at a five-step ES-PIC and DSMC tutorials. Input files for the tutorials are included in the dat directory. On the PIC-C website you will also find a PowerPoint presentation with some introductory remarks about the source code. The associated video is available here.

Examples

Input files for these examples are located in the dat/ folder.

 ion velocity Axial velocity of ions streaming past a charged sphere
 temperature profile DSMC computation of temperature in an atmospheric jet expanding to a low pressure tank
 ion density Number density of ions flowing through a sectioned tube computed on a domain consisting of multiple meshes

Bug Reporting

The code is under ongoing development and may contain numerous bugs. Please submit a bug report if you find anything odd!

License

Please view LICENSE for license terms.

(c) 2012-2022 Particle In Cell Consulting LLC

Contact

Contact us by visiting the website or on Twitter @particleincell.

Revision History

  • v0.24 Magnetostatic and Geng generalized Ohm's law solver
  • v0.22 GUI, multi-mesh support for multiple corners, command line arguments, trace command rewrite, cell "CFL" subcycling
  • v0.21 Support for sigmas to be used for chemical reaction rates
  • v0.20.5 Time dependent boundaries, fix to surface sampling
  • v0.20 Rename of Starfish-LE to Starfish, addition of thermionic emission, evaporation, and particle merge
  • v0.19 Re-enables support for multi-domain simulations
  • v0.16.2 Various bug fixes related to DSMC and ambient boundary source
  • v0.16 Addition of a DSMC module (previously included in the full version)
  • v0.15 Initial release of PIC-MCC code