The
FlowGrid system features a state-of-the art CFD solver as a
backend. The CFD software have been designed using OO techniques
and written in C++. Object oriented techniques enable the creation
of data structures and very efficient interfaces between the
components.

The solver uses unstructured meshes with the finite volume collocated
approach. The control volumes can have arbitrary number of faces
and points. The combined ‘face based’ and ‘volume
based’ pointer system provides very efficient way of treating
mesh related computations and solving finite volume equations.
The solver uses a segregated iteration procedure to solve Navier-Stokes
equations. The pressure-velocity coupling is treated using a
modified SIMPLE method and extended on the arbitrary unstructured
meshes by the Rhie and Chow interpolation. The arbitrary connectivity
between control volumes requires appropriate linear equation
solvers. A highly efficient library of linear equation solvers
has been developed to solve the finite volume equations on the
arbitrary unstructured meshes. The library includes ILU (incomplete
factorisation) linear solver and variety of conjugate gradient
and conjugate residual based accelerators with ILU preconditioning.
It should be noted that the structured meshes are handled using
simplified and more efficient implementation. The algebraic
multigrid solver with ILU smoother is also available for meshes
with structured topologies. The use of unstructured meshes significantly
simplified the implementation of parallel computations via domain
decomposition. The component structure and clean interfaces
between components also suits functional decomposition of the
software so they can run efficiently on ‘parallel distributed
systems’. Such decomposition has been carried out in this
Project using a Globus-enabled implementation of MPI.