Setup
1. Cloning the repository from GitHub
git clone https://github.com/xLPMG/tsunami_lab.git
2. Initializing & updating submodules
git submodule init
git submodule update
3. Installing requirements
To build this project, you will need SCons and GCC.
On MacOS, you can use homebrew for both:
brew install scons
brew install gcc
For I/O, the project requires the NetCdf
library to be installed:
Ubuntu:
sudo apt-get install libnetcdf-dev
The program comes with a gui, for which you will need the GLFW library. On MacOS, you can install it easily using Homebrew.
You may use the tsunami solver without any gui and thus without the GLFW
library, but you’ll have to specify this by later compiling with
scons gui=no
4. Building the project
Navigate to the in step 1 created tsunami_lab
folder and run
scons
If you wish to build the project for benchmarking without file output, run
scons mode=benchmark
For further run configurations view the SConstruct file at the root of the tsunami_lab directory or checkout the options inside the GUI.
Additional build parameters
You may specify a compiler of your choice, for example icpc
by running
CXX=icpc scons
If you wish to specify an optimization flag, you can do that by adding opt=<flag>
, for example:
scons opt=-O2
Currently we support -O0
, -O1
, -O2
, -O3
and -Ofast
. The default is -O3
.
Generating a report is possible for icpc
. To enable it, specify it using
scons report=-qopt-report=<N>
Replace <N> with a number from 1 to 5 for the level of detail.
5. Building the documentation
If you wish to build the documentation, you will need to install some requirements first.
For the automatic code documentation, doxygen is required.
Furthermore, you will need Python. Using Python, you can install
other requirements such as Sphinx and Breathe,
which can be found in the requirements.txt
file located in the docs
folder.
They can be installed easily by running
pip install -r requirements.txt
After everything has been installed, you can now run
make html
from inside the docs
directory to build the documentation.
To access it, open the index.html
file located in docs/build/html
.