SOlidification, Flow, and Thermodynamics in Binary ALLoys.
A code for simulation convection in mushy layers with Adaptive Mesh Refinement.

Get the code Installation guide Documentation Examples Contribute


SOFTBALL solves for flow and phase change in mushy layers, solving continuous equations for conservation of heat, solute, mass, and momentum (Parkinson et. al, 2020).
A parallel C++ and Fortran code, with Adaptive Mesh Refinement facilitated by the Chombo library for fast efficient simulations.


Sea ice formation in 3-D

Uniform mesh simulation of sea ice (blue) growing from a cold atmosphere into the underlying ocean (yellow). 3-D simulations provide further insights into the pattern formation in the horizontal plane.

Binary alloy solidification with AMR

Solidification of a binary alloy from above with flow in the liquid phase described by a Darcy-Brinkman equation. Extra resolution is added automatically around the narrow channels with high solute concentration which form spontatenously in the mushy layer

Darcy flow in a Hele-Shaw cell

Flow in a narrow Hele-Shaw cell, as often used in experiments, is quasi-2-dimensional and well described by just Darcy's law which is less computationally expensive than the full Darcy-Brinkman equation.
(Wells et. al, 2020)


Anyone can contribute to SOFTBALL, and doing so is actively encouraged.

  1. Create a GitHub account
  2. Create your own fork of the code
    Go to the repo and click on the fork button (top right)
    $ git clone https://github.com/YOUR_USERNAME/mushy-layer.git
  3. Make sure you're working on the development branch
    $ git branch
    * development
    If you're not on the development branch, you can switch to it via
    $ git checkout remotes/origin/development
    $ git branch development
  4. Make some changes
    $ nano README.md
    $ git status	
    On branch development
    Your branch is up-to-date with 'origin/development'.
    Changes not staged for commit:
    (use "git add ..." to update what will be committed)
    	(use "git checkout -- ..." to discard changes in working directory)
    		modified:   README.md
    	no changes added to commit (use "git add" and/or "git commit -a")
  5. Commit your changes
    $ git add README.md
    $ git commit -m "Testing"
    $ git push
  6. You might need to enter your username and password to push the changes.
  7. Create a pull request to merge your branch into our development branch
    Go to your fork on github, i.e.
    and click on the 'Compare & Pull Request' button.
  8. We will then check and approve your pull request