The newly-developed code embodies technology that addresses all the main aspects of the next generation in industrially-relevant CFD solvers, viz. governing equations, discretization and solution methods and programming methodology. With reference to the governing equations, the solver employs a single set of unified volume-averaged governing equations that allows the modelling of 2D, 3D and axi-symmetric problems of the following types: (a) non-linear diffusion systems (applicable to both non-linear heat conduction and inelastic solids) and (b) flows ranging from incompressible non-porous and generalised porous (reactors) to highly compressible. The latter includes sub-, trans- and supersonic flows found in the aerospace industry. The use of a single governing equation set by which to model the afore-mentioned range of physics has resulted in a multi-physics code that is well-suited to a range of complex and current strategic engineering problems. Examples of these include the PBMR reactor (porous materials), Airbus and Denel fluid-structure-interaction (FSI), and Airbus free-surface-modelling (FSM) problems (sloshing).
With regard to spatial discretization, the new code employs a high-resolution edge-based vertex-centred finite volume method that offers an exception balance between accuracy and efficiency (considerably greater than leading commercial codes), and has been proven to be applicable to the entire mesh-type range: from block-structured to hybrid-unstructured. This ensures applicability to problems spanning the full spectrum in geometric complexity while allowing complete flexibility as to the choice of mesh generation tool.
The solver further employs significantly improved versions of the two leading matrix-free solution strategies, viz. matrix-free GMRS and FAS multi-grid. The solution times are therefore exceptional while being fully matrix free. The purely edge-based and matrix-free characteristics (no commercial solvers have the GMRES semi-analytical edge-based functionality) ensure ideal applicability to massive parallel machines with either shared or distributed memory.
In the interest of long-term code maintainability and extendibility, all code development was done via object-oriented C++. For this purpose, programming techniques were developed specifically for high performance computing.
The proposed overall objective is putting in place the final building blocks to furnish a South African high performance multi-physics CFD code that may serve as a national strategic tool. The problems to be dealt with are all complex multi-phase systems and range from PBMR-related to international aerospace-related modelling. |