Skip to content

Finis Terrae II: Feel compilation

victorsndvg edited this page Mar 28, 2017 · 3 revisions

Hi all, some good news, I could compile feel++ library on ft2! 've still somes errors concerning applications while linking with metis (I guess it's due to petsc metis version) but that's encouraging. The current modules to use are

module purge
module load cmake/3.6.1
module load gcc/6.3.0
module load openmpi/2.0.2
module load boost/1.63.0
module load hdf5/1.8.18
module load paraview/5.2.0
module load openblas/0.2.19
module load petsc/3.7.5

To get feel++ sources

git clone [email protected]:feelpp/feelpp.git ${HOME}/feelpp.git

To create the makefiles using cmake

mkdir -p ${HOME}/work
cd ${HOME}/work
cmake -DCMAKE_CXX_COMPILER=`which g++` \
      -DCMAKE_C_COMPILER=`which gcc`   \
      -DGMP_LIB=/opt/cesga/easybuild/software/GMP/6.1.1-foss-2017a/lib/libgmp.a \
      -DHDF5_DIR=/opt/cesga/easybuild/software/HDF5/1.8.18-foss-2017a  \
      -DREADLINE_INCLUDE_DIR=/opt/cesga/easybuild/software/libreadline/6.3-foss-2017a/include/ \
      -DREADLINE_LIBRARY=/opt/cesga/easybuild/software/libreadline/6.3-foss-2017a/lib/libreadline.a \
      -DFFTW_LIB=/opt/cesga/easybuild/software/FFTW/3.3.6-gompi-2017a/lib/libfftw3.a \
      -DFFTW_MPI_LIB=/opt/cesga/easybuild/software/FFTW/3.3.6-gompi-2017a/lib/libfftw3f_mpi.a \
      -DFEELPP_ENABLE_GMSH=OFF \
       $HOME/feelpp.git

(Here we have to precise the dest for VTK, because there are missing binaries in /opt/cesga/vtk/7.1/ default path. Also I disable GMSH in that case which is not mandatory in the future) To compile feel++

make -j4 feelpp

(adapt the number of threads with -jX)

If you want to compile on a node on a scratch directory, I noticed that sometimes on $TMPDIR the cmake process can crash, it's kinda weird. Otherwise if you want to compile the quickstart,

make -j4 feelpp_qs_laplacian_2d

you'll get an error with libfeelpp_metis linking (I guess it's due to the metis version used with petsc, but yet to confirm) Ah and you've to use a node to compute feel++ to get enough memory.