ASPECT: Advanced Solver for Problems in Earth's ConvecTion

What it is: An extensible code written in C++ to support research in simulating convection in the Earth mantle and elsewhere.
Mission: To provide the geosciences with a well-documented and extensible code base for their research needs.
Vision: To create an open, inclusive, participatory community providing users and developers with a state-of-the-art, comprehensive software that performs well while being simple to extend.
Download! »   

ASPECT is open source and available for free!

Help! » Find more information on ASPECT in general and where to ask questions.
Participate! » ASPECT is a community project. We welcome all who want to participate in any way!
Manual » The manual explains most of what you may want to know about ASPECT. See the Info tab above for more resources.


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.


The primary means of communicating with ASPECT developers and users is by email:

The ASPECT mailing list is used by developers to announce new features and by users to ask questions about how to do things.

Bug reports can be submitted on our github page.

Send email to Wolfgang Bangerth, Juliane Dannberg, Rene Gassmoeller, or Timo Heister if you have questions that are not appropriate for a public and archived mailing list.

We appreciate comments and suggestions on ASPECT. They can be addressed to either of the addresses above, depending on their public or private nature.

Legal Notice: Some countries' laws require us to post this legal notice. Please write to the responsible federal judges if you find this silly.