Main menu

WOMBAT - Astrophysical Fluid Code

Introduction
WOMBAT (sWift Objects for Mhd BAsed on Tvd) is a new implementation of the non-relativistic MHD TVD scheme described in Ryu & Jones, 1995[1], Ryu, Jones, & Frank, 1995[2], and Ryu, Miniati, Jones, & Frank, 1998[3]. An extension for relativistic MHD has recently been added. The code operates on 1, 2, and 3D Eulerian meshes (cartesian and cylindrical coordinates) with magnetic field divergence restriction controlled by a constrained transport (CT) scheme. A lot of effort has gone into creating hooks for the user to tune code performance to a given processor based on chip cache sizes. Proper settings yield significant speed-ups due to efficient cache reuse. The primary developer is Peter Mendygral with an enormous amount of wonderful parallelization technique ideas provided by David Porter and contributions/testing by Paul Edmon and Jennifer Delgado.

Scaling
WOMBAT has a hybrid MPI + OpenMP framework, and it exhibits near perfect weak and strong scaling up to at least 8192 cores by relying heavily on overlapped computation and communication (tests up to ~110,000 cores on a Cray system has confirmed effectively perfect weak scaling).

Included Physics
WOMBAT is organized into psuedo objects that operate on a set of physics. For example, one object produces the MHD eigenvectors while another utilizes the results to produce fluxes at cell boundaries. This organization makes it quite straight forward to add additional physics objects. WOMBAT currently has the following additional physics:

Radiative cooling based on the exact solution to a piecewise power-law cooling curve[7]

Relativistic MHD[8-10]

Future physics objects will include self-gravity.

Visualization
Output from WOMBAT comes in three flavors; restarts, compressed dumps, and visualization bricks-of-bytes (BOBs). The formats are all essentially raw files that are stacked into bricks corresponding to each MPI rank. Each rank is a member of an output team that sends output to an asynchronous I/O (AIO) server. The AIO servers were written by David Porter. This system allows all output to be written to disk while computation continues. The BOBs can be read into the LCSE visualization pipeline for rendering on the Powerwall. Interactive computing with WOMBAT is therefore a native operation.