The present work is born out of a series of lectures I delivered at the Computational and Theoretical Fluid Dynamics Division, NAL, on the usage of the OpenFOAM libraries to develop CFD solvers. Since then the code has undergone changes through the various OpenFOAM programming workshops conducted across companies and academic institutions. This is primarily a teaching aid and I have released this code in open so that other will find it useful.

I am grateful to the participants of my workshops, who helped me shape this code and point out bugs. This code was run on a variety of machines, operating systems, and compilers.