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:

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](<>/src/contributed/hsl_ma28d) directory. An interface to MA48D is under development (don’t hold your breath though!).

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.

arb

v0.70

manual

contents