next up previous
Next: Introduction Up: KIVA-3 Engine Simulations Previous: KIVA-3 Engine Simulations


We describe a message-passing implementation of KIVA-3 combustion engine code. KIVA-3 is the latest version of a 3-D Finite Difference CFD code developed by Amsden. Although the numerical schemes in KIVA-3 use a structured mesh to begin with, the implementation of the code on vector or serial machines is similar to implementing an unstructured mesh. Each computational element is recognized through the neighborhood connectivity arrays and this leads to indirect addressing that complicates the domain decompostion on parallel machines. However, the connectivity arrays and the use of indirect addressing enable one to keep the ghost cells and the active cells in separate regions to minimize the vector lenghts for computation.

A block-wise decomposition scheme is followed to run KIVA-3 on selected blocks of the mesh at every processor. There is no duplication of data and computation across the processors. Dependencies in the code extend only one layer in each direction and the presence of ghost cells and cell-face boundary arrays in the code suits block-wise decompostion very well. Through the ghost cells and the cell-face boundary condition arrays, internal boundaries between cells are handled like the external boundaries, enabling one to apply the same rules, physics and compuatation to a part of of the domain as well as the whole domain.

The code is currently being tested on the Intel Paragon Systems at ORNL. The parallel efficiency for a baseline engine problem has shown to be more than 95 % on two nodes. Further work is underway to test the scalibility of the algorithm on the MP nodes for a range of problems.

Osman Yasar
Tue Jun 6 10:52:43 EDT 1995