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

How to Cite

Code changes:
74 commits this past month, 609 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.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

View Prior Source Releases

[show] [hide]

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.

Doxygen Documentation

Auto-generated Doxygen documentation is available for the Development and Release codebases.

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