SPGM embodies the implementation of a multi-process numerical model, where physical processes that contribute to mass redistribution on earth's surface are integrated separately to record geomorphological evolution. We leverage recent advances in flow routing algorithms and present a self-contained, extensible software framework that comprises a collection of modules which describe physical processes influencing earth's surface topography through time. The modular structure of the code, with clearly defined interfaces between mesh generation, implementation of optimized numerical algorithms and output generation is particularly geared toward ease of adaptability for studying a wide range of geomorphological scenarios.
SPGM uses scons for its build-system. Apart from scons, SPGM is fully self-contained and has no other dependencies. The code has been tested to run on Linux/Unix, Cygwin and Mac OS systems with a gcc compiler (version 4.7+) installed. It should, nonetheless, work with earlier but relatively recent versions of the gcc compiler.
- Install scons using
apt-get
:
apt-get install scons
- The Cygwin
setup
program can be used to install scons.
- Install scons using MacPorts:
sudo port install scons
Alternatively, Install scons using homebrew:
brew install scons
- Set
gcc
compiler version :Note,export CXX=g++-7
g++-7
serves only as an example.CXX
should be set to the gcc compiler installed on the system.
The code can be compiled from the base directory as follows:
scons
Builds can be parallelized by passing in an optional falg, -j4
, which in this case will spawn 4 threads to speed up the build process, especially on multicore machines. The compiled executable can be found in build/release/program/spgm
, relative to the base directory.
A debug executable can be built as follows:
scons debug=1
The test-suite in SPGM can be run as follows:
scons test=1
A build can be cleaned as follows:
scons -c
The simple models in the 'example' folder should be run from within the model folders by invoking the executable with the corresponding parameter file. For instance, the first example can be run as follows:
cd <base-path>/examples/ex1
../../build/release/src/program/spgm ex1.cfg
Please see COPYING.txt for details.