Software dependencies
arb requires additional software (such as a fortran compiler, maxima, etc) to be installed on your computer to run. Hopefully this software was installed for you using the installation instructions in Getting started. However, if you have problems with installing any of the dependencies, or want to try something different to the install scripts, the information in this chapter may help.
Note that this information in this chapter hasn’t been updated for quite some time. At the time it was written there was no such thing as the `arb directory’ - instead, the source code was stored in the working directory of each run.
Maxima
Equation generation is performed using the Maxima Computer Algebra system. It is released under the GNU General Public License and is available for free. To check whether you have it installed already try typing
maxima
If the program is installed you will enter a symbolic maths environment. Then check that the command
load(f90)
finds these libraries, and then quit using
quit();
If you need to install it:
Installing maxima
on
ubuntu:
On ubuntu linux and the f90 package can be installed using
sudo apt-get install maxima maxima-share
Installing
maxima
on OsX using a binary package:
A precompiled version of maxima for the mac is available from sourceforge. This is a fastest way of getting things going. Download the package and copy the application Maxima.app to your directory as directed. To make it available from the command line place the maxima wrapper script somewhere in your path (for example in a bin directory).
Installing
maxima
on OsX using fink/macports:
On OsX maxima
can be installed using either
macports
or fink
package managers. For fink
enable the unstable branch and use
sudo fink install maxima
For macports replace fink
with port
in the
above. Compilation will take some time.
A fortran compiler and the blas/lapack libraries
Two different compilers have been tested with arb: ifort
(Intel) and gfortran
. The Intel Fortran
compiler ifort
is probably the faster of the two as
currently also supports OMP execution. It also includes the Intel Maths
Kernel library which itself includes the excellent Pardiso linear solver
routines (see pardiso below): however this
compiler is not free except on linux and even then, only under specific
non-commercial circumstances. The GNU compiler gfortran
is
an easier option to get going, and is freely available on both the OsX
and linux platforms. It does not include the Pardiso routines but can
instead be used with the open source UMFPACK routines (except for the
OMP caveat).
Compiler choice is made automatically when the script is run
(defaulting to ifort
if it exists, otherwise
gfortran
). These defaults can be overwritten with the
options --compiler-intel
or
--compiler-gnu
.
Installing ifort
:
The non-commercial download site for ifort on linux is here.
For OsX the compiler must be bought. Make sure you install both the
compiler and MKL (Math Kernel Libraries). ifort
versions of
11.1.069 and newer (including Composer XE) have been tested on both
linux (v12 and v13) and OsX (v12 only).
Installing gfortran
on ubuntu:
On ubuntu linux gfortran
and the lapack/blas libraries
can be installed using
sudo apt-get install gfortran liblapack-dev libblas-dev
gfortran
version 4.2.4 on ubuntu 8.04 doesn’t seem to
work on some computers (internal compiler error) whereas version 4.4.3
on ubuntu 10.04 does. The version on ubuntu 12.04 is fine too. On ubuntu
8.04 you could try downloading a newer binary version.
Installing
gfortran
on OsX using a binary package:
The easiest way to install an up-to-date version of
gfortran
is via a precompiled package. One that worked for
me is found here -
currently (23/2/11) this is version 4.6. Alternatively this hpc and this gcc site
gives information about other precompiled versions. Check that once
installed the gfortran
executable is in your path - that
is, typing gfortran
at the command line should find the
compiler. Version 4.5 of gfortran
should also work
fine.
Installing
gfortran
on OsX using fink/macports:
gfortran
can also be installed by the package managers
but there are some issues with this. gfortran
is included
as part of fink’s gcc packages (for example gcc45
) but it
will need to be installed as 64bit, otherwise there will be some
compatibility problems with UMFPACK (unless this is modified). With
macports it is also part of gcc but needs to be specified as a
variant:
sudo port install gcc46 +gfortran
Again, compilation will take some time. I have not tested this fully.
Pardiso
The pardiso sparse linear matrix solver is included as part of the Intel Math Kernel Library which is packaged with the Intel Fortran Compiler (see above).
If using the intel compiler then this solver will automatically become available (check the initial output when running to see if this has been found). There is currently no interface to use this solver external to the Intel Math Kernel library.
umfpack
The sparse linear solver UMFPACK is part of the suitesparse collection of sparse matrix routines written by Prof. Tim Davis. It is written in c and released under the GNU GPL.
Currently the packaged (macports
on OsX or ubuntu)
versions of UMFPACK are used. When this section of the manual was
originally written, UMFPACK was compiled from source code. Hence the
following information is out of date.
UMFPACK depends on METIS. METIS is freely available but not free distributable.
The installation process for the UMFPACK/METIS combination has been automated so that it can be easily used with arb. To install these packages and compile them in a form that is suitable for arb:
cd src/contributed/suitesparse make
The command will download version 3.6.0 of UMFPACK and version 4.0.3 of METIS (using curl - install on ubuntu using if you don’t have it already), and then compile these libraries using the gcc compiler. A wrapper script for using UMFPACK from fortran (included with UMFPACK) will also be compiled. The files will be placed in the src/contributed/suitesparse directory, so will not overwrite any alternative suitesparse or metis libraries already on your system. You need to have installed on your system to build these libraries.
If all goes well the following files will be placed in src/contributed/suitesparse to be used by arb:
libamd.a libcamd.a libccolamd.a libcholmod.a libcolamd.a libmetis.a libumfpack.a umf4_f77wrapper.o
All of these files are required for UMFPACK to successfully run.
You also need to have a version of the blas libraries available for
to use UMFPACK. On OsX these should already be installed as part of
Xcode (required for macports). On ubuntu linux they can be installed
using apt-get install libblas-dev
if they’re not already
present.
To remove the compiled libraries and files type
make clean
from the suitesparse
directory. This will leave only the
downloaded files (ready to be reused). To remove the suitesparse and
metis downloads as well, type
make clean_all
Note that UMFPACK library compilation is dependent on the type of machine architecture and the libraries will need to be remade if transferred from one machine to another - do a and then a again from within the directory.
arb has been tested with the following combinations of umfpack/suitesparse and metis:
UMFPACK.tar.gz 02-Jun-2010 11:46 and metis-4.0.tar.gz (4.0.1)
SuiteSparse-3.6.0.tar.gz and metis-4.0.tar.gz (4.0.3)
Perl
On ubuntu or OsX you should already have a version of perl installed.
hsl
An interface to the subroutine MA28D has been implemented. With the
availability of UMFPACK, there is no real reason to use this, except for
development. For more information see the
[hsl_ma28d](<
Numerical Recipes
These are an alternative to using some of the lapack routines. There is no reason to use these, except for development. For more information see the directory.
gmsh
While not integral to the arb code, the mesh and data format which arb uses is that developed for gmsh. Gmsh is a mesh element generator which can be run using scripts or via a graphical interface and can be used for post-processing (visualisation) too. Gmsh uses the GNU General Public Licence (GPL).
There is some great introductory material available on the gmsh website on the use of this program, particularly these online screencasts.
Installing
gmsh
on ubuntu 10.04/12.04:
sudo apt-get install gmsh
On earlier ubuntu versions the repository version is too old.
Installing
gmsh
on anything else or getting the latest version on
ubuntu:
Download a version from the gmsh website. Version 2.4 is the minimum required for arb - most importantly the msh file format produced needs to be 2.1 or greater (update, and not version 4).
paraview
arb
can write output files to the .vtk
format, used by (for example) ParaView. To install ParaView on ubuntu
use:
sudo apt-get install paraview
On the mac there are binaries available. Input of this file format is not supported.
tecplot
Tecplot is proprietary visualisation software. arb
can
output to its .dat
asci format, but not input from this
format.