... | ... | @@ -2,6 +2,8 @@ |
|
|
|
|
|
At [Misc/ConvergenceAnalysis](https://gitlab.lrz.de/exahype/ExaHyPE-Engine/tree/master/Miscellaneous/ConvergenceAnalysis) we do have some Python code to manage convergence studies. This wiki page shall document how to use this.
|
|
|
|
|
|
## Overview about the simulation starter script (Python)
|
|
|
|
|
|
Currently, we do have the scripts for every convergence test by its own. We currently have two tests installed: The `AlfenWave` (testing MHD PDEs) and the `ShuVortex` (testing EulerFlow PDEs). In each of these directories you find a Python script like `runShuVortex.py`. You should have a look into it and especially into its parameters:
|
|
|
|
|
|
```
|
... | ... | @@ -28,4 +30,37 @@ optional arguments: |
|
|
-a, --all Start all sensible simulations
|
|
|
```
|
|
|
|
|
|
This allows you to start (or submit, if you use a queing system inbetween) a number of different ExaHyPE simulations in parallel. It will also do the simulation directory setup for you by making use of an intermediate _runner_ script which is [RunScripts/runTemplatedSpecfile.sh](https://gitlab.lrz.de/exahype/ExaHyPE-Engine/blob/master/Miscellaneous/RunScripts/runTemplatedSpecfile.sh). |
|
|
This allows you to start (or submit, if you use a queing system inbetween) a number of different ExaHyPE simulations in parallel. It will also do the simulation directory setup for you by making use of an intermediate _runner_ script which is [RunScripts/runTemplatedSpecfile.sh](https://gitlab.lrz.de/exahype/ExaHyPE-Engine/blob/master/Miscellaneous/RunScripts/runTemplatedSpecfile.sh). This shell script does the specfile templating and calls the binary.
|
|
|
|
|
|
## Compiling for all polynomial orders
|
|
|
|
|
|
The infrastructure presented here does not compile ExaHyPE for you, especially not for different polynomial orders for ADERDG. While you can use the same binary to run different mesh resolutions, unfortunately the polynomial order is a compile-time constant, thus you need as many binaries as you have polynomial orders you want to test.
|
|
|
|
|
|
Actually there is the convenient [BuildScripts/compile-for-polyorder.sh](https://gitlab.lrz.de/exahype/ExaHyPE-Engine/blob/master/Miscellaneous/BuildScripts/compile-for-polyorder.sh) which allows you to do exactly this. You can use it directly inside the application (PDE) folder or make use of [exa.sh](https://gitlab.lrz.de/exahype/ExaHyPE-Engine/blob/master/Miscellaneous/BuildScripts/exa.sh) to trigger the compilation from anywhere. For instance, you just type
|
|
|
|
|
|
`for p in 2 3 4 5 6 7 8 9; do exa polycompile MHD $p; done;`
|
|
|
|
|
|
to serially compile the application `MHD` for all those polynomial orders _one after each other_. Note that it is not possible to compile in parallel due to our dumb in place build system. The output should be like
|
|
|
|
|
|
```
|
|
|
koeppel@otto MHD$ ls -lh ExaHyPE-MHDSolver-p*
|
|
|
-rwxrwxr-x 1 koeppel koeppel 5.7M Nov 23 23:23 ExaHyPE-MHDSolver-p2
|
|
|
-rwxrwxr-x 1 koeppel koeppel 5.7M Nov 23 22:58 ExaHyPE-MHDSolver-p3
|
|
|
-rwxrwxr-x 1 koeppel koeppel 5.7M Nov 23 22:58 ExaHyPE-MHDSolver-p4
|
|
|
-rwxrwxr-x 1 koeppel koeppel 5.7M Nov 23 22:58 ExaHyPE-MHDSolver-p5
|
|
|
-rwxrwxr-x 1 koeppel koeppel 5.7M Nov 23 22:58 ExaHyPE-MHDSolver-p6
|
|
|
-rwxrwxr-x 1 koeppel koeppel 5.7M Nov 23 22:58 ExaHyPE-MHDSolver-p7
|
|
|
-rwxrwxr-x 1 koeppel koeppel 5.7M Nov 23 22:58 ExaHyPE-MHDSolver-p8
|
|
|
-rwxrwxr-x 1 koeppel koeppel 5.7M Nov 23 22:58 ExaHyPE-MHDSolver-p9
|
|
|
```
|
|
|
|
|
|
After having these binaries, you are ready to invoke the respective convergence tests.
|
|
|
|
|
|
## Watching progress
|
|
|
|
|
|
There is the convenient [showSimulationProgress.sh](https://gitlab.lrz.de/exahype/ExaHyPE-Engine/blob/master/Miscellaneous/ConvergenceAnalysis/showSimulationProgress.sh) which allows you look what your simulations are doing.
|
|
|
|
|
|
## Generating a report
|
|
|
|
|
|
After or during your runs, you can use the [finish-convergence-table.py](https://gitlab.lrz.de/exahype/ExaHyPE-Engine/blob/master/Miscellaneous/ConvergenceAnalysis/reporting/finish-convergence-table.py) command to generate convergence tables out of your simulation. Consider that currently it makes use of the `SIMBASE` environment variable to determine where your simulations are stored. Probably you have to play around a bit with this.
|
|
|
|