[version 12][version 11][version 10][version 9][version 8][version 7][version 6]
Chapter 1 Introduction
This guide accompanies the release of version 12 of the Open Source Field Operation and Manipulation (OpenFOAM) C++ libraries. It provides a description of the basic operation of OpenFOAM, first through a set of tutorial exercises in chapter 2 and later by more detailed descriptions of different components of OpenFOAM.
OpenFOAM is software for computational fluid dynamics (CFD). It includes a collection of applications which perform a range of tasks in CFD. The applications use packaged functionality contained within over 150 libraries. As well as performing calculations of the fluid dynamics, there are applications which configure and initialise simulations, manipulate case geometry, generate computational meshes, and process and visualise results.
Applications primarily fall into two categories: solvers, which perform the calculations in fluid (or other continuum) mechanics; and utilities, that perform the other tasks described above. Prior to version 11 of OpenFOAM, individual solvers were written for numerous specific types of flow. With so many combinations of flow type and additional physics, OpenFOAM included almost 100 solvers at one time. Solvers with names like simpleFoam and pimpleFoam have been the mainstay of OpenFOAM since the early 1990s.
The previous version (11) of OpenFOAM, however, introduced modular solvers as a major improvement to the original application solvers. The application solvers are replaced by a single foamRun solver which describes the steps of a general algorithm for fluid dynamics calculations. foamRun loads a solver module, which defines each step to characterise a particular type of flow.
Modular solvers are simpler to use and maintain than application solvers. Their source code is easier to navigate, promoting better understanding. They are more flexible; in particular, there is also a foamMultiRun solver which can take two or more domain regions and apply a different solver module to each region. In particular, modules for one or more fluids and solids can be coupled for conjugate heat transfer (CHT) for different flow types, e.g. multiphase.
Further details of applications, including modular solvers, are described in chapter 3 . General configuration and running of OpenFOAM cases are described in chapter 4 . Chapter 5 covers details of the generation of meshes using the mesh generator supplied with OpenFOAM and conversion of mesh data generated by third-party products. Post-processing of results, including visualisation, is in chapter 7 . Finally, some aspects of physical modelling, e.g. transport and thermophysical modelling, are described in chapter 8 .