Actively adding features to support improved science or performance by CIG.

How to Cite

Code changes:
239 commits this past month, 898 commits this past year.

Geodynamics Forum

Bug reports:
Github Issue Tracker

GNU Public License


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.

Current Release

Source Packages

aspect-2.2.0.tar.gz [2020-06-30]

This release includes the following significant changes:

  • New: There is a new matrix-free Stokes solver which uses geometric multigrid.
    This method is significantly faster than the default algebraic multigrid
    preconditioner and uses less memory. Free surface and melt transport are not
    yet implemented.
    (Thomas C. Clevenger, Timo Heister)

  • New: There is now a new approximation for the compressible convection
    models that is called 'projected density field'.
    (Rene Gassmoeller, Juliane Dannberg, Timo Heister, Wolfgang Bangerth)

  • Changed: The Geodynamic World Builder has been updated to version 0.3.0.
    (Menno Fraters)

  • Changed: ASPECT now requires deal.II version 9.0.0 or newer.
    (Timo Heister, Rene Gassmoeller)

  • New: There is a new, alternative stabilization method for the advection equation
    called SUPG.
    (Thomas C. Clevenger, Rene Gassmoeller, Timo Heister, Ryan Grove)

  • Changed: The entropy viscosity method for stabilizing the advection equations
    was substantially improved leading to less artificial diffusion in particular
    close to boundaries.
    (Rene Gassmoeller)

  • New: The 'visco plastic' material model now has an option to simulate
    viscoelastic-plastic deformation. The 'viscoelastic plastic' material
    model has been superseded and removed.
    (John Naliboff, Dan Sandiford)

  • New: The "Free surface" functionality has been generalized and is now part of
    "Mesh deformation". This change is incompatible to old parameter files that
    used the free surface.
    (Rene Gassmoeller, Anne Glerum, Derek Neuharth, Marine Lasbleis)

  • New benchmarks: entropy equation, viscoelastic cantilever, bouyancy-driven
    viscoelastic plate stress, advection in annulus, slab detachment benchmark,
    several advection benchmarks, rigid shear, polydiapirs, surface loading.
    (Wolfgang Bangerth, Fiona Clerc, Juliane Dannberg, Daniel Douglas, Rene
    Gassmoeller, Timo Heister, Garrett Ito, Harsha Lokavarapu, John Naliboff,
    Elbridge G. Puckett, Cedric Thieulot)

  • Incompatibility: The option to use PETSc for linear algebra has been removed
    until further notice.
    (Timo Heister)

  • New: If the user has the libdap libraries installed then input data can be
    pulled from the server instead of a local file.
    (Kodi Neumiller, Sarah Stamps, Emmanuel Njinju, James Gallagher)

  • New: Implement the "no Advection, single Stokes" and
    "single Advection, iterated Newton Stokes" solver schemes.
    (Timo Heister, Anne Glerum)

  • New: The chunk geometry model can now incorporate initial
    topography from an ascii data file.
    (Anne Glerum)

  • New: The 'depth average' postprocessor now additionally computes the laterally
    averaged density of vertical mass flux for each depth slice in the model.
    (Rene Gassmoeller)

  • Changed: The gravity point values postprocessor has been significantly extended.
    (Ludovic Jeanniot, Cedric Thieulot)

  • New: There is now a general class
    MaterialModel::Utilities::PhaseFunction that can be used to model
    phase transitions using a smooth phase function.
    (Rene Gassmoeller, John Naliboff, Haoyuan Li)

  • New: ASPECT now includes a thermodynamically self-consistent compressible
    material model, that implements the Modified Tait equation of state that is
    described in Holland and Powell, 2011.
    (Bob Myhill)

  • New: The material models can now outsource the computation of the viscosity
    into a separate rheology model.
    (Rene Gassmoeller)

  • New: ASPECT now includes initial temperature and initial composition plugins
    that use ASCII data files to define the initial temperature or composition
    at a series of layer boundaries.
    (Sophie Coulson, Anne Glerum, Bob Myhill)

  • New: Extended spherical shell geometry model to include custom mesh schemes.
    (Ludovic Jeanniot, Marie Kajan, Wolfgang Bangerth)

  • New: There is a new termination criterion that cancels the model run
    when a steady state average temperature is reached.
    (Rene Gassmoeller, Juliane Dannberg, Eva Bredow)

  • Bug fixes to : parallel hdf5 output, chunk geometry model, initial
    topography modules, gplates boundary velocity plugin.
    (many authors)

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

View Prior Source Releases

[show] [hide]

aspect-2.1.0.tar.gz [2019-04-29]

