An Object-Oriented Parallel Finite-Volume CFD Code
This paper concerns the parallelization and optimization of an in-house three-dimensional unstructured finite-volume computational fluid dynamics (CFD) code. It aims to highlight the use of programming techniques in order to speedup computation and minimize memory usage. The motivation for developing an in-house solver is that commercial codes are general and sometimes simulations are not in agreement with actual phenomena. Moreover, in-house models can be developed and easily integrated to the solver. The original code was initially written in Fortran 77 though the most recent added subroutines include Fortran 90 features. Due to language restrictions and the initial project objectives, issues such as memory usage minimization were not considered. The new code uses an object-oriented paradigm aiming to enhance code reuse and increase efficiency during application development. The parallel code is fully written in Fortran 90 using MPI and hence portable to different architectures. Numerical experiments of typical 3D cases, such as flat plate with uniform incoming flow and a converging-diverging supersonic nozzle, were carried out showing good parallel efficiency. The serial version of the ported code has shown a considerable reduction on the execution time compared to the original code. Convergent solutions agree with the solution of the original code.