The following instructions will install smoothG and all of its dependencies.
- blas
- lapack
- metis-5.1.0
- hypre-2.15.1
- SuiteSparse-4.5.4
- mfem-3.4
These instructions will build dependencies in the your home folder: ${HOME}
Check if you already have this, and if not, install from a package manager
Check if you already have this, and if not, install from a package manager
Download with a browser from here or type:
wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz
Then:
tar xvzf metis-5.1.0.tar.gz
cd metis-5.1.0
make config prefix=${HOME}/metis-install
make install
cd ..
git clone https://github.com/hypre-space/hypre.git hypre
cd hypre
git checkout v2.15.1
cd src
./configure --disable-fortran CC=mpicc CXX=mpicxx prefix=${HOME}/hypre-install
make
make install
cd ../..
Download with a browser from here or type:
wget http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.5.4.tar.gz
Then:
tar xvzf SuiteSparse-4.5.4.tar.gz
cd SuiteSparse-4.5.4
make install INSTALL=${HOME}/suitesparse-install BLAS=-lblas MY_METIS_LIB=${HOME}/metis-install/lib/libmetis.a \
MY_METIS_INC=${HOME}/metis-install/include/
cd ..
git clone https://github.com/mfem/mfem.git mfem
cd mfem
git checkout v3.4
make config MFEM_USE_METIS_5=YES MFEM_USE_LAPACK=YES MFEM_USE_SUITESPARSE=YES MFEM_USE_MPI=YES \
HYPRE_DIR=${HOME}/hypre-install SUITESPARSE_DIR=${HOME}/suitesparse-install METIS_DIR=${HOME}/metis-install \
PREFIX=${HOME}/mfem-install
CC=mpicc CXX=mpicxx make install
Available at this page
unzip por_perm_case2a.zip -d ${HOME}/spe10
Some of our tests require valgrind, you can probably get it from your package manager or here. Then:
tar xvf valgrind-3.12.0
cd valgrind-3.12.0
./configure --prefix=${HOME}/valgrind-install
make
make install
Clone the smoothG repo and cd
into smoothG directory.
To build smoothG, either copy, modify, and run a config file from config/ or pass the parameters directly to cmake:
mkdir -p build
cd build
cmake \
-DMFEM_DIR=${HOME}/mfem-install \
-DMETIS_DIR=${HOME}/metis-install \
-DHYPRE_DIR=${HOME}/hypre-install \
-DSuiteSparse_DIR=${HOME}/suitesparse-install \
-DCMAKE_BUILD_TYPE=DEBUG \
-DSPE10_DIR=${HOME}/spe10 \
..
make
make test
make doc
Metis gives you the option of choosing between float and double as your real type by altering the REALTYPEWIDTH constant in metis.h. To pass our tests, you need to have REALTYPEWIDTH set to 32 (resulting in float for your real type).