STOMP

Installation

Hardware Requirements

The preferred operating systems for running STOMP are Linux or Mac OSX, although users can compile and run STOMP within the Windows operating system using cygwin. Specific memory requirements are strictly problem specific, however, it is recommended that users have at minimum of 4 GB RAM. 

Software Requirements

To use the splib or PETSC solver, the BLAS/LAPACK libraries must be installed. Users must also have a Fortran compiler available on the machine where they wish to run simulations with which to compile the source code because executable code is operating system and processor specific. One option for a free Fortran compiler is GNU Fortran (GFortran). 

Building an Executable

STOMP is written in Fortran 90 with dynamic memory allocation. Once a license has been acquired, STOMP is distributed as assembled source coding for a particular operational mode, with the associated files including modules, example input files, and required external packages (e.g., SPLIB).  Distributing an open source allows users to read and modify the simulator, which will hopefully result in an open exchange of scientific ideas. However, this also means that the user is responsible for compiling and linking the source code to generate an executable. 

When requesting STOMP, the user must specify the linear system solver they wish to use. For small to moderately sized problems (number of unknowns on the order of less than 35,000), users should request the banded matrix solution algorithm from LINPACK (bd) that is included with the source code. For solving larger problems, a package of sparse iterative solvers, SPLIB, is more appropriate, and this solver is also included with the source code. Users may request a version of the source code that is compatible with the PETSc conjugate gradient solver with multi-threading capabilities, although they must independently download and install this solver prior to compiling STOMP.

Users will be provided with a zip file containing the Fortran source files (*.f) configured for the requested solver, pre- and/or post-processing utilities, and example input files that are distributed with STOMP. In general, the modules must be compiled first, then the rest of the Fortran source, and then the object files must be linked with the solver libraries and blas libraries (for splib and PETSc). Some examples of the steps to build an executable are:

splib solver - Intel Compiler
ifort -O -c allo.f 
ifort -O -c *.f
ifort -O -o stomp-w_sp.x *.o path_to_splib/splib.a -L path_to_blas_libraries -llapack -lblas
bd solver - Intel Compiler
ifort -O -c allo.f 
ifort -O -c *.f
ifort -O -o stomp-w_bd.x *.o
splib solver - gfortran Compiler
gfortran -O -c allo.f 
gfortran -O -c *.f
gfortran -O -o stomp-w_sp.x *.o path_to_splib/splib.a -L path_to_blas_libraries -llapack -lblas
bd solver - gfortran Compiler
gfortran -O -c allo.f 
gfortran -O -c *.f
gfortran -O -o stomp-w_sp.x *.o

STOMP User Guide Home