This release includes the following significant changes:

  • New: ASPECT has a new plugin system that allows it to prescribe a fixed heat flux (instead of prescribing the temperature) at the model boundaries.
  • New: Compositional fields can optionally be advected with the melt velocity.
  • New: There is now a visualization postprocessor that outputs the compaction length, the characteristic length scale of melt transport.
  • New: ASPECT can optionally use the Geodynamic World Builder ( to create complex initial conditions for temperature and composition.
  • New: ASPECT can now read in a depth-dependent vs to density conversion file, which can be used with the included tomography model plugins.
  • New: ASPECT can now read in a depth-dependent initial temperature from file.
  • New: The 'ascii data' and 'function' boundary velocity plugins now allow velocities to be specified along spherical (up, east, north) unit vectors.
  • New: Added a visualization plugin that directly outputs the strain rate tensor.
  • New: ASPECT can now call PerpleX to calculate material properties, phase amounts and compositions on-the-fly. This model is provided as a proof-of-concept; more efficient procedures are required for production runs.
  • New: ASPECT now outputs a dynamically generated URL based on used features to ask people to cite appropriate papers.
  • New: ASPECT has two visualization postprocessors which calculate and output the grain lag angle and the infinite strain axis (ISA) rotation timescale, respectively. These two quantities can be used to calculate the grain orientation lag parameter of Kaminski and Ribe (G3, 2002).
  • Improved: The artificial diffusion term that is added in the entropy viscosity method to the temperature and composition equations is now computed as the maximum of the physical diffusion and entropy viscosity instead of the sum. This reduces numerical diffusion for the temperature field.
  • New: Compositional fields can now be prescribed to a value that is computed in the material model as an additional output at every time step.
  • Changed: The heat flux through boundary cells is now computed using the consistent boundary flux method as described in Gresho, et al. (1987), which is much more accurate than the previously used method.
  • New: ASPECT can now calculate gravity anomalies in addition to the geoid.
  • New: ASPECT now outputs a file named original.prm in the output directory with the exact content of the parameter it got started with.
  • New: Added basic support for a volume-of-fluid interface tracking advection method in 2D incompressible box models. The VoF method is an efficient method to track a distinct compositional field without artificial diffusion.
  • New: There is now an option to output visualization data as higher order polynomials. This is an improvement in accuracy and requires less disk space than the 'Interpolate output' option that was available before. However the new output can only be read by ParaView version 5.5 and newer and is therefore disabled by default.
  • New: Several new benchmark cases were added.
  • Many other fixes and smaller improvements.
A complete list of changes and their contributing authors can be found at

aspect-2.0.1.tar.gz [2018-06-24]

This release is a bugfix release for 2.0.0 and includes the following fixes:

  • Fixed: The 'compositional heating' heating plugin had a parameter 'Use compositional field for heat production averaging' that was used inconsistently with its description. Its first entry did not correspond to the background field, but to the first compositional field, and the last value was ignored. This is fixed now, the first entry is used for the background field, and all following values determine whether to include the corresponding compositional fields.
  • Fixed: The 'depth dependent' material model did not properly initialize the material model it uses as a base model. This caused crashes if the base model requires an initialization (such as the 'steinberger' material model). This is fixed now by properly initializing the base model.
  • Fixed: The advection assembler for DG elements was not thread-safe, which led to wrong results or crashes if a discontinuous temperature or composition discretization was combined with multithreading.
  • Disabled: The particle functionality was not tested when combined with a free surface boundary, and this combination is currently not supported. This limitation is now made clear by failing for such setups with a descriptive error message.

aspect-2.0.0.tar.gz [2018-05-10]

This release includes the following changes:

  • New: Newton solver and defect correction Picard iterations for nonlinear problems (for the Stokes system)
  • Melt solver: Overhaul leading to improved performance and stability, better integration with other plugins
  • New: Material model with grain size evolution
  • New: Boundary temperature plugin with evolving core-mantle boundary temperature based on the heat flux through the core-mantle boundary
  • New: ASPECT can now compute the geoid in 3D spherical shell geometry
  • New: Operator splitting for reactions between compositional fields
  • New: Added a PREM gravity profile
  • Improved: Significantly reduced memory consumption in models that use many compositional fields
  • Improved: A large number of performance improvements for preconditioners, assembly, seismic tomography initial conditions, and lateral averaging
  • Improved: More flexibility for boundary and initial conditions, different plugins can be combined
  • Improved: The dynamic topography postprocessor now uses the consistent boundary flux method for computing surface stresses, which is significantly more accurate
  • New: Additional RHS force terms in the Stokes system can be added
  • New particle interpolators: nearest neighbor, bilinear least squares, harmonic average
  • New: Graphical user interface for the creation and modification of input parameter files
  • Many other fixes and small improvements.
  • Rework: Updated parameter and section names to make them more consistent and easier to understand. A script for updating parameter and source files is provided with the release.
A complete list of changes can be found at

aspect-1.5.0.tar.gz [2017-02-28]

This release includes the following changes:

  • New: Choice between different formulations for the governing equations including Boussinesq and anelastic liquid approximation.
  • New: Melt transport (two-phase flow).
  • Particles: new generators, ghost exchange, performance improvements, interpolation to fields.
  • New: Nondimensional material model for incompressible (using the Boussinesq approximation) and compressible computations (with ALA or TALA) for nondimensionalized problems. This can be used for benchmark problems like Blankenbach, King, etc..
  • New: Optional DG method for temperature/composition.
  • Adiabatic conditions: rework, now includes a reference density profile.
  • Free surface: overhaul.
  • New cookbooks: continental extension, finite strain, BurnMan interface, active tracers.
  • New benchmarks: TanGurnis, Blankenbach, King.
  • New: viscoplastic material model.
  • Material model interface cleanup.
  • Assembly performance improvements.
  • New: memory statistics postprocessor.
  • New: initial topography plugins.
  • Many other fixes and small improvements.

A complete list of changes can be found at

aspect-1.4.0.tar.gz [2016-05-15]

This release includes the following changes:

  • Complete overhaul of the particle architecture.
  • Modularization of the assembly process.
  • Large improvements to serial and parallel performance of particle handling.
  • Support for traction boundary conditions.
  • Support for time-dependent mesh refinement criteria.
  • Flexible support for modifying the underlying FEM variables for the PDE.
  • Optional DG support for temperature and compositional fields.
  • More robust parallel file I/O.
  • Support for tangential mesh velocity boundaries in free surface computations.
  • Support for anisotropic viscosity.
  • Various fixes to free surface computations: checkpointing, better stabilization, crash fixes.
  • New Chunk Geometry model.
  • New material property averaging options.
  • Complete rewrite of the heating model infrastructure.
  • Several new cookbooks.
  • Several new postprocessors.
  • Support for signals in various locations that allows plugins to inspect/manipulate things inside the core application.
  • Several new mesh refinement plugins.
  • Improved spherical interpolation of data used in the GPlates plugin.
  • Many other fixes and small improvements.
A complete list of changes can be found at
and the release is also available from

aspect-1.3.tar.gz [2015-05-18]


  • New: Averaging of material properties between the quadrature points of a cell. This greatly increases the stability of solutions in simulations with spatially varying coefficients, and also greatly accelerates the solution, at times up to a factor of ten.
  • Corrections to the entropy stabilization scheme for compositional fields.
  • Fixed and extended: Removal of rigid body translations and rotations when the simulation has a nullspace.
  • New: VTU visualization output can now be grouped into an arbitrary number of files per time step.
  • Various fixes to the nonlinear solver residual computation.
  • New visualization postprocessors that can output the shear stress and full stress tensors.
  • Fixes to the latent heat formulation.
  • New 'ascii data' plugins for boundary and initial conditions.
  • New mass flux statistics postprocessor.
  • Many other fixes and small improvements.
A complete list of changes can be found at

aspect-1.2.tar.gz [2015-01-26]


  • methods to have truly concentric shells without distorted cells
  • linear solver improvements which give up to 2x speedup in some cases
  • boundary names like "top" instead of numbers are now supported in input files
  • new example: free surface computation with a crust as a stagnant lid
  • new benchmarks: Davies et al. and Burstedde et al.
  • new initial condition: S40RTS perturbation based on shear wave data
  • fixes to minimum/maximum refinement plugins
  • better error messages when linear solvers fail
  • many other fixes and small improvements (direct solver, file output, checkpointing, etc.)
A complete list of changes can be found at

aspect-1.1.tar.gz [2014-06-01]

  • Initial work on free surface in Arbitrary Lagrangian-Eulerian framework
  • New postprocessors, initial temperature profiles
  • Improved PETSc support
  • Bug fixes

aspect-1.0.tar.gz [2014-04-16]

This release contains a large number of changes, incorporating about one year of work of the main authors and many contributors:
- a lot of new documentation
- new examples (2d/3d shells, GPlates, ...)
- option to remove rotational/translational modes
- big performance improvements
- compositional fields: reactions, boundary conditions
- support for periodic meshes
- output of dynamic topography
- incorporation of latent heat
- experimental PETSc support

User Resources

User Manual

The ASPECT user manual is available online.

Community Wiki

Visit the ASPECT Wiki page for additional support with building, using, or modifying ASPECT.

ASPECT Publications List

Research publications using ASPECT.

Community Discussion

Browse the CIG Mailing List Archive to find past discussions and previous troubleshooting help, or post to the CIG forum with questions or comments.

Browse the CIG Mailing List Archive to find past discussions and previous troubleshooting help, or post to the CIG forum with questions or comments.

Developer Resources

Development Version

If you are interested in getting the development version of this code from the CIG repository, use the following git command:

git clone --recursive

You can also browse the history of modifications in the Git repository.

Issue/Bug Tracker on Github

Browse and/or submit new issues at our Github Issues Tracker.

ASPECT Users Map

Shows location of all users who downloaded ASPECT in the past year (image updated daily.)

map showing location of all users who downloaded ASPECT in the last year (image updated daily)
This image was generated using GMT: The Generic Mapping Tools which is released under the GNU LGPL3+. Location data is based on MaxMind's GeoLite database which is released under the Creative Commons CC-BY-SA 3.0.
Sign In