The main techniques I use to study astrophysical fluid dynamics are Smoothed Particle Hydrodynamics (SPH) and the publically-available ZEUS grid-based codes for modelling magneto-hydrodynamics (MHD). SPH is useful for very dynamic problems involving high density contrasts (e.g. gravitational collapse and fragmentation of molecular clouds). I use ZEUS for problems that are closer to equilibrium when I am particularly interested in more subtle effects (e.g. the propagation of waves in accretion discs).
Smoothed Particle Hydrodynamics
SPH is a gridless, Lagrangian particle method typically used to simulate self-gravitating astrophysical fluids. It was invented by L. Lucy in 1977 and extensively developed by R.A. Gingold and J.J. Monaghan from 1977 onwards. Although originally invented for astrophysical processes its use is not limited to astrophysics or to fluids; the technique has been applied to problems with equations of state corresponding liquids and solids and to problems such as the modelling of impacts, volcanic eruptions, and tsunami.
The SPH code I use was originally developed by W. Benz in the 1980s. I have extensively altered the original version and it now includes several important features:
Along with developing my SPH code itself, I have performed several comparisons of the SPH technique with more traditional grid-based fluid dynamics methods (e.g. Bate & Burkert 1997 ; Burkert, Bate & Bodenheimer 1997 ).
In Bate & Burkert 1997 we discovered that in order to model self-gravitating fluids correctly with SPH, a resolution criterion must be obeyed. We found that the Jeans mass must always be resolved by at least twice the number of particles in a smoothing kernel (typically 50). If this criterion is not obeyed then, depending on the specific implementation of an SPH code, gravitationally-unstable objects may be stablised against collapse or stable objects may collapse unphysically. This Jeans mass criterion is similar to the Jeans length criterion for grid-based codes identified by Truelove et al. (1997) but was discovered independently.
ZEUS: A Finite-difference Magnetohydrodynamics Code
ZEUS is a grid-based finite-difference code for simulating fluids. It was originally developed by J. Stone and M. Norman (1992). The original version is a two-dimensional code that includes ideal magnetohydrodynamics and radiative transfer in the flux-limited diffusion approximation. Several three-dimensional versions have been developed. Currently, I make use of the original 2-D code (which I have parallelised using OpenMP) and a 3-D OpenMP parallel version of ZEUS developed by K. Millar and J. Stone for spherical polar coordinates.