AD Installation

Automatic Differentiation is only supported for Linux and Mac. Please follow the steps of a regular installation first and make sure it is working before adding AD.

External packages installation

The following additional external packages need to be installed:

  • adjoinablempi
  • adolc

NOTE: after the installation of each package, one should source the environment:

$ source $ISSM_DIR/etc/environment.sh

ISSM compilation

The configuration script of ISSM needs to include the following additional options:

--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \ --with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \

As of today, AD is not supported with PETSc, but you will need some of PETSc's packages to solve linear systems so you should take out the -with-petsc-dir line of the configuration script but keep the other PETSc related lines such as MUMPS or scalapack. You will also need to deactivate the kriging capability of ISSM with the -without-kriging option. Here is an example of configuration script:

./configure \ --prefix=$ISSM_DIR \ --disable-static \ --without-kriging \ --without-kml \ --without-Gia \ --without-Love \ --with-matlab-dir="/Applications/MATLAB_R2015b.app/" \ --with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \ --with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include" \ --with-mpi-libflags="-L$ISSM_DIR/externalpackages/petsc/install/lib/ -lmpi -lmpicxx -lmpifort" \ --with-metis-dir="$ISSM_DIR/externalpackages/petsc/install" \ --with-blas-lapack-dir="$ISSM_DIR/externalpackages/petsc/install" \ --with-scalapack-dir="$ISSM_DIR/externalpackages/petsc/install/" \ --with-mumps-dir="$ISSM_DIR/externalpackages/petsc/install/" \ --with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \ --with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \ --with-numthreads=2

You can now reconfigure and recompile ISSM, it is now fully adjoinable.