\section{Prerequisites} \label{sec:prerequisites}
For this quick start guide the following software packages are required:
\begin{itemize}
\item GitLab client
\item A standard-compliant C++17 compiler supporting the C++11/C++14/C++17 features of GCC 7
(\Dumux $> 3.1$\footnote{\Dumux $\leq 3.1$ only requires the C++11/C++14 feature set of GCC 4.9,
e.g. GCC 4.9 or newer and Clang 3.8 or newer}), e.g. GCC 7 or newer and Clang 5 or newer.
\item CMake 3.13 or newer
\item pkg-config
\item ParaView (to visualize the results)
\end{itemize}

\section{Obtaining code and configuring all modules with a script}
To easily install Dumux, we've provided a python-script \texttt{installdumux.py} that facilitates
setting up a {\Dune}/{\Dumux} directory tree and configures all modules with CMake.
First, you will have to download this script. To do this, first navigate to the directory where you
want to install \Dumux and \Dune (a single root folder \texttt{DUMUX} will be produced, so you do
not need to provide one). Then use \texttt{wget} to download the script with the following command:
\begin{lstlisting}[style=Bash,escapechar=\%]
$ wget https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/raw/releases/%\DumuxVersion%/bin/installdumux.py
\end{lstlisting}

After the download is complete, execute the script. This can be done with
\begin{lstlisting}[style=Bash]
$ python installdumux.py
\end{lstlisting}

This script will download each of the \Dune-modules that \Dumux depends on at their 2.7 release,
as well as \Dumux's \DumuxVersion release. After these individual modules are downloaded, \Dune and \Dumux
are automatically configured using the command-line script \texttt{dunecontrol}, located in
\texttt{dune-common/bin/dunecontrol}, optimized using configure options defined in the \texttt{cmake.opts}
file located in \texttt{dumux/cmake.opts}. The commands beneath the \texttt{\# run dunecontrol} in
the \texttt{installdumux.sh} script execute this configuration script, so no further steps are required.
More details about the build-system can be found in section \ref{buildIt}.

\subsection{A first test run of \Dumux}
When the \texttt{installdumux.sh} script from the subsection above has run successfully,
you run a simple test to ensure that the installation ran correctly. To do this, you can
begin by compiling an example problem and running the simulation. You can then visualize
the results using ParaView. We recommend looking at a basic single phase groundwater flow problem.
\begin{enumerate}
\item Navigate to this test in the build directory using:
\begin{lstlisting}[style=Bash]
cd DUMUX/dumux/build-cmake/test/porousmediumflow/1p/implicit/isothermal
\end{lstlisting}
\item Build the executable with the following command:
\begin{lstlisting}[style=Bash]
make test_1p_tpfa
\end{lstlisting}
\item Run the simulation with the parameters listed in \texttt{params.input} like this:
\begin{lstlisting}[style=Bash]
./test_1p_tpfa params.input
\end{lstlisting}
\item Visualize the results in paraview with:
\begin{lstlisting}[style=Bash]
paraview *pvd
\end{lstlisting}
\item Advance ParaView to the next frame (green arrow button) and rescale to data range
(green double arrow on top right) to admire the colorful pressure distribution.
\end{enumerate}

These commands are compiled into \texttt{test\_dumux.sh}, which you can download and run
from the same directory from which you ran \texttt{installDumux.sh}.

\begin{lstlisting}[style=Bash,escapechar=\%]
$ wget https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/raw/releases/%\DumuxVersion%/bin/util/test_dumux.sh
$ wget sh test_dumux.sh
\end{lstlisting}

For further information on how to get started with dumux, see Section \ref{chp:tutorial}.
