MAST
Multidisciplinary-design Adaptation and Sensitivity Toolkit (MAST)
Installation using Spack

Spack is a python-based package manager that can install all dependencies.

MAST is installed from source.

  1. Install Spack using instructions
    $ git clone https://github.com/spack/spack.git
    $ . spack/share/spack/setup-env.sh
  2. Install MAST and all dependencies
    $ spack install \
    libmesh +exodusii+hdf5+metis+boost+eigen+slepc \
    ^eigen ~fftw~metis~mpfr \
    ^petsc ~complex~debug+double+hdf5+hypre~int64+metis+mpi+mumps+shared+suite-sparse+superlu-dist+trilinos \
    ^intel-mkl %gcc@8.2.0
  3. Create symbolic link to all packages on in a directory for MAST installation. Replace {SPACK_CODES} with the directory where you want these links created.
    $ spack view -v -d true symlink {SPACK_CODES} \
    libmesh +exodusii+hdf5+metis+boost+eigen+slepc \
    ^eigen ~fftw~metis~mpfr \
    ^petsc ~complex~debug+double+hdf5+hypre~int64+metis+mpi+mumps+shared+suite-sparse+superlu-dist+trilinos \
    ^intel-mkl %gcc@8.2.0
  4. Download MAST in directory where it will be built. The directory is called {CODES} in the following and should be replaced.
    $ cd {CODES}
    $ mkdir mast
    $ cd mast
    $ git clone https://github.com/MASTmultiphysics/mast-multiphysics.git
  5. Configure MAST
    $ mkdir dbg
    $ cd dbg
    $ export SPACK_VIEW_DIR={SPACK_CODES} \
    cmake ../mast-multiphysics \
    -DMPI_C_COMPILER=${SPACK_VIEW_DIR}/bin/mpicc \
    -DMPI_CXX_COMPILER=${SPACK_VIEW_DIR}/bin/mpicxx \
    -DCMAKE_C_COMPILER=${SPACK_VIEW_DIR}/bin/mpicc \
    -DCMAKE_CXX_COMPILER=${SPACK_VIEW_DIR}/bin/mpicxx \
    -DCMAKE_Fortran_COMPILER=${SPACK_VIEW_DIR}/bin/mpif90 \
    -DlibMesh_DIR=${SPACK_VIEW_DIR} \
    -DPETSc_DIR=${SPACK_VIEW_DIR} \
    -DSLEPc_DIR=${SPACK_VIEW_DIR} \
    -DBOOST_ROOT=${SPACK_VIEW_DIR}/include \
    -DCMAKE_BUILD_TYPE=Debug
  6. Build MAST:
    $ make -j N
    Replace N with the number of cores on your machine to enable parallel build.
  7. Test MAST by running example_2:
    $ ./examples/structural/example_1/structural_example_1 -ksp_type preonly -pc_type lu