Programs

Parallel flow solver

This contains two programs which share a number of functions. The first is a parallel mesh partitioner for Gmsh meshes and the second is an parallel incompressible flow solver. The flow solver is slow due to the poor usage of the pARMS library in the code, but could be readily improved, given the time. Gmsh 2.5.0 or greater is required for properly viewing the partitioned meshes and fields.

ubend

Decomposition of boundary and domain with ordered indices

The pre-processor partitions both boundary and domain elements so that PDEs can be solved over both regions. Also elements and vertices are re-indexed such that the indices are continuous on the boundary then on the domain.

ubend

Domain decomposition prior to computation

The flow through a duct, below, shows the pressure field in two of four partitions.

ubend

Flow through a duct using four partitions

Flow solver with adjoint

A serial incompressible flow solver including the Spalart-Allmaras turbulence model. This code has been used for testing shape optimization algorithms. If the reverse mode sensitivity code is generated, using TAPENADE v3.6, the objective functions (pressure loss, etc) can be computed w.r.t. the mesh vertex co-ordinates.

ubend

Flow and sensitivity of pressure loss w.r.t. surface vertices

Spray solver

An incompressible two-phase isothermal flow and spray solver, implementing the spray by transporting moments of the underlying droplet size distribution. Collisions, break-up and interphase drag are accounted for. The underlying droplet size distribution is reconstructed using the Gamma distribution, though others are available (maximum entropy, cubic splines). The Ph.D Thesis details the algorithms implemented.

ubend

Spray SMR computed from underlying moments

Utilities

Gmsh

Generate meshes (2D/3D) and post-process field data.

TAPENADE

Generate tangent- and adjoint-linear derivative algorithms by source transformation.

Libraries

pARMS

Solve sparse linear systems. Only contains a gmres solver. (MPI)

ParMETIS

Partition graphs and meshes. (MPI)

ParMGridGen

Obtain a sequence of successive coarse grids. (MPI)