arb finite volume solver

Dalton Harvie

New version 0.42 uploaded (17/1/14).

What is arb?

arb is a software package designed to solve arbitrary partial differential equations on unstructured meshes using an implicit finite volume method. The primary strengths of arb are:

  • All equations and variables are defined using `maths-type' expressions written by the user, and hence can be easily tailored to each application;
  • All equations are solved simultaneously using a Newton-Raphson method, so implicitly discretised equations can be solved efficiently; and
  • The unstructured mesh over which the equations are solved can be componsed of all sorts of convex polygons/polyhedrons. One, two and three dimensional domains can be used (simultaneously).

arb is open-source software that is released under the GNU General Public Licence (GPL). The copyright of arb is held by Dalton Harvie.

A temperature field resulting from a conduction problem
Above: Diffusion within a rectangle that contains an elliptical hole.

Some examples

A diffusion problem:

The image (right) shows the solution to the following diffusion problem solved over a 2D domain:

Diffusion equations

This set of equations is represented by the following in arb:

CELL_UNKNOWN <T> [K] "1.d0" # temperature
CELL_EQUATION <T transport>
   "-celldiv(<D>*facegrad(<T>))" ON <domain>
   # diffusion equation
   "-<D>*facegrad(<T>)-<hole flux>" ON <hole>
   # specified heat flux through hole surface
FACE_EQUATION <T walls> "<T>-1.0d0" ON <walls>
   # set temperature on walls
Four variables are defined: the unknown temperature field, and three equation variables. The equations are satisfied when the equation variables equal zero. Operators are used to express the vector equations using the finite volume method: For example, celldiv performs a divergence around a cell element and facegrad calculates the gradient of a quantity relative to a face element.

This problem is included with the arb distribution. You can browse the arb input file here.

Steady-state flow around a cylinder:

The two-dimensional flow around a cylinder is a CFD benchmark test problem. Here the Reynolds number based on the cylinder diameter and maximum velocity is 20, producing steady-state results.
The pressure field around a cylinder The pressure field around a cylinder The pressure field around a cylinder
Above: The steady-state flow around a cylinder at Re=20. The cell-centred pressure field, cell-centred velocity vectors (superimposed on the pressure field) and face-centred stress (Von-Mises) are shown.

This problem is also included with the arb distribution. You can browse the arb input file here.

What is needed to run arb?

In terms of coding content arb consists of fortran 95, perl and shell scripts. arb requires a UNIX type environment to run, and has been tested on both the Apple OsX and ubuntu linux platforms.

arb depends on certain third party programs and libraries, including:

By combining gfortran with the UMFPACK sparse linear solver, arb can be run using freely available GPL licensed software.

Try it out

Getting up and running is straightforward.

On recent versions of ubuntu (tested on 10.04 and 12.04) the following commands will download all the necessary software, run a test simulation and visualise the results:

sudo apt-get install maxima maxima-share gfortran
   liblapack-dev libblas-dev gmsh curl gnuplot
   paraview valgrind
tar -xf latest.tar
cd arb_*
cd src/contributed/suitesparse/
cd ../../..
gmsh output/output.msh

Installation on OsX takes a bit more time and is detailed in the manual. The procedure is known to work on OsX 10.6 and previously I had it working on OsX 10.4.

Further details for both platforms can be found in the manual.


A tar file containing the latest arb source is here. Older versions can be found in this directory.


If you use arb to conduct research, please cite it using the publication given below. I am keen to hear of your experiences using arb and also of any feature requests that you have and bugs that you find - drop me an email with `arb' in the subject line.

Where is arb going?

arb is under active development, although updates to this website have not occurred regularly. Previously the major focus was on developing the language feature set - application of arb to different types of problems (in particular multiphase and non-Newtonian flows) will become the next development focus. For a summary of the development history and the roughly planned direction see this file.


   Joseph D. Berry, Malcolm R. Davidson, and Dalton J.E. Harvie. Electroviscous flow through a microfluidic T-junction. In Ninth International Conference on CFD in the Minerals and Process Industries, CSIRO, Melbourne, Australia, Dec 10th – 12th 2012a. Link.

   Joseph D. Berry, Andrew E. Foong, Cathy Lade, Edward Ross, Elina E. Faisal, Christian Biscombe, Malcolm R. Davidson, and Dalton J.E. Harvie. Electroviscous flow through microfluidic contractions, bends and junctions. In 10th International Symposium on Electrokinetic Phenomena, Tsuksuba, Japan, May 20th – 24th 2012b. Presentation.

   Christian J.C. Biscombe, Malcolm R. Davidson, and Dalton J.E. Harvie. Electrokinetic flow in parallel channels: Circuit modelling for microfluidics and membranes. Colloids and Surfaces A: Physicochemical and Engineering Aspects, 2012. ISSN 0927-7757. doi:10.1016/j.colsurfa.2012.10.037. In press.

   Davide Ciceri, Lachlan R. Mason, Dalton J. E. Harvie, Jilska M. Perera, and Geoffrey W. Stevens. Modelling of interfacial mass transfer in microfluidic solvent extraction Part II. Heterogeneous transport with reaction. Microfluid. Nanofluid., pages 1–12, 2012. doi:10.1007/s10404-012-1039-y. Article in press.

   Dalton J. E. Harvie. An implicit finite volume method for arbitrary transport equations. ANZIAM J. (CTAC2010), 52:C1126–C1145, March 2012. Link.

   Lachlan R. Mason, Davide Ciceri, Dalton J. E. Harvie, Jilska M. Perera, and Geoffrey W. Stevens. Modelling of interfacial mass transfer in microfluidic solvent extraction Part I. Heterogeneous transport. Microfluid. Nanofluid., pages 1–16, 2012. doi:10.1007/s10404-012-1038-z. Article in press.