This workflow automates the computation of the normal mode at planetary scales using the NormalModes software package.
The workflow consists of following actions:
-
build
. Invokes thebuild.sh
script script, which builds bothpEVSL
andNormalModes
. These can be built against Intel's MKL or OpenBlas libraries by choosing the corresponding Makefile available in themakeconf/
folder. The number of jobs used during the build (passed to Make via the-j
flag) is controlled by aNUM_BUILD_JOBS
environment variable. -
test
. Executes short-running tests forpEVSL
. -
run
. Invokes therun.sh
script, which obtains the normal mode for one of the input models available in theNormalModes/demos/
folder. Theglobal_conf
file in this directory can be modified to run other demos. The variableMPI_NUM_PROCESSES
is used to specify the number of MPI processes to use for the job. -
validate
. Checks the relative error, if its small (of the order ~10^-10) the check passes, otherwise fails. -
generate vtk
. Creates the.vtk
file, by running the visualCmain.m and reading the parameters likeJOB
,pOrder
,nporc
etc from the file.
This workflow runs in a container runtime (Docker and Singularity) and can be executed with the Popper CLI tool. For a version of this workflow in a non-containerized environment, see here. The following executes this workflow:
git clone --recursive https://github.com/ivotron/scc19-workflows
cd scc19-workflows/workflows/containerized
popper run
NOTE: The
--recursive
flag is required in order to download the https://github.com/js1019/pEVSL and https://github.com/js1019/NormalModes projects, which are submodules of this repository (insubmodules/
folder).
To run in Singularity:
popper run --runtime singularity
Sample output (trimmed to only show end of execution):
Row 261 1.9575838917916459 510.83379067078789
Row 262 1.9654674111834070 508.78482864180404
Row 263 1.9685489784113608 507.98837670120372
Row 264 1.9764339222924401 505.96176716098506
Row 265 1.9781774331264217 505.51582646433508
Row 266 1.9809330184699281 504.81262651293457
Row 267 1.9843952373083178 503.93186861122706
Row 268 1.9860365613548143 503.51540321988341
Row 269 1.9944091633034535 501.40162730883316
Row 270 1.9972354448512162 500.69209545522301
Row 271 1.9998649254669882 500.03377091404815
================================================================
save eigenvectors
Time elapsed = 41.091000000014901 seconds.
save the results
Time elapsed = 41.091999999945983 seconds.
Time elapsed = 41.091999999945983 seconds.
To visualize the .vtk
file you can run ParaView Web
on your system by using the Docker ParaView Web.