Skip to content
Snippets Groups Projects
Commit a6d43e30 authored by Christoph Grüninger's avatar Christoph Grüninger
Browse files

[handbook] Update chapter about installation.

There is still a lot to be done!


git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@12519 2fb0f335-1f38-0410-981e-8018bf24f1b0
parent 0756ac80
No related branches found
No related tags found
No related merge requests found
......@@ -924,12 +924,12 @@
}
@MISC{DOXYGEN-HP,
title = {Doxgen's Homepage: \url{http://www.stack.nl/~dimitri/doxygen/}},
title = {Doxgen Homepage: \url{http://www.stack.nl/~dimitri/doxygen/}},
key = {DOXYGEN}
}
@MISC{DUMUX-HP,
title = {The {D}umux homepage: \url{http://www.dumux.org/}},
title = {{DuMuX} homepage: \url{http://www.dumux.org/}},
key = {DUMUX}
}
......@@ -938,9 +938,9 @@
key = {DUNE-BS}
}
@MISC{DUNE-DOWNLOAD-SVN,
title = {Download of {DUNE} via SVN: \url{http://www.dune-project.org/downloadsvn.html}},
key = {DUNE-DOWNLOAD-SVN}
@MISC{DUNE-DOWNLOAD-GIT,
title = {Download of {DUNE} via Git: \url{http://www.dune-project.org/downloadgit.html}},
key = {DUNE-DOWNLOAD-GIT}
}
@MISC{DUNE-EXT-LIB,
......
\chapter{Detailed Installation Instructions} \label{install}
\section{Preliminary remarks}
In this section about the installation of \Dumux it is assumed that you work on a Unix or Linux compatible operating system
\section{Preliminary remarks}
In this section about the installation of \Dumux it is assumed that you work with a Linux or Apple OS X operating system
and that you are familiar with the use of a command line shell. Installation means that you unpack \Dune together with \Dumux in a certain directory.
Then, you compile it in that directory tree in which you do the further work, too. You also should know how to install new software packages
or you should have a person on hand who can give you assistance with that. In section \ref{sec:prerequisites} we list some prerequisites for running \Dune and \Dumux.
......@@ -25,15 +25,15 @@ e.\,g. for the module \texttt{dumux} these names are \emph{dumux root directory
The real directory names for the modules can be chosen arbitrarily. In this manual they are the same as the
module name or the module name extended by a version number suffix.
The name of each \Dune module is defined in the file \texttt{dune.module}, which is in the root
directory of the respective module. This should not be changed by the user.
It is allowed to have own files and directories in \Dune-Root, which are not related to \Dune's needs.
directory of the respective module. This should not be changed by the user.
After installing source code for all relevant \Dune modules including \Dumux, \Dune is being built by the shell-command \texttt{dunecontrol} which is part of the \Dune build system. The \Dune build system is a front-end of to the GNU build system adapted to the needs of \Dune.
After extracting the source code for all relevant \Dune modules, including \Dumux, \Dune has to be built
by the shell-command \texttt{dunecontrol} which is part of the \Dune build system.
\section{Prerequisites} \label{sec:prerequisites}
The GNU tool chain of \texttt{g++} and the tools of the GNU build system \cite{GNU-BS}, also known as GNU autotools
(\texttt{autoconf}, \texttt{automake}, \texttt{autogen}, \texttt{libtool}), as well as the GNU variant of \texttt{make}
called gmake must be available in a recent version. For example Ubuntu Linux provides these tools with the
(\texttt{autoconf}, \texttt{automake}, \texttt{autogen}, \texttt{libtool}), as well as \texttt{make}
must be available in a recent version. For example Ubuntu Linux provides these tools with the
packages \texttt{autoconf}, \texttt{automake}, \texttt{libtool}
and the \Cplusplus compiler \texttt{g++} and \texttt{make} are contained in \texttt{build-essential}. Packages required for Ubuntu users are listed in Table \ref{tbl:ubuntu-pkg}. For the installation of \Dumux using \texttt{dune-pdelab}, \texttt{dune-multidomain}, \texttt{dune-multidomaingrid} and the external packages UG and SuperLU on SUSE, the package \texttt{csh} was not required. Some of the package names differ from Ubuntu to SUSE, so that \texttt{boost-devel}, \texttt{gcc-c++} and \texttt{make} have to be installed (Nov. 2012).
......@@ -41,8 +41,8 @@ At the time of writing this manual, it is expected that \texttt{g++} of version
\texttt{autoconf} of version $\geqslant$ 2.65, \texttt{autogen} of version $\geqslant$ 5.9.7, \texttt{libtool} of version $\geqslant$ 2.2.6
and GNU \texttt{make} version $\geqslant$ 3.81 should do their job for building \Dumux.
The building of included documentation like this handbook requires \LaTeX\ and auxiliary tools
like \texttt{dvipdf} and \texttt{bibtex}. One usually chooses a \LaTeX\ distribution like \texttt{texlive} for this purpose.
The building of included documentation like this handbook requires \LaTeX{} and auxiliary tools
like \texttt{dvipdf} and \texttt{bibtex}. One usually chooses a \LaTeX{} distribution like \texttt{texlive} for this purpose.
It is possible to switch off the building of the documentation by setting the switch \texttt{--disable-documentation}
in the \texttt{CONFIGURE\_FLAGS} of the building options (see Chapter \ref{buildIt}).
Additional parts of documentation are contained within the source code files as special formatted comments.
......@@ -53,8 +53,7 @@ Depending on whether you are going to use external libraries and modules for add
additional software packages may be required. Some hints on that are given in Section \ref{sec:external-modules-libraries}.
For the extraction of the content of tar files, the GNU version of \texttt{tar} is used.
The subversion (svn) software repositories can be accessed with help of a subversion client. We recommend the Apache Subversion command-line client \texttt{svn}
contained in Apache Subversion of version $\geqslant$ 1.6.0 \cite{APACHE-SUBVERSION-HP}.
The Subversion (svn) software repositories can be accessed with help of a subversion client.
\begin{table}
\centering
......@@ -137,26 +136,28 @@ The installation procedure is done as follows:
Create a {\Dune} root directory, named \texttt{DUMUX} in the lines below.
Then, enter the previously created directory and check out the desired modules.
As you see below, the check-out uses two different servers for getting the sources, one for \Dune and one for {\Dumux}.
The \Dune modules of the stable 2.2 release branch are checked out as described on the \Dune website \cite{DUNE-DOWNLOAD-SVN}:
The \Dune modules of the stable 2.2 release branch are checked out as described on the \Dune website \cite{DUNE-DOWNLOAD-GIT}:
\begin{lstlisting}[style=Bash]
$ mkdir DUMUX
$ cd DUMUX
$ svn checkout https://svn.dune-project.org/svn/dune-common/branches/release-2.2 dune-common
$ svn checkout https://svn.dune-project.org/svn/dune-istl/branches/release-2.2 dune-istl
$ svn checkout https://svn.dune-project.org/svn/dune-grid/branches/release-2.2 dune-grid
$ svn checkout https://svn.dune-project.org/svn/dune-geometry/branches/release-2.2 dune-geometry
$ svn checkout https://svn.dune-project.org/svn/dune-localfunctions/branches/release-2.2 dune-localfunctions
$ git clone http://git.dune-project.org/repositories/dune-common/releases/2.2
$ git clone http://git.dune-project.org/repositories/dune-geometry/releases/2.2
$ git clone http://git.dune-project.org/repositories/dune-grid/releases/2.2
$ git clone http://git.dune-project.org/repositories/dune-istl/releases/2.2
$ git clone http://git.dune-project.org/repositories/dune-localfunctions/releases/2.2
\end{lstlisting}
The newest and maybe unstable developments are also provided in these repositories in a folder called \emph{trunk}. Please check the \Dune website \cite{DUNE-DOWNLOAD-SVN} for further information. However, the current \Dumux release is based on the stable 2.2 release and it might not compile without further adaptations using the the newest versions of \Dune.
The newest and maybe unstable developments are also provided in these repositories and is called \emph{master}.
Please check the \Dune website \cite{DUNE-DOWNLOAD-GIT} for further information. However, the current \Dumux release
is based on the stable 2.2 release and it might not compile without further adaptations using the the newest versions of \Dune.
The additional module \texttt{dune-grid-howto} is a tutorial which provides information about the \Dune grid interface.
It may give you an idea of how some abstractions in \Dune are done.
The installation of \texttt{dune-grid-howto} is optional and is not required by \Dumux. It is done by:
\begin{lstlisting}[style=Bash]
$ svn checkout https://svn.dune-project.org/svn/dune-grid-howto/branches/release-2.2 dune-grid-howto
$ git clone http://git.dune-project.org/repositories/dune-grid-howto/releases/2.2
\end{lstlisting}
The \texttt{dumux} module is checked out as described below (see also the \Dumux website \cite{DUMUX-HP}).
......@@ -301,9 +302,11 @@ In the following list, you can find some external modules and external libraries
\item \textbf{ALUGrid}: External library for use as grid. ALUGrid is built by a \Cplusplus compiler like \texttt{g++}. If you want to build a parallel version, you will need \texttt{MPI}. It was successfully run with \texttt{openmpi}. The parallel version needs also a graph partitioner, such as \texttt{METIS}. It was run successfully in combination with \Dune using \texttt{METIS}. \\
Download: \texttt{\url{http://aam.mathematik.uni-freiburg.de/IAM/Research/alugrid}}
\item \textbf{\Dune-multidomaingrid}: External module. If you going to run on the same grid different domains or subdomains,
this can be the package of choice. This is done by providing a meta grid. It can be useful for multi-physics approaches or domain decomposition methods. Download: \texttt{\url{http://gitorious.org/dune-multidomaingrid}}.
%Furthermore, the external module \textbf{\Dune-multidomain} can be useful for solving heterogenous problems on spatial subdomains. These subdomains are managed using another DUNE module called dune-multidomaingrid.
\item \textbf{\Dune-multidomaingrid} and \textbf{\Dune-multidomaingrid}: External modules which offer a meta grid that
has different sub-domains. Each subdomain can have a local operator that is coupled by a coupling condition. They are
used for multi-physics approaches or domain decomposition methods.
(\texttt{\url{http://users.dune-project.org/projects/dune-multidomaingrid}}
and \texttt{\url{http://users.dune-project.org/projects/dune-multidomain}})
\item \textbf{\Dune-PDELab}: External module to write more easily discretizations. PDELab provides already a sound number of discretizations like FEM or discontinuous Galerkin methods. Download: \texttt{\url{http://www.dune-project.org/pdelab}}.
......@@ -327,23 +330,20 @@ The following are dependencies of some of the used libraries. You will need them
\item \textbf{GotoBLAS2}: This is an optimized version of BLAS. It covers not all processors of the day, but quite a broad range. Its license is now very open. A Fortran compiler like \texttt{gfortran} is needed to compile it.\\
Available by \texttt{\url{http://www.tacc.utexas.edu/tacc-projects/gotoblas2/}}.
\item \textbf{METIS}: This is a dependency of ALUGrid, if you are going to run it parallel.
\item \textbf{METIS} and \textbf{ParMETIS}: This are dependencies of ALUGrid, if run in parallel.
\item \textbf{Compilers}: Beside \texttt{g++} it has been reported that \Dune was successfully built with \texttt{Clang++} from the LLVM project and the Intel \Cplusplus compiler.
C and Fortran compiler is needed for some external libraries. As code of different compilers is linked together they have to be be compatible with each other. A good choice is the GNU compiler suite \texttt{gcc}, \texttt{g++} and \texttt{gfortran}.
\item \textbf{libgomp}: External libraries, such as ALUGrid, can make use of OpenMP when used together with METIS. For that purpose it can be necessary to install the \texttt{libgomp} library.
% http://openmp.org/
%\item \textbf{libgmp}: The Gnu Multiple Precision Arithmetic Library (GMP) is also a prerequisite for \Dune. It may be necessary to install it.
% http://gmplib.org/
\end{itemize}
\section{Hints for Users from IWS}
We provide some features to make life a little bit easier for
users from the Institute for Modelling Hydraulic and Environmental Systems, University of Stuttgart.
There exists internally a SVN repository made for several external libraries.
There exists internally a Subversion repository made for several external libraries.
If you are allowed to access it, go to the {\Dune}-Root, then the following.
Prepared external directory:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment