diff --git a/doc/handbook/2_detailedinstall.tex b/doc/handbook/2_detailedinstall.tex index 2e92ca9a6db35eff5b8260f3ce2c114b0f83c229..2e7b33050ab5d91083a0b316278847cf7a6d209f 100644 --- a/doc/handbook/2_detailedinstall.tex +++ b/doc/handbook/2_detailedinstall.tex @@ -55,7 +55,7 @@ Extracting them can be done using \texttt{doxygen}, cf. Section \ref{sec:build-d Depending on whether you are going to use external libraries and modules for additional \Dune features, additional software packages may be required. Some hints on that are given in Section \ref{sec:external-modules-libraries}. -Subversion (SVN) and Git clients must be installed to download modules from Subversion and Git repositories. +Git clients must be installed to download modules from Git repositories. \subsection{Obtaining Source Code for \Dune and \Dumux} As stated above, the \Dumux release and trunk (developer tree) are based on the most recent @@ -105,64 +105,41 @@ Furthermore, if you wish to install the optional \Dune Grid-Howto which provides on the Dune grid interface, act similar. \paragraph{Obtaining \Dune and \Dumux from software repositories} -Direct access to a software revision control system for downloading code can be of advantage for the user later on. -It can be easier for him to keep up with code changes and to receive important bug fixes using -the update or pull command of the revision control system. \Dune uses Git and \Dumux uses Apache -Subversion for their software repositories. To access them a certain programs are needed which -is referred to here shortly as Subversion client or Git client. In our description, we use the -Subversion client \texttt{svn} of the Apache Subversion software itself. - -In the technical language of Apache Subversion \emph{checking out a certain software version} means nothing more then fetching +Direct access to a software revision control system for downloading code can be of advantage later on. +It is easier to keep up with code changes and to receive important bug fixes.\Dune and \Dumux use +Git for their software repositories. To access them a certain programs are needed which +is referred to here shortly as Git client. + +In the technical language of Git \emph{cloning a certain software version} means nothing more then fetching a local copy from the software repository and laying it out in the file system. In addition to the software some more files for the use of the software revision control system itself are created. If you have developer access to \Dumux, it is also possible to do the opposite, i.\,e. to load up a modified revision of software -into the software repository. This is usually termed as \emph{commit}. +into the software repository. This is usually termed as \emph{commit} and \emph{push}. The installation procedure is done as follows: Create a {\Dune} root directory, named \texttt{dune} 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.3 release branch are checked out as described +one for \Dune and one for \Dumux. +The \Dune modules of the stable 2.4 release branch are checked out as described on the \Dune website \cite{DUNE-DOWNLOAD-GIT}: \begin{lstlisting}[style=Bash] $ mkdir DUMUX $ cd DUMUX -$ git clone http://git.dune-project.org/repositories/dune-common -$ cd dune-common -$ git checkout releases/2.3 -$ cd .. -$ git clone http://git.dune-project.org/repositories/dune-geometry -$ cd dune-geometry -$ git checkout releases/2.3 -$ cd .. -$ git clone http://git.dune-project.org/repositories/dune-grid -$ cd dune-grid -$ git checkout releases/2.3 -$ cd .. -$ git clone http://git.dune-project.org/repositories/dune-istl -$ cd dune-istl -$ git checkout releases/2.3 -$ cd .. -$ git clone http://git.dune-project.org/repositories/dune-localfunctions -$ cd dune-localfunctions -$ git checkout releases/2.3 -$ cd .. -$ git clone http://git.dune-project.org/repositories/dune-pdelab -$ cd dune-pdelab -$ git checkout releases/2.0 -$ cd .. -$ git clone http://git.dune-project.org/repositories/dune-typetree -$ cd dune-typetree -$ git checkout releases/2.3 -$ cd .. +$ git clone -b releases/2.4 https://gitlab.dune-project.org/core/dune-common.git +$ git clone -b releases/2.4 https://gitlab.dune-project.org/core/dune-geometry.git +$ git clone -b releases/2.4 https://gitlab.dune-project.org/core/dune-grid.git +$ git clone -b releases/2.4 https://gitlab.dune-project.org/core/dune-istl.git +$ git clone -b releases/2.4 https://gitlab.dune-project.org/core/dune-localfunctions.git +$ git clone -b releases/2.3 https://gitlab.dune-project.org/PDELab/dune-typetree.git +$ git clone -b releases/2.0 https://gitlab.dune-project.org/PDELab/dune-pdelab.git \end{lstlisting} 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.3 release and it might not compile without further adaptations using the the newest versions of \Dune. +is based on the stable 2.4 release and it might not compile without further adaptations using the the newest versions of \Dune. Furthermore, if you wish to install the optional \Dune Grid-Howto which provides a tutorial on the Dune grid interface, act similar. @@ -174,7 +151,7 @@ is executed there, too. The dumux root directory is called \texttt{dumux} here. \begin{lstlisting}[style=Bash] $ # make sure you are in DUNE-Root -$ svn checkout --username=anonymous --password='' svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk dumux +$ git clone https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git \end{lstlisting} \paragraph{Patching \Dune or external libraries} @@ -215,22 +192,6 @@ To get more involved, you can apply either for full developer access or for developer access on certain parts of \Dumux. Granted developer access means that you are allowed to commit own code and that you can access the \texttt{dumux-devel} module. This enhances \texttt{dumux} by providing maybe unstable code from the developer group. -A developer usually checks out non-anonymously the modules \texttt{dumux} and \texttt{dumux-devel}. -\texttt{Dumux-devel} itself makes use of the stable part \texttt{dumux}. Hence, the two parts have to be checked out together. -This is done using the commands below. But \texttt{joeuser} needs to be replaced by -the actual user name of the developer for accessing the software repository. -One can omit the \texttt{--username} option in the commands above if the user name for the repository access is -identical to the one for the system account. - -\begin{lstlisting}[style=Bash] -$ svn co --username=joeuser svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk dumux -$ svn co --username=joeuser svn://svn.iws.uni-stuttgart.de/DUMUX/dune-mux/trunk dumux-devel -\end{lstlisting} - -Please choose either not to store the password by subversion in an insecure way or -choose to store it by subversion in a secure way, e.\,g. together with KDE's KWallet or GNOME Keyring. -Check the documentation of Subversion for info on how this is done. -A leaked out password can be used by evil persons to abuse a software repository. \subsection{Building Documentation} \subsubsection{Doxygen} @@ -251,7 +212,6 @@ To build the \Dumux handbook go into the \texttt{build-}directory and run \texttt{make doc} or \texttt{make dumux-handbook\_pdf}. The pdf can then be found in \texttt{MODULE\_BUILD\_DIRECTORY/doc/handbook/dumux-handbook.pdf}. - \subsection{External Libraries and Modules} \label{sec:external-modules-libraries} The libraries described below provide additional functionality but are not generally required to run \Dumux. If you are going to use an external library check the information provided on the \Dune website \cite{DUNE-EXT-LIB}. @@ -281,10 +241,9 @@ and some more libraries and tools which are prerequisites for their use. compiler like \texttt{gfortran}. Download: \texttt{\url{http://www.alberta-fem.de}} or for version 3.0 \texttt{\url{http://www.mathematik.uni-stuttgart.de/fak8/ians/lehrstuhl/nmh/downloads/alberta/}}. -\item \textbf{ALUGrid}: External grid library. 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}. +\item \textbf{dune-ALUGrid}: Grid library, comes as a \Dune module. The parallel version needs also a graph partitioner, such as \texttt{ParMETIS}. - Download: \texttt{\url{http://aam.mathematik.uni-freiburg.de/IAM/Research/alugrid}} + Download: \texttt{\url{https://gitlab.dune-project.org/extensions/dune-alugrid}} \item \textbf{\Dune-multidomaingrid} and \textbf{\Dune-multidomain}: External modules which offer a meta grid that has different sub-domains. Each sub-domain can have a local operator that is coupled by a coupling condition. They are @@ -305,6 +264,8 @@ and some more libraries and tools which are prerequisites for their use. library for the direct solution of large, sparse, non-symmetric systems of linear equations. Download: \texttt{\url{http://crd.lbl.gov/~xiaoye/SuperLU}} +\item \textbf{UMFPack}: External library for solving linear equeations. It is part of SuiteSparse. + \item \textbf{UG}: External library for use as grid. UG is a toolbox for unstructured grids, released under GPL. To build UG the tools \texttt{lex}/\texttt{yacc} or the GNU variants of \texttt{flex}/\texttt{bison} must be provided. Download: \texttt{\url{http://www.iwr.uni-heidelberg.de/frame/iwrwikiequipment/software/ug}} @@ -326,6 +287,5 @@ depending on which modules of \Dune and which external libraries you use. \item \textbf{Compilers}: Beside \texttt{g++}, \Dune can be built with Clang from the LLVM project and Intel \Cplusplus compiler. C and Fortran compilers are 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 consisting of \texttt{gcc}, \texttt{g++} and \texttt{gfortran}. + different compilers is linked together they have to be be compatible with each other. \end{itemize} \ No newline at end of file diff --git a/doc/handbook/2_quickinstall.tex b/doc/handbook/2_quickinstall.tex index 0e8c4ee294cebaa2cddd305e03e19c763c690547..5352f044de8b06a8ef6cb1dede50b2c3d77ace36 100644 --- a/doc/handbook/2_quickinstall.tex +++ b/doc/handbook/2_quickinstall.tex @@ -20,7 +20,7 @@ $ checkout-dumux -gme -u joeuser -p password -d DUMUX \end{lstlisting} Be aware that you cannot get \texttt{dumux-devel} or the external libraries from \texttt{dumux-external} unless -you have an SVN account to our servers. +you have an GitLab account with the right privileges. If you want to install \Dune and \Dumux without the help of \texttt{checkout-dumux} script a complete installation guide can be found in chapter \ref{install} or on the \Dune website \cite{DUNE-INST}. @@ -63,8 +63,7 @@ sometimes you have your own preferences. Feel free to work with your own set of options, which may evolve over time. The option files above are to be understood more as a starting point for setting up an own customization than as something which is fixed. -The use of external libraries can make it necessary to add quite many options in an option-file. +The use of external libraries can make it necessary to add quite many options in an option file. It can be helpful to give your customized option file its own name, as done above. -One avoids confusing it with the option files which came out of the distribution -and which can be possibly updated by subversion later on. +One avoids confusing it with the option files which came out of the distribution. diff --git a/doc/handbook/3_furtherpractice.tex b/doc/handbook/3_furtherpractice.tex index 27ae9b0c5c1542c9b8c27ae52317644f959ea841..99800c80b5b23d6643f4e036e1f7268050459536 100644 --- a/doc/handbook/3_furtherpractice.tex +++ b/doc/handbook/3_furtherpractice.tex @@ -43,5 +43,5 @@ contained: Dumux-lecture can be obtained as follows: \begin{lstlisting}[style=Bash] -$ svn checkout --username=anonymous --password='' svn://svn.iws.uni-stuttgart.de/DUMUX/dumux-lecture/trunk dumux-lecture +$ git clone https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-lecture.git \end{lstlisting} diff --git a/doc/handbook/4_developingdumux.tex b/doc/handbook/4_developingdumux.tex index 6d948cb611066d0af503aaa1917653057228df62..b3eafb5da9cdf9efd816121c325ca4bb16d081d5 100644 --- a/doc/handbook/4_developingdumux.tex +++ b/doc/handbook/4_developingdumux.tex @@ -55,13 +55,13 @@ and \Dumux by adding \texttt{--only=MODULE,dumux}. If you want to send changes to an other developer of \Dumux providing patches can be quite smart. To create a patch simply type: \begin{lstlisting}[style=Bash] -$ svn diff > PATCHFILE +$ git diff > PATCHFILE \end{lstlisting} \noindent which creates a text file containing all your changes to the files in the current folder or its subdirectories. To apply a patch in the same directory type: \begin{lstlisting}[style=Bash] -$ path -p0 < PATCHFILE +$ patch -p1 < PATCHFILE \end{lstlisting} See \ref{sc:patchingDUNE} if you need to apply patches to \Dumux or \Dune. diff --git a/doc/handbook/4_externaltools.tex b/doc/handbook/4_externaltools.tex index 2f7a99fae9499f7c236c02b1beb4d62224b51bfe..ba942f92841c391adbad528f90a42e37547ddd5d 100644 --- a/doc/handbook/4_externaltools.tex +++ b/doc/handbook/4_externaltools.tex @@ -1,39 +1,26 @@ \section{External Tools} \label{sc_externaltools} -\subsection{Subversion (svn)} -Subversion is a software versioning and revision control system. We use Subversion to -manage the source code of \Dumux, archive changes and central storage. -Basic svn commands are: -\begin{itemize} - \item \texttt{svn add} to add files/folder to the repository. - Use \texttt{svn add --depth=empty FOLDER} to add just the folder - and \texttt{svn add YOURFILES} to add files. Generally, you should only add - necessary text-based files. Please do not upload (large) binary files. - \item \texttt{svn checkout} checkout a repository - \item \texttt{svn update} updates files/folder - \item \texttt{svn status} to track changes: - \textbf{M}odified, \textbf{D}eleted, \textbf{A}dded, \textbf{?} not in repository - \item \texttt{svn diff} to see the actual changes of files/folder - \item \texttt{svn commit} upload changes to the repository -\end{itemize} -There are also tools providing a graphical user interface, like \emph{kdesvn} or \emph{eclipse}. - \subsection{Git} -Git is an other version control tool which is currently used to manage the \Dune modules. +Git is a version control tool which we use. The basic Git commands are: \begin{itemize} \item \texttt{git checkout} receive a specified branch from the repository - \item \texttt{git clone} clone a repository (similar to svn checkout) - \item \texttt{git diff} to see the actual changes of a file/folder - \item \texttt{git pull} pull changes from the repository (similar to svn update) + \item \texttt{git clone} clone a repository; creates a local copy + \item \texttt{git diff} to see the actual changes compared to your last commit + \item \texttt{git pull} pull changes from the repository; synchronizes the + repository with your local copy + \item \texttt{git push} push comitted changes to the repository; synchronizes + your local copy with the repository \item \texttt{git status} to check which files/folders have been changed + \item \texttt{git gui} graphical user interface, helps selecting changes for + a commit \end{itemize} \subsection{Eclipse} -There is an eclipse style file which can be used for Dumux. +There is an Eclipse style file which can be used for \Dumux. \begin{enumerate} - \item in eclipse open: \texttt{Window} $\rightarrow$ \texttt{Preferences} $\rightarrow$ + \item open in eclipse: \texttt{Window} $\rightarrow$ \texttt{Preferences} $\rightarrow$ \texttt{C/C++} $\rightarrow$ \texttt{Code Style} $\rightarrow$ \texttt{Formatter} \item press the \texttt{Import} button \item choose the file \texttt{eclipse\_profile.xml} from your dumux-devel directory diff --git a/doc/handbook/4_newfoldersetup.tex b/doc/handbook/4_newfoldersetup.tex index e76a1bc803aa1046a3edbba5bfac2220b998ade0..c1700cd9a09937afa0048f9c1de08b201208c2bb 100644 --- a/doc/handbook/4_newfoldersetup.tex +++ b/doc/handbook/4_newfoldersetup.tex @@ -22,6 +22,3 @@ The command has four arguments: \item command to be executed as test - either the executable or a some helper script with arguments \end{enumerate} - -To commit all your changes in the current folder and all subfolders, type \texttt{svn commit}. -Please give a meaningful commit message.