OpenFOAM®: Open source CFD

OpenFOAM is a free, open source CFD software package released free and open-source under the GNU General Public License. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics and electromagnetics.

Models are implemented using an equation syntax that closely follows the mathematical notation, e.g. to evolve the P-1 radiation model:

\[ \div \left( \Gamma \grad G \right) - a G = -4 \epsilon \sigma T^4 - E \]

the following code is used:

// Solve G transport equation solve ( fvm::laplacian(gamma, G_) - fvm::Sp(a_, G_) == - 4.0*(e_*physicoChemical::sigma*pow4(T_)) - E_ );

Many applications are supplied ready-to-use with the code together with a tutorial suite to showcase the functionality. As an open-source tool, users are able to see the inner workings of the algorithms and models, providing a robust platform for future developments and collaborative research.

The code is released in multiple formats:

- source code
- binaries for Windows, Mac and Linux

For the latest information, please see www.openfoam.com/download/.

On installation, the OpenFOAM distribution comprises the main directories:

- src: the core OpenFOAM libraries
- applications: solvers and utilities
- modules: Third-party code contributions
- tutorials: test-cases that demonstrate a wide-range of OpenFOAM functionality
- doc: documentation

Each OpenFOAM case is described by a collection of files, providing details of e.g. the mesh, physical models, solver and post-processing controls:

OpenFOAM is primarily driven using the command line, as described below

OpenFOAM includes an extensive collection of library functionality covering most aspects engineering flow problems, described under the following links:

Applications:

Parallel processing:

OpenFOAM includes many tools to derive additional data from the calculations and generate set-ups for batch-driven processes: