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
    1 $ git clone https://github.com/spack/spack.git
    2 $ . spack/share/spack/setup-env.sh
  2. Install MAST and all dependencies
    1 $ spack install \
    2  libmesh +exodusii+hdf5+metis+boost+eigen+slepc \
    3  ^eigen ~fftw~metis~mpfr \
    4  ^petsc ~complex~debug+double+hdf5+hypre~int64+metis+mpi+mumps+shared+suite-sparse+superlu-dist+trilinos \
    5  ^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.
    1 $ spack view -v -d true symlink {SPACK_CODES} \
    2  libmesh +exodusii+hdf5+metis+boost+eigen+slepc \
    3  ^eigen ~fftw~metis~mpfr \
    4  ^petsc ~complex~debug+double+hdf5+hypre~int64+metis+mpi+mumps+shared+suite-sparse+superlu-dist+trilinos \
    5  ^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.
    1 $ cd {CODES}
    2 $ mkdir mast
    3 $ cd mast
    4 $ git clone https://github.com/MASTmultiphysics/mast-multiphysics.git
  5. Configure MAST
    1 $ mkdir dbg
    2 $ cd dbg
    3 $ export SPACK_VIEW_DIR={SPACK_CODES} \
    4  cmake ../mast-multiphysics \
    5  -DMPI_C_COMPILER=${SPACK_VIEW_DIR}/bin/mpicc \
    6  -DMPI_CXX_COMPILER=${SPACK_VIEW_DIR}/bin/mpicxx \
    7  -DCMAKE_C_COMPILER=${SPACK_VIEW_DIR}/bin/mpicc \
    8  -DCMAKE_CXX_COMPILER=${SPACK_VIEW_DIR}/bin/mpicxx \
    9  -DCMAKE_Fortran_COMPILER=${SPACK_VIEW_DIR}/bin/mpif90 \
    10  -DlibMesh_DIR=${SPACK_VIEW_DIR} \
    11  -DPETSc_DIR=${SPACK_VIEW_DIR} \
    12  -DSLEPc_DIR=${SPACK_VIEW_DIR} \
    13  -DBOOST_ROOT=${SPACK_VIEW_DIR}/include \
    14  -DCMAKE_BUILD_TYPE=Debug
  6. Build MAST:
    1 $ make -j N
    Replace N with the number of cores on your machine to enable parallel build.
  7. Test MAST by running example_2:
    1 $ ./examples/structural/example_1/structural_example_1 -ksp_type preonly -pc_type lu