You are here: Home / Resources / Software: Download / ASPECT / About


By Wolfgang Bangerth, Juliane Dannberg, Menno Fraters, Rene Gassmoeller, Anne Glerum, Timo Heister, Robert Myhill, John Naliboff

Published on


A finite element parallel code to simulate problems in thermal convection in both 2D and 3D models.

ASPECT is a code to simulate problems in thermal convection. Its primary focus is on the simulation of processes in the earth's mantle, but its design is more general than that. The primary aims developing ASPECT are:

  • Usability and extensibility: Simulating mantle convection is a difficult problem characterized not only by complicated and nonlinear material models but, more generally, by a lack of understanding which parts of a much more complicated model are really necessary to simulate the defining features of the problem. This uncertainty requires a code that is easy to extend by users to support the community in determining what the essential features of convection in the earth's mantle are.
  • Modern numerical methods: We build ASPECT on numerical methods that are at the forefront of research in all areas -- adaptive mesh refinement, linear and nonlinear solvers, stabilization of transport-dominated processes. This implies complexity in our algorithms, but also guarantees highly accurate solutions while remaining efficient in the number of unknowns and with CPU and memory resources.
  • Parallelism: Many convection processes of interest are characterized by small features in large domains -- for example, mantle plumes of a few tens of kilometers diameter in a mantle almost 3,000 km deep. Such problems require hundreds or thousands of processors to work together. ASPECT is designed from the start to support this level of parallelism.
  • Building on others' work: Building a code that satisfies above criteria from scratch would likely require several 100,000 lines of code. This is outside what any one group can achieve on academic time scales. Fortunately, most of the functionality we need is already available in the form of widely used, actively maintained, and well tested and documented libraries. Thus, ASPECT builds immediately on top of the deal.II library for everything that has to do with finite elements, geometries, meshes, etc.; and, through deal.II on Trilinos for parallel linear algebra and on p4est for parallel mesh handling.
  • Community: We believe that a large project like ASPECT can only be successful as a community project. Every contribution is welcome and we want to help you so we can improve ASPECT together.

ASPECT is published under the GNU GPL v2 or newer license.

Release Notes

aspect-2.5.0.tar.gz [2023-07-31]

Among others this release includes the following significant changes:

  • ASPECT now includes version 0.5.0 of the Geodynamic World Builder.
    (Menno Fraters and other contributors)

  • ASPECT's manual has been converted from LaTeX to Markdown to be hosted as a
    website at
    (Chris Mills, Mack Gregory, Timo Heister, Wolfgang Bangerth, Rene
    Gassmoeller, and many others)

  • New: ASPECT now requires deal.II 9.4 or newer.
    (Rene Gassmoeller, Timo Heister)

  • ASPECT now supports a DebugRelease build type that creates a debug build and
    a release build of ASPECT at the same time. It can be enabled by setting the
    CMake option CMAKE_BUILD_TYPE to DebugRelease or by typing "make debugrelease".
    (Timo Heister)

  • ASPECT now has a CMake option ASPECT_INSTALL_EXAMPLES that allows building
    and install all cookbooks and benchmarks. ASPECT now additionally installs
    the data/ directory. Both changes are helpful for installations that are used
    for teaching and tutorials.
    (Rene Gassmoeller)

  • Changed: ASPECT now releases the memory used for storing initial conditions
    and the Geodynamic World Builder after model initialization unless an
    owning pointer to these objects is kept. This reduces the memory footprint
    for models initialized from large data files.
    (Wolfgang Bangerth)

  • Added: Various helper functions to distinguish phase transitions for
    different compositions and compositional fields of different types.
    (Bob Myhill)

  • Added: The 'adiabatic' initial temperature plugin can now use a spatially
    variable top boundary layer thickness read from a data file or specified as a
    function in the input file. Additionally, the boundary layer temperature can
    now also be computed following the plate cooling model instead of the
    half-space cooling model.
    (Daniel Douglas, John Naliboff, Juliane Dannberg, Rene Gassmoeller)

  • New: ASPECT now supports tangential velocity boundary conditions with GMG for
    more geometries, such as 2D and 3D chunks.
    (Timo Heister, Haoyuan Li, Jiaqi Zhang)

  • New: Phase transitions can now be deactivated outside a given temperature
    range specified by upper and lower temperature limits for each phase
    transition. This allows implementing complex phase diagrams with transitions
    that intersect in pressure-temperature space.
    (Haoyuan Li)

  • New: There is now a postprocessor that outputs the total volume of the
    computational domain. This can be helpful for models using mesh deformation.
    (Anne Glerum)

  • New: Added a particle property 'grain size' that tracks grain size evolution
    on particles using the 'grain size' material model.
    (Juliane Dannberg, Rene Gassmoeller)

  • Fixed: Many bugs, see link below for a complete list.
    (Many authors. Thank you!).

A complete list of all changes and their authors can be found at