Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ci/LUMI/elmer_install_gcc_spack.sh
3204 views
1
#!/bin/bash -l
2
umask 0002
3
echo "########################################################"
4
echo "# This is the automatic build of Elmer on LUMI "
5
echo "# "
6
echo "# process launched:" $(date)
7
echo "#######################################################"
8
# set compiler suite
9
export COMPILER="gcc/11.2.0"
10
export MPI="cray-mpich/8.1.23"
11
ml purge
12
module load PrgEnv-gnu/8.3.3
13
module load $COMPILER $MPI cray-libsci/22.12.1.1
14
ml use /appl/local/csc/soft/eng/elmer/spack/23.03/0.19.2/modules/tcl/linux-sles15-zen2
15
ml use /appl/lumi/spack/23.03/0.19.2/share/spack/modules/linux-sles15-zen2
16
ml load netcdf-c/4.9.0-gcc-znb netcdf-fortran/4.6.0-gcc-waz42 hdf5/1.12.2-gcc-5ut mumps/5.5.1-gcc-ypwio scotch/7.0.1-gcc-pk2f5 hypre/2.26.0-gcc-kmjvj boost/1.80.0-gcc-423 mmg/5.6.0-gcc-z2ip3
17
BRANCH="devel"
18
19
# set sources, script-dir and inquire build and installation directory (set these!)
20
BASEDIR="$PWD"
21
ELMERSRC="${BASEDIR}/elmerfem"
22
SCRIPTDIR="${BASEDIR}"
23
cd ${ELMERSRC}
24
# updating version
25
echo "checking for updates"
26
git checkout $BRANCH
27
#git fetch
28
#git pull
29
git status -uno
30
31
32
ELMERDEP="/appl/local/csc/soft/eng/elmer/spack/elmerdependencies/"
33
XIOS_DIR=$ELMERDEP
34
35
VERSION=$(git log -1 --pretty=format:%h)
36
TIMESTAMP=$(date +"%m-%d-%y")
37
ELMER_REV="Elmer_${BRANCH}_${VERSION}_${TIMESTAMP}"
38
IDIR=${ELMER_REV}
39
IPATH="/appl/local/csc/soft/eng/elmer/spack/elmer/${COMPILER/\//-}/${MPI/\//-}/${IDIR}"
40
export ELMER_HOME=${IPATH}
41
BUILDDIR="${BASEDIR}/spack_${ELMER_REV}"
42
43
echo "#######################################################"
44
echo "# installation into " ${IPATH}
45
echo "#######################################################"
46
# set up modules
47
echo "building with following modules:"
48
49
50
51
52
echo "-------------------------------------"
53
# create new build-dir
54
echo "creating" $BUILDDIR ":"
55
echo "-------------------------------------"
56
if [[ ! -e $BUILDDIR ]]; then
57
mkdir $BUILDDIR
58
59
# configure
60
cd ${BUILDDIR}
61
pwd
62
63
echo "configuring:"
64
CMAKE=cmake
65
66
TOOLCHAIN=${SCRIPTDIR}/Elmer-linux-gcc11.cmake
67
# all main definitions are in this file, so no Precache needed
68
# PRECACHE=${SCRIPTDIR}/Elmer-linux-precache.cmake
69
70
echo "-------------------------------------"
71
echo "Building Elmer from source " ${ELMERSRC}
72
echo "within build directory " ${BUILDDIR}
73
#echo "using following toolchain file " ${TOOLCHAIN}
74
echo "installation into " ${IDIR}
75
echo "Elmer version is:" ${VERSION}
76
echo "using pre-cache file" ${PRECACHE}
77
echo "-------------------------------------"
78
LOGFILE="${BASEDIR}/Logs/installation_${BRANCH}_${TIMESTAMP}.log"
79
echo "-------------------------------------" > ${LOGFILE}
80
echo "Building Elmer from source " ${ELMERSRC} >> ${LOGFILE}
81
echo "within build directory " ${BUILDDIR} >> ${LOGFILE}
82
echo "using following toolchain file " ${TOOLCHAIN} >> ${LOGFILE}
83
echo "installation into " ${IDIR} >> ${LOGFILE}
84
echo "Elmer version is:" ${VERSION} >> ${LOGFILE}
85
echo "using pre-cache file" ${PRECACHE} >> ${LOGFILE}
86
echo "-------------------------------------" >> ${LOGFILE}
87
88
if ! $CMAKE $ELMERSRC -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN -DCMAKE_INSTALL_PREFIX=$IPATH -Wno-dev \
89
-DELMER_SOLVER_HOME=${IPATH} \
90
-DWITH_MPI:BOOL=TRUE \
91
-DWITH_LUA:BOOL=TRUE \
92
-DWITH_OpenMP:BOOL=TRUE \
93
-DWITH_Zoltan:BOOL=TRUE \
94
-DBLAS_LIBRARIES="-L ${LIBSCI_BASE_DIR}/gnu/9.1/x86_64/lib -lsci_gnu" \
95
-DLAPACK_LIBRARIES="-L ${LIBSCI_BASE_DIR}/gnu/9.1/x86_64/lib -lsci_gnu" \
96
-DHDF5_INCLUDE_DIR="${HDF5_INSTALL_ROOT}/include" \
97
-DHDF5_LIBRARY="${HDF5_INSTALL_ROOT}/lib/libhdf.so" \
98
-DWITH_Mumps:BOOL=TRUE \
99
-DMUMPS_ROOT="$MUMPS_ROOT" \
100
-DSCALAPACK_LIBRARIES="-L${LIBSCI_BASE_DIR}/gnu/9.1/x86_64/lib -lsci_gnu_mpi_mp -lsci_gnu" \
101
-DWITH_Hypre:BOOL=TRUE \
102
-DHYPREROOT="$HYPRE_INSTALL_ROOT" \
103
-DWITH_Trilinos:BOOL=FALSE \
104
-DWITH_NETCDF:BOOL=TRUE \
105
-DNETCDF_INCLUDE_DIR="${NETCDF_C_INSTALL_ROOT}/include;${NETCDF_FORTRAN_INSTALL_ROOT}/include" \
106
-DNETCDF_LIBRARY="${NETCDF_C_INSTALL_ROOT}/lib/libnetcdf.so" \
107
-DNETCDFF_LIBRARY="${NETCDF_FORTRAN_INSTALL_ROOT}/lib/libnetcdff.so" \
108
-DWITH_MMG:BOOL=TRUE \
109
-DMMG_root=="$MMG_ROOT" \
110
-DWITH_XIOS:BOOL=TRUE \
111
-DXIOS_INCLUDE_DIR=${XIOS_DIR}/inc \
112
-DXIOS_ROOT=${XIOS_DIR} \
113
-DXIOS_LIBRARY="${XIOS_DIR}/lib/libxios.so" \
114
-DWITH_ELMERICE:BOOL=TRUE |& tee -a ${LOGFILE};then
115
echo "Configuration unsuccessful, exiting..."
116
exit 1
117
fi
118
echo "done configuration"
119
make -j 4 && make install
120
elif [[ ! -d $dir ]]; then
121
echo $BUILDDIR "exists - updating" 1>&2
122
cd ${BUILDDIR}
123
pwd
124
fi
125
126
127