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
1=== modified file 'manual/external_libraries.tex'
2--- manual/external_libraries.tex 2013-09-23 20:07:28 +0000
3+++ manual/external_libraries.tex 2014-04-17 13:06:05 +0000
4@@ -18,78 +18,230 @@
5 run:
6
7 \begin{itemize}
8-\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)
9+\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)
10 \item BLAS (tested netlib, ATLAS, MKL)
11 \item LAPACK (tested netlib, ATLAS, MKL)
12-\item MPI2 implementation (build tested OpenMPI version 1.6.5)
13-\item PETSc (build tested version 3.4.1, fully tested version 3.1p8)
14-\item ParMetis (build tested version 3.2)
15+\item MPI2 implementation (tested OpenMPI version 1.6.5)
16+\item PETSc (tested version 3.4.3)
17+\item ParMetis (tested version 3.2, 4.x not supported)
18 \item Python (build tested version 2.7.5)
19-\item NumPy (build tested version 1.7.1)
20-\item VTK (tested version 5.10.1)
21-\item Zoltan (build tested version 3.6)
22+\item NumPy (build tested version 1.8.1)
23+\item VTK (tested version 5.10.1, 6.x not supported)
24+\item Zoltan (build tested version 3.8)
25+\item GMSH (tested version 2.8.4)
26 \end{itemize}
27
28 \fluidity recommends also making available the following:
29
30 \begin{itemize}
31 \item Trang (tested version 20030619, any recent version should work)
32-\item NetCDF (tested version 4.0)
33-\item UDUnits (tested version 2.1.23)
34-\item Bazaar (tested version 2.4.0)
35-\item SciPy (tested version 0.11.0)
36-\item ARPACK (tested version 96)
37-\item XML2 (tested version 2.6)
38+\item NetCDF (tested version 4.1.3)
39+\item UDUnits (tested version 2.2.0)
40+\item Bazaar (tested version 2.6.0)
41+\item SciPy (tested version 0.13.3)
42+\item ARPACK (tested version 3.1.5)
43+\item XML2 (tested version 2.9.1)
44 \end{itemize}
45
46-\section{Installing required libraries on Debian or Ubuntu}
47-\label{sec:required_ḻibraries_debian}\index{libraries!installing on debian and ubuntu}
48-
49-By far the easiest way to obtain all the supporting libraries and other
50-software required to build and run \fluidity is to make use of the \fluidity
51-packages available from the Launchpad fluidity-core PPA. These are available
52-for as many Ubuntu versions as \fluidity currently supports; at the time of
53-writing, 10.10 (Maverick) and newer, though support for 10.10 will end as of
54-April 2012 when central Ubuntu support ends.
55-
56-\textbf{BE AWARE:} AMCG packages are provided for use at your own risk and
57-without warranty. You should ensure that any packages installed from external
58-repositories are not going to adversely affect your system before installing
59-them!
60-
61-To access the repository containing the \fluidity support packages, you will
62+\section{Installing required libraries on major Linux distributions}
63+\label{sec:required_ḻibraries_linux}\index{libraries!installing on linux}
64+
65+\fluidity comes pre-packages for many major Linux distributions, both as a set
66+of libraries for building the code and as a pre-built \fluidity binary package
67+for immediate use.
68+
69+\textbf{BE AWARE:} All packages from \fluidity repositories are provided for
70+use at your own risk and without warranty. You should ensure that any packages
71+installed from external repositories are not going to adversely affect your
72+system before installing them!
73+
74+\subsection{Installing on Ubuntu}
75+\label{sec:required_ḻibraries_Ubuntu}\index{libraries!installing on Ubuntu}
76+
77+\fluidity aims to fully support the latest Ubuntu LTS distribution at any given
78+time, to offer support for previous LTS distributions for as long as practical
79+within the official five-year Ubuntu support period, and to offer packages for
80+building and installing \fluidity on all other main Ubuntu releases still
81+listed as current on
82+\href{https://wiki.ubuntu.com/Releases}{https://wiki.ubuntu.com/Releases}
83+. A full testing program will be carried out on the latest LTS
84+distribution as a matter of \fluidity general policy, whilst testing on other
85+Ubuntu versions will be carried out as available resources permit.
86+
87+At the time of writing (April 2014), all current releases are supported bar
88+Ubuntu 10.10 LTS (lucid).
89+
90+Going forward, timely support for six-monthly Ubuntu releases is intended,
91+although the faster-moving nature of this target may mean that from time to
92+time there is a delay in releasing a full \fluidity package set. Users move
93+from the LTS to six-month releases at the price of being on a lower-priorty
94+platform as far as central \fluidity support and testing is concerned.
95+
96+To access the repository containing the \fluidity packages, you will
97 need to run:
98
99 \begin{lstlisting}[language=bash]
100 sudo apt-add-repository -y ppa:fluidity-core/ppa
101 \end{lstlisting}
102
103-You will then need to update your system and install the fluidity-dev package,
104-which depends on all the other software required for building \fluidity:
105+To develop or locally build \fluidity, you will then need to update your system
106+and install the fluidity-dev package, which depends on all the other software
107+required for building \fluidity:
108+
109
110 \begin{lstlisting}[language=bash]
111 sudo apt-get update
112 sudo apt-get install fluidity-dev
113 \end{lstlisting}
114
115-To benefit from the environment modules supplied from AMCG you may want to add
116-the following lines to your \lstinline[language=bash]+/etc/bash.bashrc+ file:
117-
118-\begin{lstlisting}[language=bash]
119-if [ -f /usr/share/Modules/init/bash ]; then
120- . /usr/share/Modules/init/bash
121-fi
122-\end{lstlisting}
123-
124-New bash shells should automatically inherit the modules environment now, and
125-you should be able to type:
126-
127-\begin{lstlisting}[language=bash]
128-module load petsc-gcc4
129-\end{lstlisting}
130-
131-to enable use of PETSc, required for building \fluidity.
132-
133+If you wish to install the \fluidity binary packages you can also run:
134+
135+\begin{lstlisting}[language=bash]
136+sudo apt-get install fluidity
137+\end{lstlisting}
138+
139+Note that the above is tested on a clean Ubuntu LTS install with no other PPAs
140+or other external repositories enabled; if you have other software sources
141+which may conflict with the core repositories and the \fluidity PPA then you
142+will need to contact your local technical support team in the case of package
143+conflicts or version mismatches.
144+
145+\subsection{Installing on Red Hat Enterprise and derivatives}
146+\label{sec:required_ḻibraries_redhat}\index{libraries!installing on redhat}
147+
148+\fluidity aims to fully support the latest Red Hat Enterprise Linux release at any given
149+time, and to offer support for previous distributions for as long as practical
150+within the official Red Hat support period. Development and testing is carried
151+out using the CentOS community rebuild of Red Hat Enterprise. Packages are also
152+sourced from the Extra Packages for Enterprise Linux (EPEL) repository,
153+maintained by Fedora.
154+
155+It is expected that the community rebuilds of Red Hat Enterprise Linux,
156+including CentOS and Scientific Linux, should be able to use the \fluidity Red
157+Hat package repositories.
158+
159+At the time of writing, Red Hat Enterprise Linux (Desktop) version 6.5 is the
160+supported and tested release, though it is expected that packages provided from
161+the \fluidity repository will work on most 6.x systems. Red Hat Enterprise 5.x
162+systems are not supported, as the provided compiler and python versions are too
163+old for building and testing \fluidity. When version 7 is released, support from
164+the \fluidity repositories is expected to be promptly provided as Fedora 19, on
165+which Red Hat Enterprise 7 is based, is already fully supported.
166+
167+The following methods assume that the EPEL repository is enabled on your
168+system. If this is not the case, follow instructions at
169+\url{https://fedoraproject.org/wiki/EPEL} to enable use of EPEL by installing
170+an 'epel-release' package. Note that this assumes no other third-party
171+repositories are enabled; if, for example, the rpmforge repository is enabled,
172+you may well encounter package versioning issues against EPEL and the Fluidity
173+repository.
174+
175+To access the repository containing the \fluidity packages, you will
176+need to run the following, typed all on one line:
177+
178+\begin{lstlisting}[language=bash]
179+sudo yum-config-manager --add-repo
180+ http://amcg.ese.ic.ac.uk/yum/rhel/6/fluidity.repo
181+\end{lstlisting}
182+
183+To develop or locally build \fluidity you will then need to install the
184+fluidity-dev package, which depends on all the other software required for
185+building \fluidity:
186+
187+\begin{lstlisting}[language=bash]
188+sudo yum install fluidity-dev
189+\end{lstlisting}
190+
191+If you wish to install the \fluidity binary packages you can also run:
192+
193+\begin{lstlisting}[language=bash]
194+sudo yum install fluidity
195+\end{lstlisting}
196+
197+Note that the above is tested on a clean CentOS 6.5 install with no other
198+external repositories enabled; if you have other software sources which may
199+conflict with the \fluidity, EPEL, or core repositories then you will need to
200+contact your local technical support team in the case of package conflicts or
201+version mismatches. Problems have been reported using the rpmforge repositories
202+alongside the \fluidity and EPEL repositories, for example.
203+
204+\subsection{Installing on Fedora}
205+\label{sec:required_ḻibraries_fedora}\index{libraries!installing on fedora}
206+
207+\fluidity aims to fully support all Fedora releases that are supported
208+centrally by the Fedora team, although the faster-moving target presented by
209+Fedora means that from time to time latest release may not be immediately or
210+fully supported.
211+
212+At the time of writing, Fedora 19 is fully supported and tested for \fluidity,
213+but Fedora 20 is not yet supported as \fluidity does not yet support building
214+with VTK6.
215+
216+To access the repository containing the \fluidity packages for Fedora 19, you
217+will need to run the following, typed all on one line:
218+
219+\begin{lstlisting}[language=bash]
220+sudo yum-config-manager --add-repo http://amcg.ese.ic.ac.uk/yum/fedora/19/fluidity.repo
221+\end{lstlisting}
222+
223+To develop or locally build \fluidity you will then need to install the
224+fluidity-dev package, which depends on all the other software required for
225+building \fluidity:
226+
227+\begin{lstlisting}[language=bash]
228+sudo yum install fluidity-dev
229+\end{lstlisting}
230+
231+If you wish to install the \fluidity binary packages you can also run:
232+
233+\begin{lstlisting}[language=bash]
234+sudo yum install fluidity
235+\end{lstlisting}
236+
237+Note that the above is tested on a clean Fedora 19 install with no other
238+external repositories enabled; if you have other software sources which may
239+conflict with the \fluidity or Fedora repositories then you will need to
240+contact your local technical support team in the case of package conflicts or
241+version mismatches.
242+
243+\subsection{Installing on OpenSuSE}
244+\label{sec:required_ḻibraries_opensuse}\index{libraries!installing on opensuse}
245+
246+\fluidity aims to fully support all OpenSuSE releases that are supported
247+centrally by the OpenSuSE team, for as long as they remain in support and are
248+realistic platforms on which \fluidity can be built.
249+
250+At the time of writing, OpenSuSE 12.3 is fully supported and tested for \fluidity,
251+but OpenSuSE 13.1 is not yet supported as \fluidity does not yet support building
252+with VTK6.
253+
254+To access the repository containing the \fluidity packages for OpenSuSE 12.3, you
255+will need to run:
256+
257+\begin{lstlisting}[language=bash]
258+sudo zypper ar -f http://amcg.ese.ic.ac.uk/yast/opensuse/12.3/
259+\end{lstlisting}
260+
261+To develop or locally build \fluidity you will then need to install the
262+fluidity-dev package, which depends on all the other software required for
263+building \fluidity:
264+
265+\begin{lstlisting}[language=bash]
266+sudo zypper install fluidity-dev
267+\end{lstlisting}
268+
269+If you wish to install the \fluidity binary packages you can also run:
270+
271+\begin{lstlisting}[language=bash]
272+sudo zypper install fluidity
273+\end{lstlisting}
274+
275+Note that the above is tested on a clean OpenSuSE 12.3 install with no other
276+external repositories enabled; if you have other software sources which may
277+conflict with the \fluidity or core OpenSuSE repositories then you will need to
278+contact your local technical support team in the case of package conflicts or
279+version mismatches.
280+
281 \section{Manual install of external libraries and software}
282 \label{sec:required_ḻibraries_manual_install}\index{libraries!installing externals from source}
283
284@@ -110,7 +262,7 @@
285 should be relatively tolerant of older versions, as long as they work and are
286 POSIX-compliant.
287
288-As a side-note, the gcc-multilib requirement for building gcc 4.7 appears to be
289+As a side-note, the gcc-multilib requirement for building gcc appears to be
290 the result of gcc failing to check for the existence of 32-bit headers at
291 configure time, and thus requiring the 32-bit compatibility libraries to be
292 installed on 64-bit systems. There may be a workaround for this of which the
293@@ -124,11 +276,12 @@
294 recommended that you ensure that your builds will use a compiler that is also
295 able to build \fluidity. If you do not, you may encounter problems when you try
296 to interface \fluidity with the libraries. At present, \fluidity is tested with
297-gcc/g++/gfortran versions 4.5-4.7 and the Intel compiler with version 11.1.073
298-and later versions of 11.1. Versions of 11.1 earlier than 11.1.073 contain bugs
299-that prevent building \fluidity, as do all other major and minor versions of
300-the Intel compiler. Bug reports have been filed with Intel to remedy this but
301-remain outstanding as of this document date (August 2013).
302+gcc/g++/gfortran versions 4.8 (and expected to behave reasonably with versions
303+4.6 and later) and the Intel compiler with version 11.1.073 and later versions
304+of 11.1. Versions of 11.1 earlier than 11.1.073 contain bugs that prevent
305+building \fluidity, as do all other major and minor versions of the Intel
306+compiler. Bug reports have been filed with Intel to remedy this but remain
307+outstanding as of this document date (March 2014).
308
309 \subsection{Build environment}
310 \label{sec:required_libraries_build_environment}
311@@ -171,7 +324,7 @@
312 \fluidity has been tested with gfortran $\geq$ 4.4 and Intel 11.1 for versions
313 $\geq$ 11.1.073. It is not supported for gfortran $\leq$ 4.3 or Intel $\leq$
314 11.1.073, and if using gfortran some features are not available except for
315-gfortran $\geq$ 4.5. Current testing is with gfortran 4.6, so whilst it is
316+gfortran $\geq$ 4.5. Current testing is with gfortran 4.8, so whilst it is
317 expected that 4.4 and 4.5 will function correctly, this is not guaranteed.
318
319 Unsupported compilers generally have incorrect Fortran 90 implementations for
320@@ -206,14 +359,13 @@
321 \subsubsection{GMP, MPFR, and MPC}
322 \label{sec:required_libraries_compilers_gmp_mpfr_mpc}
323
324-GMP (tested for \fluidity build compatibility with gmp-5.1.2, fully tested
325-gmp-4.3.2) MPFR (tested for \fluidity build compatibility with mpfr-3.1.2,
326-fully tested mpfr-3.1.0), and MPC (tested for \fluidity build compatibility
327-with mpc-1.0.1, fully tested mpc-0.9) are needed for the GCC 4.8 build if you
328-do not already have them. Download GMP from \url{http://gmplib.org/} and build
329-it in the source directory, appending
330-\lstinline[language=bash]+--build=x86_64-linux-gnu --enable-cxx+ to the
331-standard configure, then running the standard make and install.
332+GMP (tested version 5.1.3), MPFR (tested version 3.1.2), and MPC (tested
333+version 1.0.1) are needed for the GCC 4.8 build if you do not already have
334+them. Download GMP from \url{http://gmplib.org/} and build it in the source
335+directory, appending
336+\lstinline[language=bash]+--build=x86_64-linux-gnu --enable-cxx+
337+to the standard configure, then running the standard make and
338+install.
339
340 Once GMP has been installed, download MPFR from
341 \url{http://www.mpfr.org/mpfr-current/} and build it in the source directory,
342@@ -239,8 +391,7 @@
343 \subsubsection{GCC}
344 \label{sec:required_libraries_compilers_gcc}
345
346-GCC (tested for \fluidity build compatibility up to gcc-4.8.1, fully tested
347-gcc-4.6.3) can be downloaded from the UK mirror at
348+GCC (tested for \fluidity with version 4.8.2) can be downloaded from the UK mirror at
349 \url{http://gcc-uk.internet.bs/} Before the build, make sure that the GMP,
350 MPFR, and MPC libraries are on LD{\textunderscore}LIBRARY{\textunderscore}PATH
351 or the stage 1 configure will fail even if
352@@ -265,7 +416,7 @@
353 --prefix=$WORKING/fluidity --with-gmp=$WORKING/fluidity
354 --with-mpfr=$WORKING/fluidity --with-mpc=$WORKING/fluidity
355 --enable-checking=release --enable-languages=c,c++,fortran
356---disable-multilib --program-suffix=-4.8.1
357+--disable-multilib --program-suffix=-4.8.2
358 \end{lstlisting}
359
360 followed by the standard make and install. Note you may well want to change the
361@@ -276,11 +427,11 @@
362 environment variables, ie:
363
364 \begin{lstlisting}[language=bash]
365-export CC=gcc-4.8.1
366-export CXX=g++-4.8.1
367-export FC=gfortran-4.8.1
368-export F90=gfortran-4.8.1
369-export CPP=cpp-4.8.1
370+export CC=gcc-4.8.2
371+export CXX=g++-4.8.2
372+export FC=gfortran-4.8.2
373+export F90=gfortran-4.8.2
374+export CPP=cpp-4.8.2
375 \end{lstlisting}
376
377 (with suitable version changes if necessary), or if you prefer you could reset
378@@ -298,8 +449,7 @@
379 non-MPI code as it is assumed that serial runs will be precursors to large
380 parallel runs and will be built with MPI enabled for later use.
381
382-OpenMPI (tested for \fluidity build compatibility up to version 1.6.5, and
383-fully tested to 1.4.3) can be downloaded from
384+OpenMPI (tested version 1.6.5) can be downloaded from
385 \url{http://www.open-mpi.org/software/}. It is built in the source directory
386 with the standard configure, make, and install.
387
388@@ -376,8 +526,8 @@
389 \label{sec:required_libraries_numerical_parmetis}\index{ParMetis}
390
391 ParMetis (tested for \fluidity build compatibility with version 3.2.0, fully
392-tested with version 3.1.1, NOT tested with version 4.x) is required for mesh
393-partitioning and sparse matrix operations, and can be downloaded from
394+tested with version 3.1.1; \fluidity does NOT work correctly with version 4.x) is required for mesh
395+partitioning, and can be downloaded from
396 \url{http://glaros.dtc.umn.edu/gkhome/fsroot/sw/parmetis/OLD}
397
398 ParMetis is built in the source directory with:
399@@ -388,27 +538,22 @@
400 cp parmetis.h $WORKING/fluidity/include
401 \end{lstlisting}
402
403-Note that \fluidity is NOT currently tested with ParMETIS 4.0.0, and further
404-note that ParMETIS is subject to licensing conditions for commercial users.
405-Commercial users should contact the University of Minnesota's Office for
406-Technology Commercialization directly.
407-
408-\fluidity is in the process of transitioning away from using ParMETIS to avoid
409-this restrictive commercial licensing, and by release 4.2 should have an
410-alternative partitioner which is free to use for commercial partners.
411+Note that \fluidity is NOT currently tested with ParMETIS 4.0.0 and it is
412+expected that \fluidity will not work correctly with versions higher than 3.2.
413
414 \subsubsection{PETSc}
415 \label{sec:required_libraries_numerical_petsc}\index{PETSc}
416
417 If you do not already have it installed, you will need Cmake (tested for
418-version 2.8.11.2, download from
419+version 2.8.12, download from
420 \url{http://www.cmake.org/cmake/resources/software.html}) for the PETSc Metis
421 build. Cmake is built in its source directory with the standard configure,
422 make, and install.
423
424-PETSc (currently tested for \fluidity build compatibility with version 3.3-p7,
425-fully tested with version 3.1p8, not tested with version 3.4.x) is required for
426-efficient solver methods within \fluidity. PETSc can be downloaded from
427+PETSc is required for
428+efficient solver methods within \fluidity. Currently,
429+\fluidity supports PETSc versions 3.1 to 3.4, using version 3.4
430+is recommended. It can be downloaded from
431 \url{http://www.mcs.anl.gov/petsc/download/} and built in the source directory.
432 First, set PETSC{\textunderscore}DIR in the source directory:
433
434@@ -419,13 +564,21 @@
435 Then configure with the following all on one line:
436
437 \begin{lstlisting}[language=bash]
438-./configure --prefix=$WORKING/fluidity --with-mpi-shared=1
439- --with-shared-libraries=1 --with-debugging=0 --with-parmetis=1
440- --download-parmetis=1 --with-hypre=1 --download-hypre=1
441- --with-prometheus=1 --download-prometheus=1 --with-metis=1
442- --download-metis=1 --with-fortran-interfaces=1
443+./configure --prefix=$WORKING/fluidity
444+ --download-fblaslapack=1 --download-blacs=1 --download-scalapack=1
445+ --download-ptscotch=1 --download-mumps=1 --download-hypre=1
446+ --download-suitesparse=1 --download-ml=1 --with-fortran-interfaces=1
447 \end{lstlisting}
448
449+This set of configuration options provides you with the additional
450+multigrid preconditioners hypre and ml, and direct solvers umfpack
451+from SuiteSparse and mumps. These are not strictly necessary to run
452+Fluidity, but have been found useful in different applications. NOTE:
453+you should NOT build PETSc with parmetis
454+(so no --download/with-parmetis=1) as the version used by PETSc
455+(parmetis 4.x) leads to incorrect behaviour in Fluidity. Therefore, the above
456+configuration options uses ptscotch as an alternative.
457+
458 When configure completes, it should supply you with a 'make all' command line,
459 including various configuration variables. Copy and paste this into your
460 terminal and run it. Once it completes, it will supply you with a further 'make
461@@ -444,50 +597,10 @@
462 \subsubsection{Zoltan}
463 \label{sec:required_libraries_numerical_zoltan}\index{Zoltan}
464
465-Zoltan (fully tested with version 3.6) is available as a tarball from
466-\url{http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions/zoltan_distrib_v3.6.tar.gz}
467-
468-After uncompressing that file, you will fix a known issue with Zoltan Fortran
469-modules by editing the file Zoltan{\textunderscore}v3.6/src/Makefile.in: at the
470-end of that file and finding lines looking like:
471-
472-\begin{lstlisting}[language=bash]
473- #if F90_MODULE_LOWERCASE
474- #FORTRAN_MODULES = \
475- # lb_user_const.mod \
476- # zoltan_types.mod \
477- # zoltan.mod \
478- # zoltan_user_data.mod
479- #else
480- #FORTRAN_MODULES = \
481- # LB_USER_CONST.mod \
482- # ZOLTAN_TYPES.mod \
483- # ZOLTAN.mod \
484- # ZOLTAN_USER_DATA.mod
485- #endif
486-\end{lstlisting}
487-
488-Delete lines and leading \# characters appropriately so you end up with the above replaced by:
489-
490-\begin{lstlisting}[language=bash]
491- FORTRAN_MODULES = \
492- lb_user_const.mod \
493- zoltan_types.mod \
494- zoltan.mod \
495- zoltan_user_data.mod
496-\end{lstlisting}
497-
498-If you are using gcc 4.7.2 or later you will need to make some small
499-modifications to the source of Zoltan 3.6, as per the bug reported at
500-\url{https://bugs.launchpad.net/fluidity/+bug/1101906}, replacing the file
501-\lstinline[language=bash]+<source-root>/src/fort/set_hiermethod.fn+ with the
502-new version downloaded from the bug report (
503-\url{https://bugs.launchpad.net/fluidity/+bug/1101906/+attachment/3489641/+files/set_hiermethod.fn}
504-).
505-
506-Without this fix in place, a build-time error will be encountered.
507-
508-Make a build directory and change into it:
509+Zoltan (fully tested with version 3.8) is available as a tarball from
510+\url{http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions/zoltan_distrib_v3.8.tar.gz}
511+
512+Uncompress the tarball, then make a build directory and change into it:
513
514 \begin{lstlisting}[language=bash]
515 mkdir Zoltan-build/
516@@ -510,7 +623,7 @@
517 line:
518
519 \begin{lstlisting}[language=bash]
520- ../Zoltan_v3.6/configure x86_64-linux-gnu --prefix=$WORKING/fluidity
521+ ../Zoltan_v3.8/configure x86_64-linux-gnu --prefix=$WORKING/fluidity
522 --enable-mpi --with-mpi-compilers --with-parmetis
523 --enable-f90interface --disable-examples
524 --enable-zoltan-cppdriver --with-parmetis-libdir=$WORKING/fluidity/lib
525@@ -527,16 +640,16 @@
526 Python is widely used within \fluidity for user-defined functions and for
527 diagnostic tools and problem setup, and currently tested up to Python version
528 2.7. Earlier Python version may be suitable for use but may lack later
529-functionality. Python extensions required are: setuptools for \fluidity builds,
530-Python-4suite and Python-XML for options file parsing, and NumPy for custom
531-function use within \fluidity.
532+functionality. \fluidity is not yet tested with Python3. Python extensions
533+required are: setuptools for \fluidity builds, Python-4suite and Python-XML for
534+options file parsing, and NumPy for custom function use within \fluidity.
535
536 If you do not have a working version of Python it can be built from source.
537
538 \subsubsection{Readline}
539 \label{sec:required_libraries_python_readline}\index{Python!readline}
540
541-Readline (tested version 6.2) is not strictly needed for Python to build but is
542+Readline (tested version 6.3) is not strictly needed for Python to build but is
543 very handy if you want to make use of things like Python command history.
544 Download readline from \url{http://ftp.gnu.org/pub/gnu/readline/} and then add
545 -fPIC to CFLAGS and FFLAGS for the duration of this build with:
546@@ -573,7 +686,7 @@
547 \subsubsection{NumPy}
548 \label{sec:required_libraries_python_numpy}\index{Python!numpy}
549
550-NumPy (tested version 1.7.1) can be downloaded as a compressed tarball from
551+NumPy (tested version 1.8.1) can be downloaded as a compressed tarball from
552 \url{https://pypi.python.org/pypi/numpy} and after unsetting CFLAGS and
553 LDFLAGS:
554
555@@ -697,6 +810,35 @@
556
557 Finally, run the standard make and install.
558
559+\subsection{GMSH}
560+\label{sec:required_libraries_gmsh}\index{gmsh!installing}
561+
562+GMSH is strongly recommended for mesh conversion and creation and is tested
563+with version 2.8.4. It can be downloaded from the 'source' link at
564+\url{http://geuz.org/gmsh/#Download}.
565+
566+Uncompress the downloaded tarball, then make a build directory and change into
567+it:
568+
569+\begin{lstlisting}[language=bash]
570+ mkdir gmsh-build/
571+ cd gmsh-build/
572+\end{lstlisting}
573+
574+From this build directory (assuming it's in the same location as the
575+uncompressed source), run:
576+
577+\begin{lstlisting}[language=bash]
578+ ccmake -i ../gmsh-2.8.4-source
579+\end{lstlisting}
580+
581+Press 'c' to configure, then when that completes leave all options at defaults
582+and press 'c' a second time to configure again, then when that completes press
583+'g' to generate a configuration and exit. If at any point you end up in a help
584+screen, press 'e' to exit it.
585+
586+Finally, run the standard make and install.
587+
588 \subsection{Supporting Libraries}
589 \label{sec:required_libraries_supporting}
590
591
592=== modified file 'manual/getting_started.tex'
593--- manual/getting_started.tex 2013-09-23 20:07:28 +0000
594+++ manual/getting_started.tex 2014-04-17 13:06:05 +0000
595@@ -13,25 +13,25 @@
596 \subsection{Overview}
597 \label{sec:obtaining_fluidity_overview}
598
599-\fluidity\ is available both as precompiled binaries for Ubuntu Linux version
600-12.04 (Precise) and newer, and as source code available via bzr (bazaar) or as
601-gzipped tarballs. Which method you use to obtain \fluidity\ depends primarily on
602-whether you use Ubuntu Linux and whether you wish to modify the \fluidity\
603-source code.
604-
605-\fluidity\ generally attempts to support any given release of Ubuntu for 18
606-months from the point of release.
607-
608-Users who run Ubuntu Linux and who have no need to change the source code will
609-probably wish to use binary packaged \fluidity. Developers and users on
610-non-Ubuntu platforms will probably wish to build \fluidity\ from source.
611+\fluidity\ is available both as precompiled binaries for a number of major,
612+recent Linux distributions and as source code available via bzr (bazaar) or as
613+gzipped tarballs. Which method you use to obtain \fluidity\ depends primarily
614+on whether you use a recent Linux distribution and whether you wish to modify
615+the \fluidity\ source code.
616+
617+\fluidity\ attempts to support as many major Linux platforms based on recent
618+compilers as possible. This currently includes Ubuntu versions 12.04, 12.10,
619+13.10, and 14.04, Red Hat Enterprise Linux version 6 and its derivatives
620+(including CentOS and Scientific Linux), Fedora 19, and OpenSuSE 12.3. Fedora
621+20 and OpenSuSE 13.1 are not yet supported, but are intended to be supported
622+soon.
623
624 \subsection{\fluidity\ binary packages for Ubuntu Linux}
625
626-\fluidity\ is distributed via the \lstinline[language=Bash]+fluidity-core+
627-launchpad package archive. If you run Ubuntu Linux version 12.04 (Precise) or
628-newer and have administrative privileges on
629-your computer, you can add the package archive to your system by typing:
630+\fluidity\ is distributed for all centrally-supported Ubuntu desktop systems
631+via the \lstinline[language=Bash]+fluidity-core+ launchpad package archive. If
632+you have administrative privileges on your computer, you can add the package
633+archive to your system by typing:
634
635 \begin{lstlisting}[language=Bash]
636 sudo apt-add-repository -y ppa:fluidity-core/ppa
637@@ -54,6 +54,78 @@
638 tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
639 \end{lstlisting}
640
641+\subsection{\fluidity\ binary packages for Red Hat Enterprise Linux}
642+
643+\fluidity\ is distributed for all systems based on Red Hat Enterprise 6 via a
644+package repository which can be installed by users who have administrative
645+privileges on their computer by typing:
646+
647+\begin{lstlisting}[language=Bash]
648+sudo yum-config-manager --add-repo http://amcg.ese.ic.ac.uk/yum/rhel/6/fluidity.repo
649+\end{lstlisting}
650+
651+Type your password if prompted. \fluidity\ can then be installed with:
652+
653+\begin{lstlisting}[language=Bash]
654+sudo yum install fluidity
655+\end{lstlisting}
656+
657+You now have \fluidity\ installed on your computer. Examples, as referred to in
658+chapter \ref{chap:examples}, are available as a compressed tarball and can be
659+expanded into a writeable directory with:
660+
661+\begin{lstlisting}[language=Bash]
662+tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
663+\end{lstlisting}
664+
665+\subsection{\fluidity\ binary packages for Fedora}
666+
667+\fluidity\ is distributed for Fedora 19 (but not yet for Fedora 20 due to VTK6
668+incompatibility) via a package repository which can be installed by all users
669+who have administrative privileges on their computer by typing:
670+
671+\begin{lstlisting}[language=Bash]
672+sudo yum-config-manager --add-repo http://amcg.ese.ic.ac.uk/yum/fedora/19/fluidity.repo
673+\end{lstlisting}
674+
675+Type your password if prompted. \fluidity\ can then be installed with:
676+
677+\begin{lstlisting}[language=Bash]
678+sudo yum install fluidity
679+\end{lstlisting}
680+
681+You now have \fluidity\ installed on your computer. Examples, as referred to in
682+chapter \ref{chap:examples}, are available as a compressed tarball and can be
683+expanded into a writeable directory with:
684+
685+\begin{lstlisting}[language=Bash]
686+tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
687+\end{lstlisting}
688+
689+\subsection{\fluidity\ binary packages for OpenSuSE}
690+
691+\fluidity\ is distributed for OpenSuSE 12.3 (but not yet for OpenSuSE 13.1 due to VTK6
692+incompatibility) via a package repository which can be installed by all users
693+who have administrative privileges on their computer by typing:
694+
695+\begin{lstlisting}[language=Bash]
696+sudo zypper ar -f http://amcg.ese.ic.ac.uk/yast/opensuse/12.3/
697+\end{lstlisting}
698+
699+Type your password if prompted. \fluidity\ can then be installed with:
700+
701+\begin{lstlisting}[language=Bash]
702+sudo zypper install fluidity
703+\end{lstlisting}
704+
705+You now have \fluidity\ installed on your computer. Examples, as referred to in
706+chapter \ref{chap:examples}, are available as a compressed tarball and can be
707+expanded into a writeable directory with:
708+
709+\begin{lstlisting}[language=Bash]
710+tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
711+\end{lstlisting}
712+
713 \subsection{\fluidity\ source packages}
714
715 \fluidity\ is released as compressed source archives which can be downloaded
716
717=== added file 'manual/primer.tex'
718--- manual/primer.tex 1970-01-01 00:00:00 +0000
719+++ manual/primer.tex 2014-04-17 13:06:05 +0000
720@@ -0,0 +1,4 @@
721+\input{primer_ubuntu.tex}
722+\input{primer_redhat.tex}
723+\input{primer_fedora.tex}
724+\input{primer_opensuse.tex}
725
726=== added file 'manual/primer_fedora.tex'
727--- manual/primer_fedora.tex 1970-01-01 00:00:00 +0000
728+++ manual/primer_fedora.tex 2014-04-17 13:06:05 +0000
729@@ -0,0 +1,54 @@
730+\chapter*{Fluidity Primer for Fedora}
731+% \pagenumbering{roman} \setcounter{page}{}
732+
733+Please check the \fluidity\ webpage at
734+\href{http://amcg.ese.ic.ac.uk/Fluidity}{http://amcg.ese.ic.ac.uk/Fluidity}
735+to ensure you are reading the most recent version of this manual. Methods for
736+installing Fluidity may sometimes change, and instructions may be updated!
737+
738+This is a one-page primer for obtaining \fluidity\ and running a simple example. It assumes that:
739+
740+\begin{itemize}
741+ \item You are running Fedora 19 (Fedora 20 is not yet supported)
742+ \item You have administrative rights on your computer
743+ \item You know how to run a terminal with a command prompt
744+ \item You have a directory in which you can create files
745+\end{itemize}
746+
747+Set up your computer to access the Fluidity repository by typing the following,
748+all on one line:
749+
750+\begin{lstlisting}[language=Bash]
751+sudo yum-config-manager --add-repo
752+ http://amcg.ese.ic.ac.uk/yum/fedora/19/fluidity.repo
753+\end{lstlisting}
754+
755+Type your password when prompted.
756+
757+Once this completes, update your system and install \fluidity along with its
758+supporting software by typing:
759+
760+\begin{lstlisting}[language=Bash]
761+sudo yum install fluidity
762+\end{lstlisting}
763+
764+Now uncompress the packaged examples to a directory in which you can create
765+files (in this example, \lstinline[language=Bash]+/tmp+) by typing:
766+
767+\begin{lstlisting}[language=Bash]
768+cd /tmp
769+tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
770+\end{lstlisting}
771+
772+Change into an examples directory (top\_hat is suggested as a straightforward
773+starter) and run the example:
774+
775+\begin{lstlisting}[language=Bash]
776+cd examples/top_hat/
777+make preprocess
778+make run
779+make postprocess
780+\end{lstlisting}
781+
782+You have now run your first \fluidity model. Chapter \ref{chap:examples}
783+describes this and the other examples provided with \fluidity.
784
785=== added file 'manual/primer_opensuse.tex'
786--- manual/primer_opensuse.tex 1970-01-01 00:00:00 +0000
787+++ manual/primer_opensuse.tex 2014-04-17 13:06:05 +0000
788@@ -0,0 +1,52 @@
789+\chapter*{Fluidity Primer for OpenSuSE}
790+% \pagenumbering{roman} \setcounter{page}{}
791+
792+Please check the \fluidity\ webpage at
793+\href{http://amcg.ese.ic.ac.uk/Fluidity}{http://amcg.ese.ic.ac.uk/Fluidity}
794+to ensure you are reading the most recent version of this manual. Methods for
795+installing Fluidity may sometimes change, and instructions may be updated!
796+
797+This is a one-page primer for obtaining \fluidity\ and running a simple example. It assumes that:
798+
799+\begin{itemize}
800+ \item You are running OpenSuSE 12.3 (OpenSuSE 13.1 is not yet supported)
801+ \item You have administrative rights on your computer
802+ \item You know how to run a terminal with a command prompt
803+ \item You have a directory in which you can create files
804+\end{itemize}
805+
806+Set up your computer to access the Fluidity repository by typing:
807+
808+\begin{lstlisting}[language=Bash]
809+sudo zypper ar -f http://amcg.ese.ic.ac.uk/yast/opensuse/12.3/
810+\end{lstlisting}
811+
812+Type your password when prompted.
813+
814+Once this completes, update your system and install \fluidity along with its
815+supporting software by typing:
816+
817+\begin{lstlisting}[language=Bash]
818+sudo zypper install fluidity
819+\end{lstlisting}
820+
821+Now uncompress the packaged examples to a directory in which you can create
822+files (in this example, \lstinline[language=Bash]+/tmp+) by typing:
823+
824+\begin{lstlisting}[language=Bash]
825+cd /tmp
826+tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
827+\end{lstlisting}
828+
829+Change into an examples directory (top\_hat is suggested as a straightforward
830+starter) and run the example:
831+
832+\begin{lstlisting}[language=Bash]
833+cd examples/top_hat/
834+make preprocess
835+make run
836+make postprocess
837+\end{lstlisting}
838+
839+You have now run your first \fluidity model. Chapter \ref{chap:examples}
840+describes this and the other examples provided with \fluidity.
841
842=== added file 'manual/primer_redhat.tex'
843--- manual/primer_redhat.tex 1970-01-01 00:00:00 +0000
844+++ manual/primer_redhat.tex 2014-04-17 13:06:05 +0000
845@@ -0,0 +1,62 @@
846+\chapter*{Fluidity Primer for Red Hat Enterprise and derivatives}
847+% \pagenumbering{roman} \setcounter{page}{}
848+
849+Please check the \fluidity\ webpage at
850+\href{http://amcg.ese.ic.ac.uk/Fluidity}{http://amcg.ese.ic.ac.uk/Fluidity}
851+to ensure you are reading the most recent version of this manual. Methods for
852+installing Fluidity may sometimes change, and instructions may be updated!
853+
854+This is a one-page primer for obtaining \fluidity\ and running a simple example. It assumes that:
855+
856+\begin{itemize}
857+ \item You are running Red Hat Enterprise Linux 6.x or a derivative such as CentOS 6.x
858+ \item You have the EPEL repository enabled
859+ \footnote{
860+ If you do not already have the EPEL repository enabled on your workstation,
861+ download the relevant 'epel-release' package from
862+ \href{https://fedoraproject.org/wiki/EPEL}{https://fedoraproject.org/wiki/EPEL}
863+ and install it on your workstation.
864+ }
865+ (and no other third-party repositories)
866+ \item You have administrative rights on your computer
867+ \item You know how to run a terminal with a command prompt
868+ \item You have a directory in which you can create files
869+\end{itemize}
870+
871+Set up your computer to access the Fluidity repository by typing the following,
872+all on one line:
873+
874+\begin{lstlisting}[language=Bash]
875+sudo yum-config-manager --add-repo
876+ http://amcg.ese.ic.ac.uk/yum/rhel/6/fluidity.repo
877+\end{lstlisting}
878+
879+Type your password when prompted.
880+
881+Once this completes, update your system and install \fluidity along with its
882+supporting software by typing:
883+
884+\begin{lstlisting}[language=Bash]
885+sudo yum install fluidity
886+\end{lstlisting}
887+
888+Now uncompress the packaged examples to a directory in which you can create
889+files (in this example, \lstinline[language=Bash]+/tmp+) by typing:
890+
891+\begin{lstlisting}[language=Bash]
892+cd /tmp
893+tar -zxvf /usr/share/doc/fluidity/examples.tar.gz
894+\end{lstlisting}
895+
896+Change into an examples directory (top\_hat is suggested as a straightforward
897+starter) and run the example:
898+
899+\begin{lstlisting}[language=Bash]
900+cd examples/top_hat/
901+make preprocess
902+make run
903+make postprocess
904+\end{lstlisting}
905+
906+You have now run your first \fluidity model. Chapter \ref{chap:examples}
907+describes this and the other examples provided with \fluidity.
908
909=== renamed file 'manual/primer.tex' => 'manual/primer_ubuntu.tex'
910--- manual/primer.tex 2011-11-07 17:57:08 +0000
911+++ manual/primer_ubuntu.tex 2014-04-17 13:06:05 +0000
912@@ -1,4 +1,4 @@
913-\chapter*{Fluidity Primer}
914+\chapter*{Fluidity Primer for Ubuntu}
915 % \pagenumbering{roman} \setcounter{page}{}
916
917 Please check the \fluidity\ webpage at
918@@ -9,10 +9,13 @@
919 This is a one-page primer for obtaining \fluidity\ and running a simple example. It assumes that:
920
921 \begin{itemize}
922-\item You are running Ubuntu Linux, release 10.10 (Maverick) or newer
923-\item You have administrative rights on your computer
924-\item You know how to run a terminal with a command prompt
925-\item You have a directory in which you can create files
926+ \item You are running a current version of Ubuntu Linux
927+ \footnote{
928+See \href{https://wiki.ubuntu.com/Releases}{https://wiki.ubuntu.com/Releases}
929+ }, 12.04 or later
930+ \item You have administrative rights on your computer
931+ \item You know how to run a terminal with a command prompt
932+ \item You have a directory in which you can create files
933 \end{itemize}
934
935 Set up your computer to access the Fluidity repository by typing: