                         ==================
                         INSTALLATION GUIDE
                         ==================

CONTENTS:
=========
* PREREQUISITES
* HOW TO INSTALL THE SOFTWARE?


PREREQUISITES - WHICH SOFTWARE WILL BE NEEDED?
==============================================
Minimum Requirements:
---------------------
* C++ compiler supporting C++11 (including C++11 aliases like GCC >= 4.8.1)
* MPI implementation (like Open MPI >= 1.6)
* Boost.ProgramOptions >= 1.42.0
* Boost.Regex >= 1.42.0
* Boost.Serialization >= 1.42.0
* Boost.MPI >= 1.42.0
* bash >= 3.0

Maximum Requirements:
---------------------
* Software required in 'Minimum Requirements'
* C++ compiler additionally supporting OpenMP >= 3.1 (like GCC >= 4.8.1)
* HDF5 >= 1.8.5
* NetCDF >= 4.0 (and >= 4.3 for parallel writing).
* ADOL-C >= 2.3


HOW TO INSTALL THE SOFTWARE?
============================
The build and installation process is based on the GNU autotools.
Thus, building and installing this software means combining configure and make.

1) The software can be configured for the underlying system by calling
   the usual configure script. In order to install the software to a desired
   directory, the configure option '--prefix=<installdir>' can be used.
   Please make sure that the installation directory is writable.
   This can be either ensured by executing the following command as
   super user (su) or by using the configure option '--prefix=<installdir>'
   with a writable directory <installdir>.

       ./configure

   The following options can be set:

       --enable-netcdf       Enables writing data fields to files [default=no].
       --enable-openmp       Enables OpenMP support [default=no].
       --enable-adolc        Enables ADOL-C support [default=no].
       --enable-doc          Enables generating the documentation [default=no].

       --with-mpi            Sets the base directory of OpenMPI [default=/usr].
       --with-boost          Sets the base directory of Boost [default=/usr].
       --with-boost-libdir   Sets the lib directory of Boost [default=/usr/lib].
       --with-netcdf         Sets the base directory of NetCDF [default=/usr].
       --with-adolc          Sets the base directory of ADOL-C [default=/usr].

   Compiler and compiler options can be set via the environment variables
   CXX and CXXFLAGS. Thus, an example call would look as follows:

       CXX=g++  CXXFLAGS='-O3 -Wall' \
       ./configure --enable-openmp --enable-netcdf \
                   --with-boost=/opt/boost --with-boost-libdir=/opt/boost/lib

2) Examples can be compiled in order to see how new problems can be implemented.
   The build process can be done in parallel if the underlying system
   has more than one core. Then, please use the make option '-j'.

       make

   The examples can be setup and executed via the bash script located in
   the corresponding directories. The bash scripts are based on scafesrun.sh
   which can be configured via SCAFESRUN environment variables.

       cd examples/HeatEqnFDM
       ./SETUP_AND_RUN.sh

3) If everything went fine, the software can be installed.

       make install

