Astaroth

A GPU engine of astrophysical MHD
astaroth logo

Astaroth is a GPU based library for stencil computations that also supports a standalone MHD solver. Astaroth provides a domain specific language (DSL), which can be used to compute stencil based operations on GPUs, and an API to interface all this. As a GPU-based stencil computation engine, Astaroth is one of the most efficient for three dimensional stencils due to its efficient use of cache memory to reduce read-write memory latency. Additionally it can be run on a massively parallel scale, and supports both of the major brands of GPUs for high performance computing.

The standalone Astaroth computes resistive MHD using a sixth-order finite difference method (similar to Pencil Code). It contains a full description of viscosity, with additional support such as shock capturing and upwinding. Published physics results so far have dealt with both MHD turbulence and star formation, and the properties of the code are gradually expanding.

CompAS/CHARMS is one of the leading partners in the development of Astaroth. Astaroth is free and open source software and is available from the public repository beyond this link.

Additional information available in the CHARMS page

Summary of Astaroth Features
  • DSL for setting up important computations on GPU in a simple way.
  • API for modularity and ease of use.
  • Parallel implementation using MPI.
  • Support for both Nvidia and AMD GPUs via CUDA and HIP.
  • 6th-order finite difference solver for MHD.
  • Full viscosity tensor.
  • Ohmic resistivity.
  • Forcing function for helical turbulence driving.
  • A set of Python 3 tools for data processing.

Gallery of applications
Turbulent large-scale dynamo field.
Turbulent large-scale dynamo field. (Väisälä et al. 2021)
Column density map of a pseudodisk model with magnetic field lines.
Column density map of a pseudodisk model with magnetic field lines. (Väisälä et al. 2023)