Merge lp:~fluidity-core/fluidity/supportingsoftwaremanualupdates201403 into lp:fluidity

Proposed by Tim Greaves
Status: Needs review
Proposed branch: lp:~fluidity-core/fluidity/supportingsoftwaremanualupdates201403
Merge into: lp:fluidity
Diff against target: 935 lines (+553/-164)
7 files modified
manual/external_libraries.tex (+285/-143)
manual/getting_started.tex (+88/-16)
manual/primer.tex (+4/-0)
manual/primer_fedora.tex (+54/-0)
manual/primer_opensuse.tex (+52/-0)
manual/primer_redhat.tex (+62/-0)
manual/primer_ubuntu.tex (+8/-5)
To merge this branch: bzr merge lp:~fluidity-core/fluidity/supportingsoftwaremanualupdates201403
Reviewer Review Type Date Requested Status
Fluidity Core Team formatting content description comments Pending
Review via email: mp+216311@code.launchpad.net

Description of the change

General updates to the external libraries appendix and the primer.

The external libraries appendix is updated to the latest software versions used for Fluidity, and install methods for external libraries on Red Hat, Fedora, and OpenSuSE are added.

Primers are made specific to Ubuntu, Red Hat (and derivatives), Fedora, and OpenSuSE.

Feedback welcomed on these changes - to some extent this has been discussed in dev meetings and the proposed merge here is following decisions made there, but more specific formatting and description comments would be appreciated if anyone has suggestions for improvement.

To post a comment you must log in.

Unmerged revisions

4336. By Tim Greaves

Updating the Ubuntu section in 'External Libraries' to reflect a more time-
independent description of supported releases.

4335. By Tim Greaves

Formatting and content bugfixes.

4334. By Tim Greaves

Updating to a neater method for adding repositories.

4333. By Tim Greaves

Adding a primer for OpenSuSE.

4332. By Tim Greaves

Adding a primer for Fedora.

4331. By Tim Greaves

Formatting fixes for the Red Hat primer

4330. By Tim Greaves

Syntax correction to the Red Hat primer

4329. By Tim Greaves

Adding in a primer for Red Hat Enterprise Linux and derivatives; first draft.

4328. By Tim Greaves

