After compiling ASPECT as described above, you should have an executable file in the main directory. It can be called as follows:
or, if you want to run the program in parallel, using something like
to run with 32 processors. In either case, the argument denotes the (path and) name of a file that contains input parameters.7 When you download ASPECT, there are a number of sample input files in the cookbooks directory, corresponding to the examples discussed in Section 5, and input files for some of the benchmarks discussed in Section 5.4 are located in the benchmarks directory. A full description of all parameters one can specify in these files is given in Section A.
Running ASPECT with an input file will produce output that will look something like this (numbers will all be different, of course):
The output starts with a header that lists the used ASPECT, deal.II, Trilinos and p4est versions as well as the mode you compiled ASPECT in (see 4.3), and the number of parallel processes used8. With this information we strive to make ASPECT models as reproducible as possible.
The following output depends on the model, and in this case was produced by a parameter file that, among other settings, contained the following values (we will discuss many such input files in Section 5:
In other words, these run-time parameters specify that we should start with a geometry that represents a spherical shell (see Sections ?? and ?? for details). The coarsest mesh is refined 4 times globally, i.e., every cell is refined into four children (or eight, in 3d) 4 times. This yields the initial number of 1,536 cells on a mesh hierarchy that is 5 levels deep. We then solve the problem there once and, based on the number of adaptive refinement steps at the initial time set in the parameter file, use the solution so computed to refine the mesh once adaptively (yielding 2,379 cells on 6 levels) on which we start the computation over at time .
Within each time step, the output indicates the number of iterations performed by the linear solvers, and we generate a number of lines of output by the postprocessors that were selected (see Section ??). Here, we have selected to run all postprocessors that are currently implemented in ASPECT which includes the ones that evaluate properties of the velocity, temperature, and heat flux as well as a postprocessor that generates graphical output for visualization.
While the screen output is useful to monitor the progress of a simulation, its lack of a structured output makes it not useful for later plotting things like the evolution of heat flux through the core-mantle boundary. To this end, ASPECT creates additional files in the output directory selected in the input parameter file (here, the output/ directory relative to the directory in which ASPECT runs). In a simple case, this will look as follows:
The purpose of these files is as follows:
There is a second file, output/parameters.prm, that lists these parameters in LATEX format.
At the current time, the default is that ASPECT generates this output in VTK format9 as that is widely used by a number of excellent visualization packages and also supports parallel visualization.10 If the program has been run with multiple MPI processes, then the list of output files will be output/solution/solution-XXXXX.YYYY denoting that this the XXXXXth time we create output files and that the file was generated by the YYYYth processor.
VTK files can be visualized by many of the large visualization packages. In particular, the Visit and ParaView programs, both widely used, can read the files so created. However, while VTK has become a de-facto standard for data visualization in scientific computing, there doesn’t appear to be an agreed upon way to describe which files jointly make up for the simulation data of a single time step (i.e., all files with the same XXXXX but different YYYY in the example above). Visit and Paraview both have their method of doing things, through .pvtu and .visit files. To make it easy for you to view data, ASPECT simply creates both kinds of files in each time step in which graphical data is produced, and these are then also placed into the subdirectories as output/solution/solution-XXXXX.pvtu and output/solution/solution-XXXXX.visit.
The final two files of this kind, output/solution.pvd and output/solution.visit, are files that describes to Paraview and Visit, respectively, which output/solution/solution-XXXXX.pvtu and output/solution/solution-XXXXX.YYYY.vtu jointly form a complete simulation. In the former case, the file lists the .pvtu files of all timesteps together with the simulation time to which they correspond. In the latter case, it actually lists all .vtu that belong to one simulation, grouped by the timestep they correspond to. To visualize an entire simulation, not just a single time step, it is therefore simplest to just load one of these files, depending on whether you use Paraview or Visit.11 Because loading an entire simulation is the most common use case, these are the two files you will most often load, and so they are placed in the output directory, not the subdirectory where the actual .vtu data files are located.
For more on visualization, see also Section 4.4.
The actual columns you have in your statistics file may differ from the ones above, but the format of this file should be obvious. Since the hash mark is a comment marker in many programs (for example, gnuplot ignores lines in text files that start with a hash mark), it is simple to plot these columns as time series. Alternatively, the data can be imported into a spreadsheet and plotted there.
A simple way to plot the contents of this file is shown in Section 4.4.2.
By default, the data is written in text format that can be easily visualized, see for example Figure 2. The plot shows how an initially linear temperature profile forms upper and lower boundary layers.
There are other parts of ASPECT that may also create files in the output directory. For example, if your simulation includes advecting along particles (see Section 2.15), then visualization information for these particles will also appear in this file. See Section 5.2.5 for an example of how this looks like.
7As a special case, if you call ASPECT with an argument that consists of two dashes, “–”, then the arguments will be read from the standard input stream of the program. In other words, you could type the input parameters into your shell window in this case (though that would be cumbersome, ASPECT would seem to hang until you finish typing all of your input into the window and then terminating the input stream by typing Ctrl-D). A more common case would be to use Unix pipes so that the default input of ASPECT is the output of another program, as in a command like cat parameter-file.prm.in | mypreprocessor | ./aspect –, where mypreprocessor would be a program of your choice that somehow transforms the file parameter-file.prm.in into a valid input file, for example to systematically vary one of the input parameters.
If you want to run ASPECT in parallel, you can do something like cat parameter-file.prm.in | mypreprocessor | mpirun -np 4 ./aspect –. In cases like this, mpirun only forwards the output of mypreprocessor to the first of the four MPI processes, which then sends the text to all other processors.
8If you used the git version control system to download ASPECT and/or deal.II, as in this example, you will also get the current branch, and unique revision identifier for the current version. This is very important if you modify either software between releases, or you use a development version that is not an official release. Note that this revision can not track changes you made to the software that are not part of a git commit.
9The output is in fact in the VTU version of the VTK file format. This is the XML-based version of this file format in which contents are compressed. Given that typical file sizes for 3d simulation are substantial, the compression saves a significant amount of disk space.
10The underlying deal.II package actually supports output in around a dozen different formats, but most of them are not very useful for large-scale, 3d, parallel simulations. If you need a different format than VTK, you can select this using the run-time parameters discussed in Section ??.
11At the time of writing this, current versions of Visit (starting with version 2.5.1) actually have a bug that prevents them from successfully reading the output/solution.visit or output/solution/solution-XXXXX.visit files – Visit believes that each of these files corresponds to an individual time step, rather than that a whole group of files together form one time step. This bug is not fixed in Visit 2.6.3, but may be fixed in later versions.