Newer
Older
# One click install script dumux
DUNE_VERSION=2.6
# check some prerequistes
for PRGRM in git cmake gcc g++ wget paraview pkg-config gnuplot; do
if ! [ -x "$(command -v $PRGRM)" ]; then
echo "Error: $PRGRM is not installed." >&2
exit 1
fi
done
currentver="$(gcc -dumpversion)"
requiredver="4.9.0"
if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head -n1)" != "$requiredver" ]; then
echo "gcc greater than or equal to $requiredver is required!" >&2
exit 1
fi
# make a new folder containing everything
mkdir $(pwd)/dumux
cd dumux
echo "*********************************************************************************************"
echo "Sucessfully created a folder dumux."
echo "*********************************************************************************************"
echo "*********************************************************************************************"
echo "(0/2) Downloading supplementary files. Make sure to be connected to the internet."
echo "*********************************************************************************************"
# download the install.opts and the test script
if [ ! -f "test_dumux.sh" ]; then
wget https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/scripts/test_dumux.sh
chmod +x test_dumux.sh
fi
if [ ! -f "cmake.opts" ]; then
wget https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/cmake.opts
chmod +x test_dumux.sh
fi
# get the testing script
echo "*********************************************************************************************"
echo "(1/2) Cloning repositories. This may take a while. Make sure to be connected to the internet."
echo "*********************************************************************************************"
# the core modules
for MOD in common geometry grid localfunctions istl; do
if [ ! -d "dune-$MOD" ]; then
git clone -b releases/$DUNE_VERSION https://gitlab.dune-project.org/core/dune-$MOD.git
else
echo "Skip cloning dune-$MOD because the folder already exists."
cd dune-$MOD
git checkout releases/$DUNE_VERSION
cd ..
fi
done
# extension modules
for MOD in dune-foamgrid dune-alugrid; do
if [ ! -d "$MOD" ]; then
git clone -b releases/$DUNE_VERSION https://gitlab.dune-project.org/extensions/$MOD.git
else
echo "Skip cloning $MOD because the folder already exists."
cd $MOD
git checkout releases/$DUNE_VERSION
cd ..
fi
done
# dune-subgrid
if [ ! -d "dune-subgrid" ]; then
git clone -b releases/$DUNE_VERSION-1 https://git.imp.fu-berlin.de/agnumpde/dune-subgrid.git
else
echo "Skip cloning dune-subgrid because the folder already exists."
cd dune-subgrid
cd ..
fi
# dumux
if [ ! -d "dumux" ]; then
git clone -b master https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git
else
echo "Skip cloning dumux because the folder already exists."
cd dumux

Timo Koch
committed
git checkout dumux-course-2018
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
cd ..
fi
# dumux-course
if [ ! -d "dumux-course" ]; then
git clone https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course.git
else
echo "Skip cloning dumux-course because the folder already exists."
fi
if [ $? -ne 0 ]; then
echo "*********************************************************************************************"
echo "Failed to clone the repositories."
echo "*********************************************************************************************"
exit $?
fi
echo "*********************************************************************************************"
echo "(2/2) Configure dune modules and dumux. Build the dune libaries. This may take several minutes."
echo "*********************************************************************************************"
# run build
./dune-common/bin/dunecontrol --opts=cmake.opts all
#
if [ $? -ne 0 ]; then
echo "*********************************************************************************************"
echo "Failed to build the dune libaries."
echo "*********************************************************************************************"
exit $?
fi
# echo result
echo "*********************************************************************************************"
echo "Succesfully configured and built dune and dumux."
echo "Please change to the dumux folder and run the test_dumux.sh script to confirm everything works."
echo "*********************************************************************************************"