Setting up a main page for the primer section, and moving the previous primer
page (with some updates to reflect which versions of Ubuntu we support, and
referring users to Ubuntu's 'releases' page) in preparation for adding more
primer pages for other Linux distributions.

4327. By Stephan Kramer

Update recommended petsc configuration options.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'manual/external_libraries.tex'
--- manual/external_libraries.tex 2013-09-23 20:07:28 +0000
+++ manual/external_libraries.tex 2014-04-17 13:06:05 +0000
@@ -18,78 +18,230 @@
18run:18run:
1919
20\begin{itemize}20\begin{itemize}
21\item Fortran 90 and C++ compiler (gcc build tested version 4.8.1, expected working for gcc 4.5.x and higher; Intel 11.1 for versions above 11.1.073)21\item Fortran 90 and C++ compiler (gcc tested version 4.8.2, expected working for gcc 4.5.x and higher; other compilers not currently supported but work is ongoing with Intel to support their 2014 releases)
22\item BLAS (tested netlib, ATLAS, MKL)22\item BLAS (tested netlib, ATLAS, MKL)
23\item LAPACK (tested netlib, ATLAS, MKL)23\item LAPACK (tested netlib, ATLAS, MKL)
24\item MPI2 implementation (build tested OpenMPI version 1.6.5)24\item MPI2 implementation (tested OpenMPI version 1.6.5)
25\item PETSc (build tested version 3.4.1, fully tested version 3.1p8)25\item PETSc (tested version 3.4.3)
26\item ParMetis (build tested version 3.2)26\item ParMetis (tested version 3.2, 4.x not supported)
27\item Python (build tested version 2.7.5) 27\item Python (build tested version 2.7.5)
28\item NumPy (build tested version 1.7.1)28\item NumPy (build tested version 1.8.1)
29\item VTK (tested version 5.10.1)29\item VTK (tested version 5.10.1, 6.x not supported)
30\item Zoltan (build tested version 3.6)30\item Zoltan (build tested version 3.8)
31\item GMSH (tested version 2.8.4)
31\end{itemize}32\end{itemize}
3233
33\fluidity recommends also making available the following:34\fluidity recommends also making available the following:
3435
35\begin{itemize}36\begin{itemize}
36\item Trang (tested version 20030619, any recent version should work)37\item Trang (tested version 20030619, any recent version should work)
37\item NetCDF (tested version 4.0)38\item NetCDF (tested version 4.1.3)
38\item UDUnits (tested version 2.1.23)39\item UDUnits (tested version 2.2.0)
39\item Bazaar (tested version 2.4.0)40\item Bazaar (tested version 2.6.0)
40\item SciPy (tested version 0.11.0)41\item SciPy (tested version 0.13.3)
41\item ARPACK (tested version 96)42\item ARPACK (tested version 3.1.5)
42\item XML2 (tested version 2.6)43\item XML2 (tested version 2.9.1)
43\end{itemize}44\end{itemize}
4445
45\section{Installing required libraries on Debian or Ubuntu}46\section{Installing required libraries on major Linux distributions}
46\label{sec:required_ḻibraries_debian}\index{libraries!installing on debian and ubuntu}47\label{sec:required_ḻibraries_linux}\index{libraries!installing on linux}
4748
48By far the easiest way to obtain all the supporting libraries and other49\fluidity comes pre-packages for many major Linux distributions, both as a set
49software required to build and run \fluidity is to make use of the \fluidity50of libraries for building the code and as a pre-built \fluidity binary package
50packages available from the Launchpad fluidity-core PPA. These are available51for immediate use.
51for as many Ubuntu versions as \fluidity currently supports; at the time of52
52writing, 10.10 (Maverick) and newer, though support for 10.10 will end as of53\textbf{BE AWARE:} All packages from \fluidity repositories are provided for
53April 2012 when central Ubuntu support ends.54use at your own risk and without warranty. You should ensure that any packages
5455installed from external repositories are not going to adversely affect your
55\textbf{BE AWARE:} AMCG packages are provided for use at your own risk and56system before installing them!
56without warranty. You should ensure that any packages installed from external57
57repositories are not going to adversely affect your system before installing58\subsection{Installing on Ubuntu}
58them!59\label{sec:required_ḻibraries_Ubuntu}\index{libraries!installing on Ubuntu}
5960
60To access the repository containing the \fluidity support packages, you will61\fluidity aims to fully support the latest Ubuntu LTS distribution at any given
62time, to offer support for previous LTS distributions for as long as practical
63within the official five-year Ubuntu support period, and to offer packages for
64building and installing \fluidity on all other main Ubuntu releases still
65listed as current on
66\href{https://wiki.ubuntu.com/Releases}{https://wiki.ubuntu.com/Releases}
67. A full testing program will be carried out on the latest LTS
68distribution as a matter of \fluidity general policy, whilst testing on other
69Ubuntu versions will be carried out as available resources permit.
70
71At the time of writing (April 2014), all current releases are supported bar
72Ubuntu 10.10 LTS (lucid).
73
74Going forward, timely support for six-monthly Ubuntu releases is intended,
75although the faster-moving nature of this target may mean that from time to
76time there is a delay in releasing a full \fluidity package set. Users move
77from the LTS to six-month releases at the price of being on a lower-priorty
78platform as far as central \fluidity support and testing is concerned.
79
80To access the repository containing the \fluidity packages, you will
61need to run:81need to run:
6282
63\begin{lstlisting}[language=bash]83\begin{lstlisting}[language=bash]
64sudo apt-add-repository -y ppa:fluidity-core/ppa84sudo apt-add-repository -y ppa:fluidity-core/ppa
65\end{lstlisting}85\end{lstlisting}
6686
67You will then need to update your system and install the fluidity-dev package,87To develop or locally build \fluidity, you will then need to update your system
68which depends on all the other software required for building \fluidity:88and install the fluidity-dev package, which depends on all the other software
89required for building \fluidity:
90
6991
70\begin{lstlisting}[language=bash]92\begin{lstlisting}[language=bash]
71sudo apt-get update93sudo apt-get update
72sudo apt-get install fluidity-dev94sudo apt-get install fluidity-dev
73\end{lstlisting}95\end{lstlisting}
7496
75To benefit from the environment modules supplied from AMCG you may want to add97If you wish to install the \fluidity binary packages you can also run:
76the following lines to your \lstinline[language=bash]+/etc/bash.bashrc+ file:98
7799\begin{lstlisting}[language=bash]
78\begin{lstlisting}[language=bash]100sudo apt-get install fluidity
79if [ -f /usr/share/Modules/init/bash ]; then101\end{lstlisting}
80 . /usr/share/Modules/init/bash102
81fi103Note that the above is tested on a clean Ubuntu LTS install with no other PPAs
82\end{lstlisting}104or other external repositories enabled; if you have other software sources
83105which may conflict with the core repositories and the \fluidity PPA then you
84New bash shells should automatically inherit the modules environment now, and106will need to contact your local technical support team in the case of package
85you should be able to type:107conflicts or version mismatches.
86108
87\begin{lstlisting}[language=bash]109\subsection{Installing on Red Hat Enterprise and derivatives}
88module load petsc-gcc4110\label{sec:required_ḻibraries_redhat}\index{libraries!installing on redhat}
89\end{lstlisting}111
90112\fluidity aims to fully support the latest Red Hat Enterprise Linux release at any given
91to enable use of PETSc, required for building \fluidity.113time, and to offer support for previous distributions for as long as practical
92 114within the official Red Hat support period. Development and testing is carried
115out using the CentOS community rebuild of Red Hat Enterprise. Packages are also
116sourced from the Extra Packages for Enterprise Linux (EPEL) repository,
117maintained by Fedora.
118
119It is expected that the community rebuilds of Red Hat Enterprise Linux,
120including CentOS and Scientific Linux, should be able to use the \fluidity Red
121Hat package repositories.
122
123At the time of writing, Red Hat Enterprise Linux (Desktop) version 6.5 is the
124supported and tested release, though it is expected that packages provided from
125the \fluidity repository will work on most 6.x systems. Red Hat Enterprise 5.x
126systems are not supported, as the provided compiler and python versions are too
127old for building and testing \fluidity. When version 7 is released, support from
128the \fluidity repositories is expected to be promptly provided as Fedora 19, on
129which Red Hat Enterprise 7 is based, is already fully supported.
130
131The following methods assume that the EPEL repository is enabled on your
132system. If this is not the case, follow instructions at
133\url{https://fedoraproject.org/wiki/EPEL} to enable use of EPEL by installing
134an 'epel-release' package. Note that this assumes no other third-party
135repositories are enabled; if, for example, the rpmforge repository is enabled,
136you may well encounter package versioning issues against EPEL and the Fluidity
137repository.
138
139To access the repository containing the \fluidity packages, you will
140need to run the following, typed all on one line:
141
142\begin{lstlisting}[language=bash]
143sudo yum-config-manager --add-repo
144 http://amcg.ese.ic.ac.uk/yum/rhel/6/fluidity.repo
145\end{lstlisting}
146
147To develop or locally build \fluidity you will then need to install the
148fluidity-dev package, which depends on all the other software required for
149building \fluidity:
150
151\begin{lstlisting}[language=bash]
152sudo yum install fluidity-dev
153\end{lstlisting}
154
155If you wish to install the \fluidity binary packages you can also run:
156
157\begin{lstlisting}[language=bash]
158sudo yum install fluidity
159\end{lstlisting}
160
161Note that the above is tested on a clean CentOS 6.5 install with no other
162external repositories enabled; if you have other software sources which may
163conflict with the \fluidity, EPEL, or core repositories then you will need to
164contact your local technical support team in the case of package conflicts or
165version mismatches. Problems have been reported using the rpmforge repositories
166alongside the \fluidity and EPEL repositories, for example.
167
168\subsection{Installing on Fedora}
169\label{sec:required_ḻibraries_fedora}\index{libraries!installing on fedora}
170
171\fluidity aims to fully support all Fedora releases that are supported
172centrally by the Fedora team, although the faster-moving target presented by
173Fedora means that from time to time latest release may not be immediately or
174fully supported.
175
176At the time of writing, Fedora 19 is fully supported and tested for \fluidity,
177but Fedora 20 is not yet supported as \fluidity does not yet support building
178with VTK6.
179
180To access the repository containing the \fluidity packages for Fedora 19, you
181will need to run the following, typed all on one line:
182
183\begin{lstlisting}[language=bash]
184sudo yum-config-manager --add-repo http://amcg.ese.ic.ac.uk/yum/fedora/19/fluidity.repo
185\end{lstlisting}
186
187To develop or locally build \fluidity you will then need to install the
188fluidity-dev package, which depends on all the other software required for
189building \fluidity:
190
191\begin{lstlisting}[language=bash]
192sudo yum install fluidity-dev
193\end{lstlisting}
194
195If you wish to install the \fluidity binary packages you can also run:
196
197\begin{lstlisting}[language=bash]
198sudo yum install fluidity
199\end{lstlisting}
200
201Note that the above is tested on a clean Fedora 19 install with no other
202external repositories enabled; if you have other software sources which may
203conflict with the \fluidity or Fedora repositories then you will need to
204contact your local technical support team in the case of package conflicts or
205version mismatches.
206
207\subsection{Installing on OpenSuSE}
208\label{sec:required_ḻibraries_opensuse}\index{libraries!installing on opensuse}
209
210\fluidity aims to fully support all OpenSuSE releases that are supported
211centrally by the OpenSuSE team, for as long as they remain in support and are
212realistic platforms on which \fluidity can be built.
213
214At the time of writing, OpenSuSE 12.3 is fully supported and tested for \fluidity,
215but OpenSuSE 13.1 is not yet supported as \fluidity does not yet support building
216with VTK6.
217
218To access the repository containing the \fluidity packages for OpenSuSE 12.3, you
219will need to run:
220
221\begin{lstlisting}[language=bash]
222sudo zypper ar -f http://amcg.ese.ic.ac.uk/yast/opensuse/12.3/
223\end{lstlisting}
224
225To develop or locally build \fluidity you will then need to install the
226fluidity-dev package, which depends on all the other software required for
227building \fluidity:
228
229\begin{lstlisting}[language=bash]
230sudo zypper install fluidity-dev
231\end{lstlisting}
232
233If you wish to install the \fluidity binary packages you can also run:
234
235\begin{lstlisting}[language=bash]
236sudo zypper install fluidity
237\end{lstlisting}
238
239Note that the above is tested on a clean OpenSuSE 12.3 install with no other
240external repositories enabled; if you have other software sources which may
241conflict with the \fluidity or core OpenSuSE repositories then you will need to
242contact your local technical support team in the case of package conflicts or
243version mismatches.
244
93\section{Manual install of external libraries and software}245\section{Manual install of external libraries and software}
94\label{sec:required_ḻibraries_manual_install}\index{libraries!installing externals from source}246\label{sec:required_ḻibraries_manual_install}\index{libraries!installing externals from source}
95247
@@ -110,7 +262,7 @@
110should be relatively tolerant of older versions, as long as they work and are262should be relatively tolerant of older versions, as long as they work and are
111POSIX-compliant.263POSIX-compliant.
112264
113As a side-note, the gcc-multilib requirement for building gcc 4.7 appears to be265As a side-note, the gcc-multilib requirement for building gcc appears to be
114the result of gcc failing to check for the existence of 32-bit headers at266the result of gcc failing to check for the existence of 32-bit headers at
115configure time, and thus requiring the 32-bit compatibility libraries to be267configure time, and thus requiring the 32-bit compatibility libraries to be
116installed on 64-bit systems. There may be a workaround for this of which the268installed on 64-bit systems. There may be a workaround for this of which the
@@ -124,11 +276,12 @@
124recommended that you ensure that your builds will use a compiler that is also276recommended that you ensure that your builds will use a compiler that is also
125able to build \fluidity. If you do not, you may encounter problems when you try277able to build \fluidity. If you do not, you may encounter problems when you try
126to interface \fluidity with the libraries. At present, \fluidity is tested with278to interface \fluidity with the libraries. At present, \fluidity is tested with
127gcc/g++/gfortran versions 4.5-4.7 and the Intel compiler with version 11.1.073279gcc/g++/gfortran versions 4.8 (and expected to behave reasonably with versions
128and later versions of 11.1. Versions of 11.1 earlier than 11.1.073 contain bugs2804.6 and later) and the Intel compiler with version 11.1.073 and later versions
129that prevent building \fluidity, as do all other major and minor versions of281of 11.1. Versions of 11.1 earlier than 11.1.073 contain bugs that prevent
130the Intel compiler. Bug reports have been filed with Intel to remedy this but 282building \fluidity, as do all other major and minor versions of the Intel
131remain outstanding as of this document date (August 2013).283compiler. Bug reports have been filed with Intel to remedy this but remain
284outstanding as of this document date (March 2014).
132285
133\subsection{Build environment}286\subsection{Build environment}
134\label{sec:required_libraries_build_environment}287\label{sec:required_libraries_build_environment}
@@ -171,7 +324,7 @@
171\fluidity has been tested with gfortran $\geq$ 4.4 and Intel 11.1 for versions324\fluidity has been tested with gfortran $\geq$ 4.4 and Intel 11.1 for versions
172$\geq$ 11.1.073. It is not supported for gfortran $\leq$ 4.3 or Intel $\leq$325$\geq$ 11.1.073. It is not supported for gfortran $\leq$ 4.3 or Intel $\leq$
17311.1.073, and if using gfortran some features are not available except for32611.1.073, and if using gfortran some features are not available except for
174gfortran $\geq$ 4.5. Current testing is with gfortran 4.6, so whilst it is327gfortran $\geq$ 4.5. Current testing is with gfortran 4.8, so whilst it is
175expected that 4.4 and 4.5 will function correctly, this is not guaranteed.328expected that 4.4 and 4.5 will function correctly, this is not guaranteed.
176329
177Unsupported compilers generally have incorrect Fortran 90 implementations for330Unsupported compilers generally have incorrect Fortran 90 implementations for
@@ -206,14 +359,13 @@
206\subsubsection{GMP, MPFR, and MPC}359\subsubsection{GMP, MPFR, and MPC}
207\label{sec:required_libraries_compilers_gmp_mpfr_mpc}360\label{sec:required_libraries_compilers_gmp_mpfr_mpc}
208361
209GMP (tested for \fluidity build compatibility with gmp-5.1.2, fully tested362GMP (tested version 5.1.3), MPFR (tested version 3.1.2), and MPC (tested
210gmp-4.3.2) MPFR (tested for \fluidity build compatibility with mpfr-3.1.2,363version 1.0.1) are needed for the GCC 4.8 build if you do not already have
211fully tested mpfr-3.1.0), and MPC (tested for \fluidity build compatibility364them. Download GMP from \url{http://gmplib.org/} and build it in the source
212with mpc-1.0.1, fully tested mpc-0.9) are needed for the GCC 4.8 build if you365directory, appending
213do not already have them. Download GMP from \url{http://gmplib.org/} and build366\lstinline[language=bash]+--build=x86_64-linux-gnu --enable-cxx+
214it in the source directory, appending367to the standard configure, then running the standard make and
215\lstinline[language=bash]+--build=x86_64-linux-gnu --enable-cxx+ to the368install.
216standard configure, then running the standard make and install.
217369
218Once GMP has been installed, download MPFR from370Once GMP has been installed, download MPFR from
219\url{http://www.mpfr.org/mpfr-current/} and build it in the source directory,371\url{http://www.mpfr.org/mpfr-current/} and build it in the source directory,
@@ -239,8 +391,7 @@
239\subsubsection{GCC}391\subsubsection{GCC}
240\label{sec:required_libraries_compilers_gcc}392\label{sec:required_libraries_compilers_gcc}
241393
242GCC (tested for \fluidity build compatibility up to gcc-4.8.1, fully tested394GCC (tested for \fluidity with version 4.8.2) can be downloaded from the UK mirror at
243gcc-4.6.3) can be downloaded from the UK mirror at
244\url{http://gcc-uk.internet.bs/} Before the build, make sure that the GMP,395\url{http://gcc-uk.internet.bs/} Before the build, make sure that the GMP,
245MPFR, and MPC libraries are on LD{\textunderscore}LIBRARY{\textunderscore}PATH396MPFR, and MPC libraries are on LD{\textunderscore}LIBRARY{\textunderscore}PATH
246or the stage 1 configure will fail even if397or the stage 1 configure will fail even if
@@ -265,7 +416,7 @@
265--prefix=$WORKING/fluidity --with-gmp=$WORKING/fluidity416--prefix=$WORKING/fluidity --with-gmp=$WORKING/fluidity
266--with-mpfr=$WORKING/fluidity --with-mpc=$WORKING/fluidity417--with-mpfr=$WORKING/fluidity --with-mpc=$WORKING/fluidity
267--enable-checking=release --enable-languages=c,c++,fortran 418--enable-checking=release --enable-languages=c,c++,fortran
268--disable-multilib --program-suffix=-4.8.1419--disable-multilib --program-suffix=-4.8.2
269\end{lstlisting}420\end{lstlisting}
270421
271followed by the standard make and install. Note you may well want to change the422followed by the standard make and install. Note you may well want to change the
@@ -276,11 +427,11 @@
276environment variables, ie:427environment variables, ie:
277428
278\begin{lstlisting}[language=bash]429\begin{lstlisting}[language=bash]
279export CC=gcc-4.8.1430export CC=gcc-4.8.2
280export CXX=g++-4.8.1431export CXX=g++-4.8.2
281export FC=gfortran-4.8.1432export FC=gfortran-4.8.2
282export F90=gfortran-4.8.1433export F90=gfortran-4.8.2
283export CPP=cpp-4.8.1434export CPP=cpp-4.8.2
284\end{lstlisting}435\end{lstlisting}
285436
286(with suitable version changes if necessary), or if you prefer you could reset437(with suitable version changes if necessary), or if you prefer you could reset
@@ -298,8 +449,7 @@
298non-MPI code as it is assumed that serial runs will be precursors to large449non-MPI code as it is assumed that serial runs will be precursors to large
299parallel runs and will be built with MPI enabled for later use.450parallel runs and will be built with MPI enabled for later use.
300451
301OpenMPI (tested for \fluidity build compatibility up to version 1.6.5, and452OpenMPI (tested version 1.6.5) can be downloaded from
302fully tested to 1.4.3) can be downloaded from
303\url{http://www.open-mpi.org/software/}. It is built in the source directory453\url{http://www.open-mpi.org/software/}. It is built in the source directory
304with the standard configure, make, and install.454with the standard configure, make, and install.
305455
@@ -376,8 +526,8 @@
376\label{sec:required_libraries_numerical_parmetis}\index{ParMetis}526\label{sec:required_libraries_numerical_parmetis}\index{ParMetis}
377527
378ParMetis (tested for \fluidity build compatibility with version 3.2.0, fully528ParMetis (tested for \fluidity build compatibility with version 3.2.0, fully
379tested with version 3.1.1, NOT tested with version 4.x) is required for mesh529tested with version 3.1.1; \fluidity does NOT work correctly with version 4.x) is required for mesh
380partitioning and sparse matrix operations, and can be downloaded from530partitioning, and can be downloaded from
381\url{http://glaros.dtc.umn.edu/gkhome/fsroot/sw/parmetis/OLD}531\url{http://glaros.dtc.umn.edu/gkhome/fsroot/sw/parmetis/OLD}
382532
383ParMetis is built in the source directory with:533ParMetis is built in the source directory with:
@@ -388,27 +538,22 @@
388cp parmetis.h $WORKING/fluidity/include538cp parmetis.h $WORKING/fluidity/include
389\end{lstlisting}539\end{lstlisting}
390540
391Note that \fluidity is NOT currently tested with ParMETIS 4.0.0, and further541Note that \fluidity is NOT currently tested with ParMETIS 4.0.0 and it is
392note that ParMETIS is subject to licensing conditions for commercial users.542expected that \fluidity will not work correctly with versions higher than 3.2.
393Commercial users should contact the University of Minnesota's Office for
394Technology Commercialization directly.
395
396\fluidity is in the process of transitioning away from using ParMETIS to avoid
397this restrictive commercial licensing, and by release 4.2 should have an
398alternative partitioner which is free to use for commercial partners.
399543
400\subsubsection{PETSc}544\subsubsection{PETSc}
401\label{sec:required_libraries_numerical_petsc}\index{PETSc}545\label{sec:required_libraries_numerical_petsc}\index{PETSc}
402546
403If you do not already have it installed, you will need Cmake (tested for547If you do not already have it installed, you will need Cmake (tested for
404version 2.8.11.2, download from548version 2.8.12, download from
405\url{http://www.cmake.org/cmake/resources/software.html}) for the PETSc Metis549\url{http://www.cmake.org/cmake/resources/software.html}) for the PETSc Metis
406build. Cmake is built in its source directory with the standard configure,550build. Cmake is built in its source directory with the standard configure,
407make, and install.551make, and install.
408552
409PETSc (currently tested for \fluidity build compatibility with version 3.3-p7,553PETSc is required for
410fully tested with version 3.1p8, not tested with version 3.4.x) is required for554efficient solver methods within \fluidity. Currently,
411efficient solver methods within \fluidity. PETSc can be downloaded from555\fluidity supports PETSc versions 3.1 to 3.4, using version 3.4
556is recommended. It can be downloaded from
412\url{http://www.mcs.anl.gov/petsc/download/} and built in the source directory.557\url{http://www.mcs.anl.gov/petsc/download/} and built in the source directory.
413First, set PETSC{\textunderscore}DIR in the source directory:558First, set PETSC{\textunderscore}DIR in the source directory:
414559
@@ -419,13 +564,21 @@
419Then configure with the following all on one line:564Then configure with the following all on one line:
420565
421\begin{lstlisting}[language=bash]566\begin{lstlisting}[language=bash]
422./configure --prefix=$WORKING/fluidity --with-mpi-shared=1567./configure --prefix=$WORKING/fluidity
423 --with-shared-libraries=1 --with-debugging=0 --with-parmetis=1568 --download-fblaslapack=1 --download-blacs=1 --download-scalapack=1
424 --download-parmetis=1 --with-hypre=1 --download-hypre=1569 --download-ptscotch=1 --download-mumps=1 --download-hypre=1
425 --with-prometheus=1 --download-prometheus=1 --with-metis=1570 --download-suitesparse=1 --download-ml=1 --with-fortran-interfaces=1
426 --download-metis=1 --with-fortran-interfaces=1
427\end{lstlisting}571\end{lstlisting}
428572
573This set of configuration options provides you with the additional
574multigrid preconditioners hypre and ml, and direct solvers umfpack
575from SuiteSparse and mumps. These are not strictly necessary to run
576Fluidity, but have been found useful in different applications. NOTE:
577you should NOT build PETSc with parmetis
578(so no --download/with-parmetis=1) as the version used by PETSc
579(parmetis 4.x) leads to incorrect behaviour in Fluidity. Therefore, the above
580configuration options uses ptscotch as an alternative.
581
429When configure completes, it should supply you with a 'make all' command line,582When configure completes, it should supply you with a 'make all' command line,
430including various configuration variables. Copy and paste this into your583including various configuration variables. Copy and paste this into your
431terminal and run it. Once it completes, it will supply you with a further 'make584terminal and run it. Once it completes, it will supply you with a further 'make
@@ -444,50 +597,10 @@
444\subsubsection{Zoltan}597\subsubsection{Zoltan}
445\label{sec:required_libraries_numerical_zoltan}\index{Zoltan}598\label{sec:required_libraries_numerical_zoltan}\index{Zoltan}
446599
447Zoltan (fully tested with version 3.6) is available as a tarball from 600Zoltan (fully tested with version 3.8) is available as a tarball from
448\url{http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions/zoltan_distrib_v3.6.tar.gz}601\url{http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions/zoltan_distrib_v3.8.tar.gz}
449602
450After uncompressing that file, you will fix a known issue with Zoltan Fortran603Uncompress the tarball, then make a build directory and change into it:
451modules by editing the file Zoltan{\textunderscore}v3.6/src/Makefile.in: at the
452end of that file and finding lines looking like:
453
454\begin{lstlisting}[language=bash]
455 #if F90_MODULE_LOWERCASE
456 #FORTRAN_MODULES = \
457 # lb_user_const.mod \
458 # zoltan_types.mod \
459 # zoltan.mod \
460 # zoltan_user_data.mod
461 #else
462 #FORTRAN_MODULES = \
463 # LB_USER_CONST.mod \
464 # ZOLTAN_TYPES.mod \
465 # ZOLTAN.mod \
466 # ZOLTAN_USER_DATA.mod
467 #endif
468\end{lstlisting}
469
470Delete lines and leading \# characters appropriately so you end up with the above replaced by:
471
472\begin{lstlisting}[language=bash]
473 FORTRAN_MODULES = \
474 lb_user_const.mod \
475 zoltan_types.mod \
476 zoltan.mod \
477 zoltan_user_data.mod
478\end{lstlisting}
479
480If you are using gcc 4.7.2 or later you will need to make some small
481modifications to the source of Zoltan 3.6, as per the bug reported at
482\url{https://bugs.launchpad.net/fluidity/+bug/1101906}, replacing the file
483\lstinline[language=bash]+<source-root>/src/fort/set_hiermethod.fn+ with the
484new version downloaded from the bug report (
485\url{https://bugs.launchpad.net/fluidity/+bug/1101906/+attachment/3489641/+files/set_hiermethod.fn}
486).
487
488Without this fix in place, a build-time error will be encountered.
489
490Make a build directory and change into it:
491604
492\begin{lstlisting}[language=bash]605\begin{lstlisting}[language=bash]
493 mkdir Zoltan-build/606 mkdir Zoltan-build/
@@ -510,7 +623,7 @@
510line:623line:
511624
512\begin{lstlisting}[language=bash]625\begin{lstlisting}[language=bash]
513 ../Zoltan_v3.6/configure x86_64-linux-gnu --prefix=$WORKING/fluidity626 ../Zoltan_v3.8/configure x86_64-linux-gnu --prefix=$WORKING/fluidity
514 --enable-mpi --with-mpi-compilers --with-parmetis627 --enable-mpi --with-mpi-compilers --with-parmetis
515 --enable-f90interface --disable-examples628 --enable-f90interface --disable-examples
516 --enable-zoltan-cppdriver --with-parmetis-libdir=$WORKING/fluidity/lib629 --enable-zoltan-cppdriver --with-parmetis-libdir=$WORKING/fluidity/lib
@@ -527,16 +640,16 @@
527Python is widely used within \fluidity for user-defined functions and for640Python is widely used within \fluidity for user-defined functions and for
528diagnostic tools and problem setup, and currently tested up to Python version641diagnostic tools and problem setup, and currently tested up to Python version
5292.7. Earlier Python version may be suitable for use but may lack later6422.7. Earlier Python version may be suitable for use but may lack later
530functionality. Python extensions required are: setuptools for \fluidity builds,643functionality. \fluidity is not yet tested with Python3. Python extensions
531Python-4suite and Python-XML for options file parsing, and NumPy for custom644required are: setuptools for \fluidity builds, Python-4suite and Python-XML for
532function use within \fluidity.645options file parsing, and NumPy for custom function use within \fluidity.
533646
534If you do not have a working version of Python it can be built from source. 647If you do not have a working version of Python it can be built from source.
535648
536\subsubsection{Readline}649\subsubsection{Readline}
537\label{sec:required_libraries_python_readline}\index{Python!readline}650\label{sec:required_libraries_python_readline}\index{Python!readline}
538651
539Readline (tested version 6.2) is not strictly needed for Python to build but is652Readline (tested version 6.3) is not strictly needed for Python to build but is
540very handy if you want to make use of things like Python command history.653very handy if you want to make use of things like Python command history.
541Download readline from \url{http://ftp.gnu.org/pub/gnu/readline/} and then add654Download readline from \url{http://ftp.gnu.org/pub/gnu/readline/} and then add
542-fPIC to CFLAGS and FFLAGS for the duration of this build with:655-fPIC to CFLAGS and FFLAGS for the duration of this build with:
@@ -573,7 +686,7 @@
573\subsubsection{NumPy}686\subsubsection{NumPy}
574\label{sec:required_libraries_python_numpy}\index{Python!numpy}687\label{sec:required_libraries_python_numpy}\index{Python!numpy}
575688
576NumPy (tested version 1.7.1) can be downloaded as a compressed tarball from689NumPy (tested version 1.8.1) can be downloaded as a compressed tarball from
577\url{https://pypi.python.org/pypi/numpy} and after unsetting CFLAGS and690\url{https://pypi.python.org/pypi/numpy} and after unsetting CFLAGS and
578LDFLAGS:691LDFLAGS:
579692
@@ -697,6 +810,35 @@
697810
698Finally, run the standard make and install.811Finally, run the standard make and install.
699812
813\subsection{GMSH}
814\label{sec:required_libraries_gmsh}\index{gmsh!installing}
815
816GMSH is strongly recommended for mesh conversion and creation and is tested
817with version 2.8.4. It can be downloaded from the 'source' link at
818\url{http://geuz.org/gmsh/#Download}.
819
820Uncompress the downloaded tarball, then make a build directory and change into
821it:
822
823\begin{lstlisting}[language=bash]
824 mkdir gmsh-build/
825 cd gmsh-build/
826\end{lstlisting}
827
828From this build directory (assuming it's in the same location as the
829uncompressed source), run:
830
831\begin{lstlisting}[language=bash]
832 ccmake -i ../gmsh-2.8.4-source
833\end{lstlisting}
834
835Press 'c' to configure, then when that completes leave all options at defaults
836and press 'c' a second time to configure again, then when that completes press
837'g' to generate a configuration and exit. If at any point you end up in a help
838screen, press 'e' to exit it.
839
840Finally, run the standard make and install.
841
700\subsection{Supporting Libraries}842\subsection{Supporting Libraries}
701\label{sec:required_libraries_supporting}843\label{sec:required_libraries_supporting}
702844
703845
=== modified file 'manual/getting_started.tex'
--- manual/getting_started.tex 2013-09-23 20:07:28 +0000
+++ manual/getting_started.tex 2014-04-17 13:06:05 +0000
@@ -13,25 +13,25 @@
13\subsection{Overview}13\subsection{Overview}
14\label{sec:obtaining_fluidity_overview}14\label{sec:obtaining_fluidity_overview}
1515
16\fluidity\ is available both as precompiled binaries for Ubuntu Linux version16\fluidity\ is available both as precompiled binaries for a number of major,
1712.04 (Precise) and newer, and as source code available via bzr (bazaar) or as17recent Linux distributions and as source code available via bzr (bazaar) or as
18gzipped tarballs. Which method you use to obtain \fluidity\ depends primarily on18gzipped tarballs. Which method you use to obtain \fluidity\ depends primarily
19whether you use Ubuntu Linux and whether you wish to modify the \fluidity\19on whether you use a recent Linux distribution and whether you wish to modify
20source code. 20the \fluidity\ source code.
2121
22\fluidity\ generally attempts to support any given release of Ubuntu for 1822\fluidity\ attempts to support as many major Linux platforms based on recent
23months from the point of release.23compilers as possible. This currently includes Ubuntu versions 12.04, 12.10,
242413.10, and 14.04, Red Hat Enterprise Linux version 6 and its derivatives
25Users who run Ubuntu Linux and who have no need to change the source code will25(including CentOS and Scientific Linux), Fedora 19, and OpenSuSE 12.3. Fedora
26probably wish to use binary packaged \fluidity. Developers and users on2620 and OpenSuSE 13.1 are not yet supported, but are intended to be supported
27non-Ubuntu platforms will probably wish to build \fluidity\ from source.27soon.
2828
29\subsection{\fluidity\ binary packages for Ubuntu Linux}29\subsection{\fluidity\ binary packages for Ubuntu Linux}
3030
31\fluidity\ is distributed via the \lstinline[language=Bash]+fluidity-core+31\fluidity\ is distributed for all centrally-supported Ubuntu desktop systems
32launchpad package archive. If you run Ubuntu Linux version 12.04 (Precise) or32via the \lstinline[language=Bash]+fluidity-core+ launchpad package archive. If
33newer and have administrative privileges on33you have administrative privileges on your computer, you can add the package
34your computer, you can add the package archive to your system by typing:34archive to your system by typing:
3535
36\begin{lstlisting}[language=Bash]36\begin{lstlisting}[language=Bash]
37sudo apt-add-repository -y ppa:fluidity-core/ppa37sudo apt-add-repository -y ppa:fluidity-core/ppa
@@ -54,6 +54,78 @@
54tar -zxvf /usr/share/doc/fluidity/examples.tar.gz54tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
55\end{lstlisting}55\end{lstlisting}
5656
57\subsection{\fluidity\ binary packages for Red Hat Enterprise Linux}
58
59\fluidity\ is distributed for all systems based on Red Hat Enterprise 6 via a
60package repository which can be installed by users who have administrative
61privileges on their computer by typing:
62
63\begin{lstlisting}[language=Bash]
64sudo yum-config-manager --add-repo http://amcg.ese.ic.ac.uk/yum/rhel/6/fluidity.repo
65\end{lstlisting}
66
67Type your password if prompted. \fluidity\ can then be installed with:
68
69\begin{lstlisting}[language=Bash]
70sudo yum install fluidity
71\end{lstlisting}
72
73You now have \fluidity\ installed on your computer. Examples, as referred to in
74chapter \ref{chap:examples}, are available as a compressed tarball and can be
75expanded into a writeable directory with:
76
77\begin{lstlisting}[language=Bash]
78tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
79\end{lstlisting}
80
81\subsection{\fluidity\ binary packages for Fedora}
82
83\fluidity\ is distributed for Fedora 19 (but not yet for Fedora 20 due to VTK6
84incompatibility) via a package repository which can be installed by all users
85who have administrative privileges on their computer by typing:
86
87\begin{lstlisting}[language=Bash]
88sudo yum-config-manager --add-repo http://amcg.ese.ic.ac.uk/yum/fedora/19/fluidity.repo
89\end{lstlisting}
90
91Type your password if prompted. \fluidity\ can then be installed with:
92
93\begin{lstlisting}[language=Bash]
94sudo yum install fluidity
95\end{lstlisting}
96
97You now have \fluidity\ installed on your computer. Examples, as referred to in
98chapter \ref{chap:examples}, are available as a compressed tarball and can be
99expanded into a writeable directory with:
100
101\begin{lstlisting}[language=Bash]
102tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
103\end{lstlisting}
104
105\subsection{\fluidity\ binary packages for OpenSuSE}
106
107\fluidity\ is distributed for OpenSuSE 12.3 (but not yet for OpenSuSE 13.1 due to VTK6
108incompatibility) via a package repository which can be installed by all users
109who have administrative privileges on their computer by typing:
110
111\begin{lstlisting}[language=Bash]
112sudo zypper ar -f http://amcg.ese.ic.ac.uk/yast/opensuse/12.3/
113\end{lstlisting}
114
115Type your password if prompted. \fluidity\ can then be installed with:
116
117\begin{lstlisting}[language=Bash]
118sudo zypper install fluidity
119\end{lstlisting}
120
121You now have \fluidity\ installed on your computer. Examples, as referred to in
122chapter \ref{chap:examples}, are available as a compressed tarball and can be
123expanded into a writeable directory with:
124
125\begin{lstlisting}[language=Bash]
126tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
127\end{lstlisting}
128
57\subsection{\fluidity\ source packages}129\subsection{\fluidity\ source packages}
58130
59\fluidity\ is released as compressed source archives which can be downloaded131\fluidity\ is released as compressed source archives which can be downloaded
60132
=== added file 'manual/primer.tex'
--- manual/primer.tex 1970-01-01 00:00:00 +0000
+++ manual/primer.tex 2014-04-17 13:06:05 +0000
@@ -0,0 +1,4 @@
1\input{primer_ubuntu.tex}
2\input{primer_redhat.tex}
3\input{primer_fedora.tex}
4\input{primer_opensuse.tex}
05
=== added file 'manual/primer_fedora.tex'
--- manual/primer_fedora.tex 1970-01-01 00:00:00 +0000
+++ manual/primer_fedora.tex 2014-04-17 13:06:05 +0000
@@ -0,0 +1,54 @@
1\chapter*{Fluidity Primer for Fedora}
2% \pagenumbering{roman} \setcounter{page}{}
3
4Please check the \fluidity\ webpage at
5\href{http://amcg.ese.ic.ac.uk/Fluidity}{http://amcg.ese.ic.ac.uk/Fluidity}
6to ensure you are reading the most recent version of this manual. Methods for
7installing Fluidity may sometimes change, and instructions may be updated!
8
9This is a one-page primer for obtaining \fluidity\ and running a simple example. It assumes that:
10
11\begin{itemize}
12 \item You are running Fedora 19 (Fedora 20 is not yet supported)
13 \item You have administrative rights on your computer
14 \item You know how to run a terminal with a command prompt
15 \item You have a directory in which you can create files
16\end{itemize}
17
18Set up your computer to access the Fluidity repository by typing the following,
19all on one line:
20
21\begin{lstlisting}[language=Bash]
22sudo yum-config-manager --add-repo
23 http://amcg.ese.ic.ac.uk/yum/fedora/19/fluidity.repo
24\end{lstlisting}
25
26Type your password when prompted.
27
28Once this completes, update your system and install \fluidity along with its
29supporting software by typing:
30
31\begin{lstlisting}[language=Bash]
32sudo yum install fluidity
33\end{lstlisting}
34
35Now uncompress the packaged examples to a directory in which you can create
36files (in this example, \lstinline[language=Bash]+/tmp+) by typing:
37
38\begin{lstlisting}[language=Bash]
39cd /tmp
40tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
41\end{lstlisting}
42
43Change into an examples directory (top\_hat is suggested as a straightforward
44starter) and run the example:
45
46\begin{lstlisting}[language=Bash]
47cd examples/top_hat/
48make preprocess
49make run
50make postprocess
51\end{lstlisting}
52
53You have now run your first \fluidity model. Chapter \ref{chap:examples}
54describes this and the other examples provided with \fluidity.
055
=== added file 'manual/primer_opensuse.tex'
--- manual/primer_opensuse.tex 1970-01-01 00:00:00 +0000
+++ manual/primer_opensuse.tex 2014-04-17 13:06:05 +0000
@@ -0,0 +1,52 @@
1\chapter*{Fluidity Primer for OpenSuSE}
2% \pagenumbering{roman} \setcounter{page}{}
3
4Please check the \fluidity\ webpage at
5\href{http://amcg.ese.ic.ac.uk/Fluidity}{http://amcg.ese.ic.ac.uk/Fluidity}
6to ensure you are reading the most recent version of this manual. Methods for
7installing Fluidity may sometimes change, and instructions may be updated!
8
9This is a one-page primer for obtaining \fluidity\ and running a simple example. It assumes that:
10
11\begin{itemize}
12 \item You are running OpenSuSE 12.3 (OpenSuSE 13.1 is not yet supported)
13 \item You have administrative rights on your computer
14 \item You know how to run a terminal with a command prompt
15 \item You have a directory in which you can create files
16\end{itemize}
17
18Set up your computer to access the Fluidity repository by typing:
19
20\begin{lstlisting}[language=Bash]
21sudo zypper ar -f http://amcg.ese.ic.ac.uk/yast/opensuse/12.3/
22\end{lstlisting}
23
24Type your password when prompted.
25
26Once this completes, update your system and install \fluidity along with its
27supporting software by typing:
28
29\begin{lstlisting}[language=Bash]
30sudo zypper install fluidity
31\end{lstlisting}
32
33Now uncompress the packaged examples to a directory in which you can create
34files (in this example, \lstinline[language=Bash]+/tmp+) by typing:
35
36\begin{lstlisting}[language=Bash]
37cd /tmp
38tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
39\end{lstlisting}
40
41Change into an examples directory (top\_hat is suggested as a straightforward
42starter) and run the example:
43
44\begin{lstlisting}[language=Bash]
45cd examples/top_hat/
46make preprocess
47make run
48make postprocess
49\end{lstlisting}
50
51You have now run your first \fluidity model. Chapter \ref{chap:examples}
52describes this and the other examples provided with \fluidity.
053
=== added file 'manual/primer_redhat.tex'
--- manual/primer_redhat.tex 1970-01-01 00:00:00 +0000
+++ manual/primer_redhat.tex 2014-04-17 13:06:05 +0000
@@ -0,0 +1,62 @@
1\chapter*{Fluidity Primer for Red Hat Enterprise and derivatives}
2% \pagenumbering{roman} \setcounter{page}{}
3
4Please check the \fluidity\ webpage at
5\href{http://amcg.ese.ic.ac.uk/Fluidity}{http://amcg.ese.ic.ac.uk/Fluidity}
6to ensure you are reading the most recent version of this manual. Methods for
7installing Fluidity may sometimes change, and instructions may be updated!
8
9This is a one-page primer for obtaining \fluidity\ and running a simple example. It assumes that:
10
11\begin{itemize}
12 \item You are running Red Hat Enterprise Linux 6.x or a derivative such as CentOS 6.x
13 \item You have the EPEL repository enabled
14 \footnote{
15 If you do not already have the EPEL repository enabled on your workstation,
16 download the relevant 'epel-release' package from
17 \href{https://fedoraproject.org/wiki/EPEL}{https://fedoraproject.org/wiki/EPEL}
18 and install it on your workstation.
19 }
20 (and no other third-party repositories)
21 \item You have administrative rights on your computer
22 \item You know how to run a terminal with a command prompt
23 \item You have a directory in which you can create files
24\end{itemize}
25
26Set up your computer to access the Fluidity repository by typing the following,
27all on one line:
28
29\begin{lstlisting}[language=Bash]
30sudo yum-config-manager --add-repo
31 http://amcg.ese.ic.ac.uk/yum/rhel/6/fluidity.repo
32\end{lstlisting}
33
34Type your password when prompted.
35
36Once this completes, update your system and install \fluidity along with its
37supporting software by typing:
38
39\begin{lstlisting}[language=Bash]
40sudo yum install fluidity
41\end{lstlisting}
42
43Now uncompress the packaged examples to a directory in which you can create
44files (in this example, \lstinline[language=Bash]+/tmp+) by typing:
45
46\begin{lstlisting}[language=Bash]
47cd /tmp
48tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
49\end{lstlisting}
50
51Change into an examples directory (top\_hat is suggested as a straightforward
52starter) and run the example:
53
54\begin{lstlisting}[language=Bash]
55cd examples/top_hat/
56make preprocess
57make run
58make postprocess
59\end{lstlisting}
60
61You have now run your first \fluidity model. Chapter \ref{chap:examples}
62describes this and the other examples provided with \fluidity.
063
=== renamed file 'manual/primer.tex' => 'manual/primer_ubuntu.tex'
--- manual/primer.tex 2011-11-07 17:57:08 +0000
+++ manual/primer_ubuntu.tex 2014-04-17 13:06:05 +0000
@@ -1,4 +1,4 @@
1\chapter*{Fluidity Primer}1\chapter*{Fluidity Primer for Ubuntu}
2% \pagenumbering{roman} \setcounter{page}{}2% \pagenumbering{roman} \setcounter{page}{}
33
4Please check the \fluidity\ webpage at4Please check the \fluidity\ webpage at
@@ -9,10 +9,13 @@
9This is a one-page primer for obtaining \fluidity\ and running a simple example. It assumes that:9This is a one-page primer for obtaining \fluidity\ and running a simple example. It assumes that:
1010
11\begin{itemize}11\begin{itemize}
12\item You are running Ubuntu Linux, release 10.10 (Maverick) or newer12 \item You are running a current version of Ubuntu Linux
13\item You have administrative rights on your computer13 \footnote{
14\item You know how to run a terminal with a command prompt14See \href{https://wiki.ubuntu.com/Releases}{https://wiki.ubuntu.com/Releases}
15\item You have a directory in which you can create files15 }, 12.04 or later
16 \item You have administrative rights on your computer
17 \item You know how to run a terminal with a command prompt
18 \item You have a directory in which you can create files
16\end{itemize}19\end{itemize}
1720
18Set up your computer to access the Fluidity repository by typing:21Set up your computer to access the Fluidity repository by typing: