[aspect-devel] Development update: ASPECT-GUI, Docker container, Solver defaults
Rene Gassmoeller
rene.gassmoeller at mailbox.org
Mon Apr 3 13:31:41 PDT 2017
Hi all,
this is an additional development update, somewhat out of the line of
the usual newsletters. In the last weeks there have been some
potentially useful, important additions and changes to ASPECT that in my
opinion justify this additional notice. Lets look at them one at a time:
1. ASPECT-GUI: Because ASPECT is growing at a steady pace the number of
input parameter file options today is probably larger than any single
person, including the maintainers, can remember. Looking up parameters
in the manual or in output files is the current solution, but that
requires a lot of searching through walls of text. Luckily since several
years there is a little program for deal.II called 'parameter_gui'
(https://github.com/dealii/parameter_gui) that can visualize the
structure of parameter files in a tree-like structure and allows to
change and save these parameters. Thanks to a concerted effort of the
maintainers we improved this program, and now provide a script inside
ASPECT that allows to browse all ASPECT input parameters (including
their type, documentation, and default value) in a graphical way, change
values, and write a parameter file that can afterwards be used to start
a regular ASPECT model. Installation and usage of this script is
described in a new section in the manual, and we want to encourage you
to try this new feature. We have found it can make creating new models
or modifying existing models much more intuitive, and have discovered
some options we had forgotten about! Of course, since the GUI only
produces a parameter file that is then started the traditional way there
is nothing wrong with writing your parameter files by hand, and we will
continue to support this way of starting models.
Discussions during the development of this feature can be found here:
https://github.com/geodynamics/aspect/pull/1419
https://github.com/geodynamics/aspect/pull/1414
https://github.com/dealii/parameter_gui/pulls?q=is%3Apr+is%3Aclosed
2. ASPECT docker container: Due to its list of dependencies the
installation of ASPECT was always somewhat tedious and prone to
problems. Following a discussion on the mailing list a few weeks back,
and with the growing use of container-based distribution systems we now
provide an ASPECT Docker image that allows to install ASPECT with a
single shell command if you have a Docker engine running on your machine
(try 'docker pull gassmoeller/aspect'). This is likely not the solution
for massively parallel computations, but it allows you to run smaller
models or tests on your local machine. Again more detailed information
is available in the current manual
(http://www.math.clemson.edu/~heister/manual.pdf). As a side note: This
allows the use of ASPECT on Microsoft Windows in a nearly native look
and feel.
Discussions about the development of this feature can be found here:
https://github.com/geodynamics/aspect/pull/1402
3. Stokes solver defaults: As you know ASPECT is used to model a vast
variety of different geodynamic scenarios. In particular the performance
of the Stokes solver can depend crucially on some input parameters and
the type of problem that is modelled. This makes choosing sensible
default values very hard. In general, ASPECT uses a two-stage Stokes
solver that first tries to solve the system using a less accurate, but
very cheap preconditioner. Upon a failure to reach a specified residual
tolerance after a specified number of iterations it switches to a much
more expensive but also much more accurate preconditioner. Parameters
that can be tuned in this process are in particular: 1. The tolerance up
to which the full Stokes system is solved. 2. The number of cheap solver
iterations, before the expensive preconditioner is used. 3. The accuracy
of the expensive preconditioner (it is itself the solution of a linear
system).
In the last week we have re-examined our default choice for the number
of cheap solver iterations. The old ASPECT default values were chosen
and tuned to allow simple models (e.g. with constant viscosity) to
converge within the cheap solver iterations, while the expensive
preconditioner was the default method for most other models. However our
tests with more realistic models have shown that nearly all models even
with realistic viscosity contrasts (>= 4 orders of magnitude, including
plasticity) benefit from more cheap solver iterations. While the number
of iterations usually increases significantly (up to a factor of 5) the
cheaper preconditioner offsets this easily (each iteration is around 40
times faster). The amount of achieved Stokes solver speedup depends on
the model, but can reach anything from 10% to a factor of 40. There are
a few consequences of these results:
- We think the new default for the number of cheap Stokes solver
iterations (200 instead of 30) benefits most models, while we can not
guarantee it helps all models.
- You can optimize individual models further. Playing with the above
mentioned parameters can significantly speed up model runtimes, in
particular if your model is limited by the time spend in the Stokes
solver. You can use the 'Stokes residual' postprocessor to investigate
convergence behavior of your particular model.
- Our old suggestion that setting the Number of cheap Stokes solver
iterations to 0 is helpful for plasticity models, does not seem to hold
any more in our tests.
Discussions during the development of this feature and results of our
convergence tests can be found here:
https://github.com/geodynamics/aspect/pull/1421
Since all of the above changes are recent, they might contain bugs, or
unknown side effects we have not discovered yet. Let us know about them
via the mailing list, open a Github issue, or (ideally :-)) go ahead and
submit a fix in form of a pull request on Github.
Thanks for reading,
Rene, on behalf of the ASPECT maintainers
--
Rene Gassmoeller
http://www.math.colostate.edu/~gassmoel/
More information about the Aspect-devel
mailing list