Running ASPECT models#

Although it is possible to use the downloaded ASPECT docker image in a number of different ways, we recommend the following workflow:

  1. Create your ASPECT input file in a folder of your choice (also containing any input data that is required by your model) and navigate in a terminal into that directory.

  2. Run the docker image and mount the current directory as a read-only volume into the docker container.1 This is accomplished by specifying the -v flag followed by the absolute path on the host machine, colon, absolute path within the docker container, colon, and specifying read-only permissions as in the example below.

    Make sure your parameter file specifies a model output directory other than the input directory, e.g., /home/dealii/aspect/model_output. When you have started the container run the aspect model inside the container. Note that there are two ASPECT versions in the container: aspect and aspect-release. For a discussion of the different versions see Debug or optimized mode, in essence: You should run aspect first to check your model for errors, then run aspect-release for a faster model run.

    To sum up, the steps you will want to execute are:

    docker run -it -v "$(pwd):/home/dealii/aspect/model_input:ro" \
      geodynamics/aspect:latest bash

    Within the container, simply run your model by executing:

    aspect model_input/your_input_file.prm
  3. After the model has finished (or during the model run if you want to check intermediate results), copy the model output out of the container into your current directory. For this you need to find the name or ID of the docker container by running docker ps -a in a separate terminal first. Look for the most recently started container to identify your current ASPECT container.

    Commands that copy the model output to the current directory could be:

    docker ps -a # Find the name of the running / recently closed container in the output
    docker cp CONTAINER_NAME:/home/dealii/aspect/model_output .
  4. The output data is saved inside your container even after the computation finishes and even when you stop the container. After you have copied the data out of the container, you should therefore delete the container to avoid duplication of output data. Even after deleting you will always be able to start a new container from the downloaded image following step 2. Deleting the finished container can be achieved by the docker container prune command that removes any container that is not longer running.


    If you own other finished containers that you want to keep, use docker container rm CONTAINER_NAME to only remove the container named CONTAINER_NAME.

    To remove all finished containers use the following command:

    docker container prune

    Alternatively only remove a particular container:

    docker container rm CONTAINER_NAME

You are all set. Repeat steps 1-4 of this process as necessary when updating your model parameters.


Note that it is possible to mount a directory as writeable into the container. However, this often causes file permission conflicts between your host operating system and the container. Therefore, we recommend this slightly more cumbersome, but also more reliable workflow.