C++ code design for multi-purpose explicit finite volume methods: requirements and solutions

The Ernst-Mach-Institute (EMI) of the Fraunhofer-Society is dealing with a wide spectrum of subjects in the fields of applied physics, mechanical and civil engineering. The EMI department for numerical simulation supports the institute and external customers with high-performance software applications in the fields of compressible flows, structural dynamics, electro dynamics and multi-disciplinary couplings of these applications. The majority of the in-house codes are written in FORTRAN 95. Earlier performance studies of numerical simulations in terms of explicit finite element methods have shown that FORTRAN provides much better efficiency than C++. Nevertheless, potential benefits of object-oriented programming in C++ were recognized. Here we analyze the factors contributing to the code performance for the explicit finite volume scheme and show that C++ provides at least the same efficiency as FORTRAN by application of the new techniques.