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

How to Cite

Code changes:
57 commits this past month, 1085 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.3.0.tar.gz [2021-07-24]

Among others this release includes the following significant changes:

  • New: ASPECT now requires deal.II 9.2.0 or newer. (Timo Heister)

  • New: ASPECT has a new, reproducible logo. (Rene Gassmoeller, Juliane Dannberg)

  • New: Mesh deformation now also works in combination with particles. Instead of the end of the timestep, particles are now advected before solving the compositional field advection equations. In iterative advection schemes, the particle location is restored before each iteration. (Anne Glerum, Rene Gassmoeller, Robert Citron)

  • New: ASPECT now supports the creation of visualization postprocessors that only output data on the surface of a model. An example is the "surface stress" visualization postprocessor. (Wolfgang Bangerth)

  • New: A new class TimeStepping::Manager to control time stepping with a plugin architecture has been added. The architecture allows to repeat time steps if the time step length changes significantly. (Timo Heister)

  • New: A mesh refinement plugin that allows to set regions of minimum and maximum refinement level between isosurfaces of solution variables. (Menno Fraters and Haoyuan Li)

  • New: There is a new nullspace removal option 'net surface rotation', which removes the net rotation of the surface. (Rene Gassmoeller)

  • New: Particle advection can now be used in combination with the repetition of timesteps. Before each repetition the particles are restored to their previous position. (Anne Glerum)

  • New: There is a new property in the depth average postprocessor that averages the mass of a compositional field (rather than its volume). (Juliane Dannberg)

  • New: The Drucker Prager rheology module now has an option to include a plastic damper, which acts to stabilize the plasticity formulation. At sufficient resolutions for a given plastic damper viscosity, the plastic shear band characteristics will be resolution independent. (John Naliboff and Cedric Thieulot)

  • New: ASPECT can now compute viscosity values depending on the values of phase functions for an arbitrary number of phases. (Haoyuan Li, 2020/08/06)

  • New: Added calculation for temperature-dependent strain healing in the strain dependent rheology module. (Erin Heilman)

  • New: Added new rheology module, which computes the temperature dependent Frank Kamenetskii viscosity approximation. (Erin Heilman)

  • New: ASPECT now includes a CompositeViscoPlastic rheology module. This rheology is an isostress composite of diffusion, dislocation and Peierls creep rheologies and optionally includes a damped Drucker-Prager plastic element. The rheology module for Peierls creep includes a formulation to compute the exact Peierls viscosity, using an internal Newton-Raphson iterative scheme. (Bob Myhill, John Naliboff and Magali Billen)

  • New: There is a new visualization postprocessor 'principal stress', which outputs the principal stress values and directions at every point in the model. (Rene Gassmoeller)

  • New: Added the functionality to compute averages in user defined depth layers (e.g. lithosphere, asthenosphere, transition zone, lower mantle) to the depth average postprocessor and the lateral averaging plugin. (Rene Gassmoeller)

  • New: The 'spherical shell' geometry model now supports periodic boundary conditions in polar angle direction for a 2D quarter shell (90 degree opening angle). (Kiran Chotalia, Timo Heister, Rene Gassmoeller)

  • New: A new particle interpolator based on quadratic least squares has been added. (Mack Gregory, Gerry Puckett)

  • New: There is now a mesh deformation plugin "diffusion" that can be used to diffuse surface topography in box geometry models. (Anne Glerum)

  • Bug fixes to: Steinberger and Calderwood viscosity profile, particle generation, viscous strain weakening, incompressible equation of state, pressure sign convention, Neumann heat flow boundaries with the Newton solver, viscosity on the adiabat for extended Boussinesq approximation models, and many more. (many authors)

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

View Prior Source Releases

[show] [hide]

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

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