An investigation into the feasibility, problems and benefits of
re-engineering a legacy procedural CFD code into an event driven, Object Oriented system
that allows dynamic user interaction
John Andrew Clark Ewer
1999
Abstract
This research started with questions about how the overall efficiency, reliability and
ease-of-use of Computational Fluid Dynamics (CFD) codes could be improved using any
available software engineering and Human Computer Interaction (HCI) techniques. Much of
this research has been driven by the difficulties experienced by novice CFD users in the
area of Fire Field Modelling where the introduction of performance based building
regulations have led to a situation where non CFD experts are increasingly making use of
CFD techniques, with varying degrees of effectiveness, for safety critical research.
Formerly, such modelling has not been helped by the mode of use, high degree of expertise
required from the user and the complexity of specifying a simulation case. Many of the
early stages of this research were channelled by perceived limitations of the original
legacy CFD software that was chosen as a framework for these investigations. These
limitations included poor code clarity, bad overall efficiency due to the use of batch
mode processing, poor assurance that the final results presented from the CFD code were
correct and the requirement for considerable expertise on the part of users. The
innovative incremental re-engineering techniques developed to reverse-engineer,
re-engineer and improve the internal structure and usability of the software were arrived
at as a by-product of the research into overcoming the problems discovered in the legacy
software. The incremental re-engineering methodology was considered to be of enough
importance to warrant inclusion in this thesis. Various HCI techniques were employed to
attempt to overcome the efficiency and solution correctness problems. These investigations
have demonstrated that the quality, reliability and overall run-time efficiency of CFD
software can be significantly improved by the introduction of run-time monitoring and
interactive solution control. It should be noted that the re-engineered CFD code is
observed to run more slowly than the original FORTRAN legacy code due, mostly, to the
changes in calling architecture of the software and differences in compiler optimisation:
but, it is argued that the overall effectiveness, reliability and ease-of-use of the
prototype software are all greatly improved. Investigations into dynamic solution control
(made possible by the open software architecture and the interactive control interface)
have demonstrated considerable savings when using solution control optimisation. Such
investigations have also demonstrated the potential for improved assurance of correct
simulation when compared with the batch mode of processing found in most legacy CFD
software. Investigations have also been conducted into the efficiency implications of
using unstructured group solvers. These group solvers are a derivation of the simple
point-by-point Jaccobi Over Relaxation (JOR) and Successive Over Relaxation (SOR) solvers
[CROFT98] and using group solvers allows the computational processing to be more
effectively targeted on regions or logical collections of cells that require more
intensive computation. Considerable savings have been demonstrated for the use of both
static- and dynamic- group membership when using these group solvers for a complex
3-dimensional fire modelling scenario. Furthermore the improvements in the system
architecture (brought about as a result of software re-engineering) have helped to create
an open framework that is both easy to comprehend and extend. This is in spite of the
underlying unstructured nature of the simulation mesh with all of the associated
complexity that this brings to the data structures. The prototype CFD software framework
has recently been used as the core processing module in a commercial Fire Field Modelling
product (called "SMARTFIRE" [EWER99-1]). This CFD framework is also being used
by researchers to investigate many diverse aspects of CFD technology including Knowledge
Based Solution Control, Gaseous and Solid Phase Combustion, Adaptive Meshing and CAD file
interpretation for ease of case specification.
|