Code Monkey home page Code Monkey logo

starfish's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.