[aspect-devel] Progress in writing the mantle convection code Aspect
bangerth at math.tamu.edu
Mon Sep 30 20:49:03 PDT 2013
there has been some criticism recently that CIG doesn't sufficiently well
communicate what it is working on. I think I share in this problem, not
communicating well what we do with Aspect. Thus, allow me this slightly
longish email. I hope to do these sorts of things periodically in the future,
and I hope that this sparks a conversation about what people want/need and how
this meshes with what we're doing.
To start with: Aspect is a mantle convection code whose development is
supported by CIG. It has three main goals:
- Modern numerical methods for discretizations, solver, and software
design; building on well-tested and widely used software libraries.
- Designed to make extending the code simple. In particular, to change
the rheology, geometry, postprocessing, etc, you need not know
anything about how Aspect discretizes and solves the actual equations.
- Designed to scale to large problems on large parallel machines.
The code's website is here:
The manual (currently 129 pages) is here:
The central numerical methods are described in paper #34 here:
I won't go into more detail on what this code is, but wanted to update you on
what has been happening recently:
1/ Aspect has modules that allow the advection of what we call "compositional
fields" (originally implemented by Juliane Dannberg) -- essentially, these are
quantities you can initialize at the beginning and then they will simply be
advected along with the flow. The idea is that you can, for example, mark
material from a ULVZ by setting the compositional field there to one and zero
elsewhere, and see where this stuff is transported. All material parameters
can of course depend on these field values as well.
That said, in geodynamics, the role of compositional fields has traditionally
been filled by tracer particles. Eric Heien had previously implemented tracers
but in their current implementation they lack the ability to carry information
about where they came from without having to modify the code (i.e., by setting
something in the input file). Among the projects we've been working on is to
rewrite this functionality in a way that allows attaching information to
2/ I had Sarah Stamps, a postdoc at MIT, here a couple of weeks ago. Her goal
is to model flow under Africa, and this has provided me with an opportunity to
see how people want to use Aspect. We did have a model with real topography, a
realistic initial temperature field, appropriate boundary conditions and a
temperature-dependent viscosity working by the end of the week, which I took
as a pretty good sign for what can be done with Aspect.
In addition to choosing appropriate parameters in the input file, this
exercise required writing code to describe the surface topography, material
model, initial temperature, and other bits and pieces. This did require decent
C++ knowledge, but maybe a bit to my surprise, some of it also required a good
working knowledge of deal.II (one of the libraries upon which Aspect builds).
Observing and participating in this exercise made me realize that we need to
document these parts better -- currently, the documentation states that
certain classes have to be implemented (if you know C++, you know what this
means) but there were no concrete examples of actually doing so. My conclusion
is that we will need to provide more extensive and hands-on documentation,
which I hope to put into the manual over the next few months.
These are the two big projects currently on my plate. As I stated above, I
hope to send similar updates again in the future. Let me know of any feedback
or questions you may have!
Wolfgang Bangerth email: bangerth at math.tamu.edu
More information about the Aspect-devel