Skip to content

Commit

Permalink
Add documentation on how to run Starfish
Browse files Browse the repository at this point in the history
  • Loading branch information
kylediaz committed May 16, 2023
1 parent e464d9a commit b3b779c
Showing 1 changed file with 36 additions and 9 deletions.
45 changes: 36 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,62 @@
[![Twitter Follow](https://img.shields.io/twitter/follow/espadrine.svg?style=social&label=Follow)](https://twitter.com/particleincell)

# Starfish

![Starfish logo](starfish.png)


[Starfish](https://www.particleincell.com/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](https://github.com/particleincell/Starfish/tags) 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](https://www.particleincell.com/2011/vtk-java-visualization/), 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](https://www.docker.com/resources/what-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](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
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](https://www.particleincell.com/2012/starfish-tutorial-part1/) and [DSMC](https://www.particleincell.com/2017/starfish-tutorial-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](dat/tutorial/starfish-code-overview.pdf) with some introductory remarks about the source code. The associated video is [available here](https://www.youtube.com/watch?v=IDFeT_X-IsU).
a [PowerPoint presentation](doc/starfish-code-overview.pdf) with some introductory remarks about the source code. The associated video is [available here](https://www.youtube.com/watch?v=IDFeT_X-IsU).

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

![ion velocity](doc/plots/ion-vel.png)
Axial velocity of ions streaming past a charged sphere

![temperature profile](doc/plots/dsmc-t.png)
DSMC computation of temperature in an atmospheric jet expanding to a low pressure tank
Input files for these examples are located in the dat/ folder.

![ion density](doc/plots/tube.png)
Number density of ions flowing through a sectioned tube computed on a domain consisting of multiple meshes
| | |
|--------------------------------------------------|------------------------------------------------------------------------------------------------------------|
| ![ ion velocity ]( doc/plots/ion-vel.png ) | Axial velocity of ions streaming past a charged sphere |
| ![ temperature profile ]( doc/plots/dsmc-t.png ) | DSMC computation of temperature in an atmospheric jet expanding to a low pressure tank |
| ![ ion density ]( doc/plots/tube.png ) | 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
Expand Down

0 comments on commit b3b779c

Please sign in to comment.