Introduction

We have written a modular, finite volume, fluid dynamics code for astrophysics simulations. The code uses a uniform grid in 1, 2, or 3 spatial dimensions with cubic cells. Scalar and vector fields are both cell-centred. The integrator for the fluid equations is based on the algorithm described by Falle (1998), which is dimensionally unsplit and second order accurate in time and space. We have separate Riemann solvers for the Euler and Ideal Magnetohydrodynamics (MHD) equations to calculate intercell fluxes. The ability to track the ionisation state of various elements and associated radiative cooling processes is achieved using advected passive tracer variables and a microphysics code module. Operator splitting is used to allow the microphysics module to integrate the ionisation rate equations together with heating and cooling processes, evolving the tracer variables and the internal energy for each cell over the timestep. Photo-ionising radiative transfer is enabled with a ray-tracing code module which traces ionising photon flux outwards from a point source. This module is coupled to the microphysics module to include photo-ionisation in the microphysics calculation using a modified version of the C$ ^2$-ray algorithm developed by Mellema (2006). The different code modules are described in detail in the following sections. The code has been written in C++ (e.g. Stroustrup, 1997) with a modular, object-oriented structure.



Subsections
Jonathan Mackey
2010-01-07