forked from SeisSol/SeisSol
fsimonis/SeisSol
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a development version of SeisSol. ================================================================ I. Folder Structure ================================================================ It contains the following folders: - build/ Files for compiling the optimized generated kernel version - Documentation/ User Manual and tutorial can be found here - examples/ Some ready to go initial examples - Maple/ Includes precomputed basis functions and other Maple tools; folder is essential to run SeisSol - postprocessing/ - science Tool box of Matlab, Python scripts for postprocessing - visualization/ - DGVisu/ Contains source files for postprocessing the high-resolution output, readme included - tools Tool box for all kind of visualization support - prepocessing/ - seissol_kernels submodule which is used to generate, test and tune SeisSol computational backend - partitioning All kind of partitioning support files, including re-order approaches - science Tool box of Matlab, Python scripts for preprocessing - src/ SeisSol source files are here - submodules/ Libraries ================================================================ II. Compiling SeisSol ================================================================ In order to run SeisSol, you need to first install: - Python - SCons (for instructions see below) - hdf5 (for instructions see below) - netcdf (for instructions see below) - Intel Compiler (icc/icpc/ifort) Suite (GCC support can be added manual) - Some MPI implementation - Metis for partitioning A. Inital Adjustments to .bashrc -------------------------------- 1. add following lines to your .bashrc (vi ~/.bashrc), which should be on the NAS <code> # These are the versions we validated against source /opt/intel/compiler/VERSION/bin/compilervars.sh intel64 # User specific aliases and functions export PATH=$HOME/bin:$PATH export LD_LIBRARY_PATH=$HOME/lib:$HOME/lib64:$LD_LIBRARY_PATH export EDITOR=vi export SCONS_LIB_DIR=$HOME/lib64/scons-2.2.0/ </code> B. Installing SCons ------------------- (0. wget http://prdownloads.sourceforge.net/scons/scons-2.2.0.tar.gz) 1. tar -xaf scons-2.2.0.tar.gz 2. cd scons-2.2.0 3. python setup.py install --prefix=$HOME 4. cd .. C. Installing HDF5 ------------------ (0. wget http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.11/src/hdf5-1.8.11.tar.bz2) 1. tar -xaf hdf5-1.8.11.tar.bz2 2. cd hdf5-1.8.11 3. CC=mpiicc FC=mpiifort ./configure --enable-parallel --prefix=$HOME --with-zlib --disable-shared --enable-fortran NOTE: This is with Intel MPI, if you have to use a different MPI, please adjust mpiicc and mpiifort accordingly to the scripts that call icc and ifort! MPICH note: CC=mpicc FC=mpif90 ./configure --enable-parallel --prefix=$HOME --with-zlib --disable-shared --enable-fortran 4. make 5. make install 6. cd .. D. Installing netCDF -------------------- (0. wget https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-4.3.0.tar.gz) 1. tar -xaf netcdf-4.3.0.tar.gz 2. cd netcdf-4.3.0 3. CPPFLAGS=-I$HOME/include LDFLAGS=-L$HOME/lib CC=mpiicc ./configure --enable-shared=no --prefix=$HOME MPICH note: CPPFLAGS=-I$HOME/include LDFLAGS=-L$HOME/lib CC=mpicc ./configure --enable-shared=no --prefix=$HOME NOTE: Check for this line to make sure netCDF is build with parallel I/O: "checking whether parallel I/O features are to be included... yes" This line comes at the very end (last 50 lines of configure run)! 4. make 5. make install 6. cd .. E. Compiling SeisSol -------------------- 1. scons -f SConstruct_generatedKernels buildVariablesFile=build/options/supermuc_mac_cluster.py compileMode=release arch=$ARCH numberOfTemporalIntegrationPoints=1 cppCompiler=mpiicpc fortranCompiler=mpiifort order=$ORDER generatedKernels=yes netcdf=yes netcdfDir=$HOME hdf5Dir=$HOME -j 32 with: ORDER convergence order you want to use ARCH target architecture NOTE: This is with Intel MPI, if you have to use a different MPI, please adjust mpiicc and mpiifort accordingly to the scripts that call icc and ifort! you can run scons -f SConstruct_generatedKernels -h to get some help on options Please note, this builds the generated kernel version of SeisSols. For SeisSol classic, please add the generatedKernels=no switch, however this result in roughly 6X less performance, but probably greater physics support. ================================================================ III. Running SeisSol ================================================================ 1. mkdir -p launch_SeisSol 2. cp -r Maple/ launch_SeisSol/ 3. cp build/SeisSol* launch_SeisSol/ 4. cp preprocessing/matrices/*.xml launch_SeisSol/ 5. echo $PWD/launch_SeisSol/Maple/ > launch_SeisSol/DGPATH 6. copy your input files (meshes, parameter file, etc.) to launch_SeisSol 6a. you can copy our small example, if you don't have own meshes right now: cp -r examples/small_example/* launch_SeisSol/ 7. cd launch_SeisSol 8. run SeisSol version of interest 8a. To run the example: ./SeisSol_release_.... PARAMETER.PAR !!!! Further information regarding meshing and parameter files etc. can be found in the documentation folder. !!!! ================================================================ IV. Adding a new backend ================================================================ High-level description to be added please navitage to preprocessing/seissol_kernels for details
About
a scientific software for the numerical simulation of seismic wave phenomena and earthquake dynamics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C++ 87.3%
- Objective-C 6.1%
- Fortran 4.6%
- Python 1.0%
- MATLAB 0.6%
- Shell 0.2%
- Other 0.2%