Parallel Multi-Block Solver

Most effort is being focused on the development of 2D and 3D codes which feature: implicit time stepping, preconditioned conjugate gradient type linear solvers, fast convergence through approximate Jacobians, approximate Riemann solvers for the convective discretisation, k-w turbulence model, multi-block for complex geometries, efficient parallel solution, pseudo time and moving meshes for unsteady flows.

Introduction

The development of the flow solver PMB is the main effort of the CFD group at present. The PMB project draws on the expertise and experience in the CFD group concerning compressible flow solvers, implicit methods, transonic and high speed applications and parallel computing.

Features

The two-dimensional (and axisymmetric) flow solver "PMB2D" and fully three-dimensional flow solver "PMB3D" include the following features:

  • Euler, Navier-Stokes or RANS equations
  • Cell-centred, finite volume method
  • Osher's scheme and MUSCL variable interpolation for convective fluxes
  • Structured, multi-block grids
  • Newton-type implicit time stepping
  • Approximate Jacobian matrices for improved convergence and reduced operation count and storage
  • The linear system is preconditioned using a Block Incomplete LU factorisation, and solved using a Generalised Conjugate Gradient Method
  • Steady or unsteady flow. Unsteady flow employs an implicit dual-time method
  • Parallel implementation in PVM using coarse-grain domain decomposition

This is a brief description only. For full details see the Publications section.

Versions

The multi-block solver comes in three variations:

  1. PMB (Parallel Multi-block) for general flow calculations,
  2. HMB (Helicopter Multi-block) for helicopters (sliding grids),
  3. WMB (Wind Multi-block) for wind turbines (sliding grids)

The Multi-block solver solves the URANS equations on block-structured grids using a cell-centered finite-volume method for spatial discretisation.

An implicit method is employed, and the resulting linear system of equations is solved using a pre-conditioned Generalised Conjugate Gradient method. For unsteady simulations, implicit dual-time stepping is used, which is based on Jameson's pseudo-time integration approach.

The solver has been validated for a wide range of aerospace applications and has demonstrated good accuracy and efficiency for very demanding flows. Since this solver is density-based, it can take into account the compressibility of the flow around the tip of the blade (for large wind turbines the tip Mach may reach 0.25). The solver has been demonstrated for dynamic stall[3], blade-vortex interaction[4] and rotor flows in hover and forward flight[5]. Several grid deformation methods are available in the solver along with a blade-actuation algorithm that allows for the near-blade grid quality to be preserved on deforming meshes.

The solver has a library of turbulence closures which includes one- and two-equation turbulence models and even a non-Boussinesq version of the k-w model which allow for Reynolds stress anisotropy. Turbulence simulation is also possible using either Large-Eddy or Detached-Eddy simulation[6]. From the beginning, the solver was designed with parallel execution in mind.

The MPI library along with a load-balancing algorithm are used to this end. Good parallel performance has been demonstrated on Beowulf clusters with up to 150 CPUs and on massively parallel machines like the HPCx facility available to UK Universities. For multi-block grid generation the ICEM-CFD Hexa commercial meshing tool is used and CFD grids with many million points and thousands of blocks are commonly used with the Liverpool CFD solver.