OpenFOAM is one of the very few open-source computational fluid dynamics (CFD) toolkits that can challenge the commercial market. Through the OpenFOAM-extend project, the toolkit has evolved in a vivid example of the open-source philosophy. Many CFD users are forced to deploy OpenFOAM solvers and limit the use of vendor software strictly for pre-processing and post-processing. This happens because expensive commercial licensing policies bind the software to the number of parallel processors. The pre-processing stage prepares the numerical test case for the solver by defining parameters like geometry and boundary conditions. During post-processing, the results of the solver are visualized and refined.
Unlike most scientific software, which is Fortran-centric, OpenFOAM is written in C++. A solid background in applied mathematics is recommended. The source code depends heavily on C++ templating, which makes the software very hard to read for C++ beginners or even mid-level programmers. Many OpenFOAM users and developers are engineers or mechanical engineers, and the intended target for the software is computer-aided engineering. Popular programming tutorials advertise that the easiest way to contribute is to copy and modify existing applications.
The gdbOF tool introduced in this paper is a Swiss Army knife that greatly enhances the debugging capabilities of the OpenFOAM toolkit. Clearly, the first version is a hack by itself, but provides an oxygen bubble for anyone trying to hack something in “foamish,” the de facto OpenFOAM “language.” Having used OpenFOAM myself, I definitely recommend gdbOF to anyone interested in open-source CFD.