Common Frame Work Development

CFD code development is a niche area as opposed to employing CFD codes for applications and is hence, usually confined to academic institutes, research organizations and a few industries. Due to the broad spectrum of research areas, CFD development in academic institutes and research organizations was pursued in a way where each individual area was specifically addressed. This led to development of multiple codes and softwares. Although these codes addressed the problems successfully, there are huge drawbacks to this approach. The most notable of the drawbacks were 1) new codes written from scratch leading to a lot of spent efforts 2) new codes with entirely different code structure and 3) a huge difficulty in a natural evolution of the codes. From a software engineering perspective we know that a software can be written in a multitude of ways and while this may be beneficial for individual users solving individual applications, the approach is inefficient and uneconomical in the long run where the ultimate goal is to learn as much fluid physics as possible. Furthermore the knowledge and code intricacies lies only with the developer which hampers future developments leading to code maintainability issues. In this regard, several organizations have/are investigating approaches where a common platform can be used to develop CFD codes. This is the main motivation for pursuing this area. The common approach has many advantages ranging from easy code maintainability to quick algorithmic R&D in CFD and has the potential to revolutinize the CFD R&D.

High-fidelity simulations (DNS/LES) and large scale RANS simulations for real problems require huge computing resources. For DNS of a transport aircraft at cruise condition (Re = 50 × 106 ) about 2 × 1015 grid points are required. This places emphasis on algorithms amenable to large scale computing (Petascale and beyond). In this regard, we have developed a new framework which efficiently handles large hybrid meshes on any number of processors. This is attributed to a novel distributed mesh storage and data structures which enable parallelization. The algorithmic design makes possible to construct the partitions and the local mesh afresh without relying on previous partitioning information and thus, does not require storage by files. This provides flexibility to the CFD application in the sense that the number of processors can be changed dynamically during the solution process. The framework is end-to-end parallel and provides all the necessary information required for parallel computation. The framework can be used to quickly develop state of the art high-order algorithms like WENO etc.


Presently the framework supports discretization based on finite volume methodology (FVM) although it can be readily used for discontinuous Galerkin (DG), spectral difference (SD), spectral volume (SV), spectral element (SE) methods. This will be addressed in a future development of the framework.


The framework has been tested and the results are extremely encouraging for large scale parallelism. We have performed a parallel partitioning test where large meshes (96 million and 427 million cells) have been used. The figure 1 shows the partitioning time for serial (blue) and parallel partitioning algorithms (orange) which is an indicator of the speed-up achieved.


Figure 1 Performance of parallel partitioning vis-a-vis serial partitioning in the framework


To handle large mesh sizes we have also developed a novel mesh structure for enabling parallel I/O using HDF5 library. Table 1 shows a good indication of the performance achieved by enabling parallel I/O demonstrating the promise of the framework for large scale parallelism.


Table1: I/O performance study using a 96 million mesh file


180 cores

240 cores

300 cores

360 cores






Parallel I/O










We have also developed a basic 3D parallel Euler solver and have validated it with the test cases available in the literature. The figures 2,3 below show the parallel peformance of the solver and the validation for one of the test cases. The solver written using the framework outperforms the solvers from SU2 in every regard.


Figure 2 Speedup of 3D Euler solver developed using Common Framework


common-frame-work-development2 (1)

Figure 3 Comparison of surface Cp distribution with experiments and SU2 code

Last updated on : 27-09-2020 10:26:47pm