ASPECT: Advanced Solver for Planetary Evolution, Convection, and Tectonics

What it is: An extensible code written in C++ to support research in simulating convection in the Earth's 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!

Manual! » The online manual explains most of what you may want to know about ASPECT.
The old pdf manual is available by clicking here.
Parameters! » ASPECT is controlled by input parameters. Find all available options.
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!
Cite! » Are you using ASPECT in your work? Please give us credit in your publication. Thanks!


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.

Forum and Contact

The primary means of communicating with ASPECT developers and users is in our forum:

The ASPECT forum 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 an email to one of the maintainers if you have questions that are not appropriate for a public and archived forum.

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