OpenFOAM (for "Open source Field Operation And Manipulation") is a C++ toolbox for the development of customized numerical solvers, and pre-/post-processing utilities for the solution of continuum mechanics problems, including computational fluid dynamics (CFD). The code is released as free and open source software under the GNU General Public License. It is managed, maintained and distributed by The OpenFOAM Foundation, which is supported by voluntary contributors. The OpenFOAM name is a registered trademark of OpenCFD Ltd and licensed to the OpenFOAM Foundation Ltd.

OpenFOAM is constituted by a large base library, which offers the core capabilities of the code:

  • Tensor and field operations
  • Discretization of partial differential equations using a human-readable syntax
  • Solution of linear systems
  • Solution of ordinary differential equations
  • Automatic parallelization of high-level operations
  • Dynamic mesh
  • General physical models
    • Rheological models
    • Thermodynamic models and databas
    • Turbulence models
    • Chemical reaction and kinetics models
    • Lagrangian particle tracking methods
    • Radiative heat transfer models
    • Multi-reference frame and single-reference frame methodologies

The capabilities provided by the library are then used to develop applications. Applications are written using the high-level syntax introduced by OpenFOAM, which aims at reproducing the conventional mathematical notation. Two categories of applications exist:

  • Solvers: they perform the actual calculation to solve a specific continuum mechanics problem
  • Utilities: they are used to prepare the mesh, set-up the simulation case, process the results, and to perform operations other than solving the problem under examination

Each application provides specific capabilities: for example the application called blockMesh is used to generate meshes from an input file provided by the user, while another application called icoFoam solves the Navier-Stokes equations for an incompressible laminar flow.

Finally, a set of third-party packages are used to provide parallel functionality (e.g. OpenMPI) and graphical post-processing (ParaView).



HPC Resources supporting module