OP2 is a source-to-source program transformation tool for C++ and Fortran, that supports high-performance computing with unstructured grids – as are commonly found in finite volume and finite element codes for solving partial differential equations. OP2 is based on a “decoupled access-execute” model, which separates local computation at a mesh element from the issues involved in executing it in parallel. OP2 can generate code for multicore CPUs, GPUs and large HPC clusters.
OP2 originates from a collaboration with Mike Giles at Oxford University, recently being driven by Istvan Reguly and Gihan Mudalige.
OP2’s most substantial application has been in HYDRA, a finite volume CFD code developed and used by Rolls Royce, as described here:
István Z. Reguly, Gihan R. Mudalige, Carlo Bertolli, Michael B. Giles, Adam Betts, Paul H. J. Kelly, David Radford: Acceleration of a Full-Scale Industrial CFD Application with OP2. IEEE Trans. Parallel Distrib. Syst. 27(5): 1265-1278 (2016)