OpenFOAM is a general purpose open-source CFD code. OpenFOAM is written in C++ and uses an object oriented approach which makes it easy to extend. The package includes modules for a wide range of applications. FOAM was written by Henry Weller and others at Imperial College. For a few years FOAM was sold as a commercial code by the company Nabla Ltd. However, in 2004 FOAM was released under GPL and was renamed to OpenFOAM. The development of OpenFOAM is currently coordinated by OpenCFD Ltd. OpenFOAM is a very capable code which you definitely should check out if you are looking for a state-of-the-art CFD code with source-code access.
The numerics implemented in OpenFOAM uses the Finite Volume Method on unstructured meshes. OpenFOAM provides many capabilities, including free-surface and multi-phase flow modelling, lagrangian spray model and automatic mesh motion.