arb finite volume solver
Dalton Harvie
New version 0.4 uploaded (19/4/13).
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 License (GPL). The copyright of arb is held by Dalton Harvie.
Some examples
A diffusion problem:
The image (right) shows the solution to the following diffusion problem solved over a 2D domain:
This set of equations is represented by the following in arb:
CELL_EQUATION <T transport>
   "-celldiv(<D>*facegrad(<T>))" ON <domain>
   # diffusion equation
FACE_EQUATION <T hole>
   "-<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
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.
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:
- A fortran compiler; the Intel compiler ifort or GNU compiler gfortran;
- The computer algebra system maxima;
- A sparse matrix linear solver: UMFPACK, pardiso (included with ifort) or a Harwell Subroutine Library routine; and
- The mesh generation and post-processing package gmsh.
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:
   liblapack-dev libblas-dev gmsh curl gnuplot
   paraview
wget http://www.chemeng.unimelb.edu.au/people/staff/
   daltonh/downloads/arb/code/latest.tar
tar -xf latest.tar
cd arb_*
./unpack
cd src/contributed/suitesparse/
make
cd ../../..
./arb
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.
Download
A tar file containing the latest arb source is here. Older versions can be found in this directory.
Citing
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 - I expect that the 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.
Publications
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.
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. URL http://www.sciencedirect.com/science/article/pii/S0927775712007224. 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.