Proteus

General Description

Proteus is a finite-volume, Eulerian method solving the magnetohydrodynamical equations on a fixed grid. It uses a higher-order gas-kinetic flux splitting method (see below), which allows the inclusion of dissipative terms (viscosity, heat conduction, resistivity) at (close to) no extra computational cost and penalty in accuracy. Proteus is fully parallelized under MPI, and it scales linearly with processor number. It has been tested up to 256 processors.

These are the physical processes Proteus can model:
  • compressible, full 3D magnetohydrodynamics including viscosity, heat conduction and Ohmic resistivity
  • Self-gravity (periodic and non-periodic)
  • heating and cooling (in tabulated form)
  • ionizing point sources including evolution of 2-species-gas (not quite there yet...)
  • ambipolar diffusion in 2-fluid description
  • simple radiation fields (only forward scattering)

Its main advantage over otherwise equivalently performing Riemann solvers is that the dissipative terms are included at the same level in the flux computation, and do not have to be added as external source terms. It is "positive definite" for densities, and for pressures under physical initial conditions.

Solver details

The solver is a gas-kinetic flux-splitting method based on the BGK-scheme (Bhatnagar, Gross, Krook 1954). The collision term in the underlying Boltzmann equation is interpreted as the difference between the initial distribution function and the equilibrium (Maxwellian) distribution, divided by the collision time. Taking the usual moments of the Boltzmann equation, this gives rise to two types of fluxes: an equilibrium flux for timescales much larger than the collision time, and a free-transport flux for timescales much shorter than the collision time. The fluxes are combined depending on the order of the scheme. In the first-order BGK scheme, the ratio of the fluxes is fixed to a constant value, while the second-order scheme weighs the flux contribution via the local ratio of the collision time over the timestep (and integrates the distributions function's evolution over the timestep, instead of just using the initial and final state). The MHD-version is currently only implemented in the first-order scheme Proteus evolves the total energy equation and conserves energy and mass at machine accuracy level.
For the reconstruction step, a choice of limiters is available. Depending on the physical problem, the reconstruction can be staged in terms of accuracy and fall-back solutions. Detailed diagnostics allow the run-time assessment of the solution's quality.
Currently, the MHD scheme requires a divergence-cleaning operation. This is done via an (exact) Hodge projection using Fourier transforms.

Time Stepping

The 1st order BGK scheme uses a TVD Runge-Kutta time stepping (Shu & Osher 1988) to achieve higher order time accuracy (2nd and 3rd order are currently implemented). The 2nd order BGK scheme is a 1-step integrator at 2nd order in time and space.

Gravity

Gravity is implemented via an FFT-Poisson solver, using the fftw-libraries. Partially and fully non-periodic domains can be treated, as well as fully periodic ones.

Internal Energy Evolution

The scheme evolves the total energy assuming an ideal gas law. An isothermal version is available in the 1st order scheme. The evolution of the energy equation allows for changes due to (external) heating and cooling processes. These can be provided in form of a table. This external source term is applied iteratively, taking into account the ratio of the thermal time scales over the dynamical time scale.

Ambipolar Diffusion

Ion-neutral drift is implemented in the 2-fluid description. Ions and neutrals are coupled via collision terms, following the semi-implicit treatment of Mac Low et al. (1997).

Literature

  • Bhatnagar, Gross, Krook 1954
  • Prendergast & Xu 1993
  • Slyz & Prendergast 1999
  • Heitsch, Zweibel, Slyz, Devriendt 2004
  • Slyz, Devriendt, Bryan, Silk 2005
  • Heitsch, Slyz, Devriendt, Hartmann, Burkert 2006
  • Slyz, Devriendt, Bryan, Heitsch, Silk 2007
  • Heitsch, Slyz, Devriendt, Hartmann, Burkert 2007