Skip to content

Introduction

What is OpenFOAM, how to get the most out of your workflow and the plan going forwards.


What is OpenFOAM

Open Source Field Operation And Manipulation.

OpenFOAM is a C++ library used to create and develop executables called applications. These applications fall into two categories:

flowchart LR
    A(Applications) --> B(Solvers);
    A --> C(Utilities)
Solvers are designed to solve a specific problem in continuum mechanics, OpenFOAM does not have one generic solver applicable to all cases. Instead, a specific solver must be chosen for a class of problems to solve. Each solver has a unique and descriptive name. For some, namely incompressible solvers, it reflects the algorithm, eg. simpleFoam uses the SIMPLE algorithm, pimpleFoam uses the PIMPLE algorithm. More often the name reflects the physical models or type of problem it is designed to solve, eg. icoFoam, simpleFoam, sonicFoam. A list of all current solvers is available here.

Solvers that come packaged with OpenFOAM are in the $FOAM_SOLVERS directory, quickly accessed by typing app at the command line. This directory is subdivided into several directories categorized by continuum mechanics.

Utilities are designed to perform tasks involving data manipulation. Once again, the names are descriptive. And a list of all current utilities is available here.

Utilities that come packaged with OpenFOAM are in the $FOAM_SUTILITIES directory, quickly accessed by typing util at the command line. This directory is subdivided into several directories categorized loosely by worflow tasks.

All of that being said, it is more or less CFD on hard mode, but at the same time it is not a CFD solver. It is the solver.


The Workflow

CFD workflows in OpenFOAM, and by extension other CFD softwares, follow the general steps below;

flowchart LR
    A(Case Setup) --> B(Pre-process) --> C(Process) --> D(Post-process)

The plan going forwards

Chapter 2 will cover the file structure of OpenFOAM and its cases along with syntax and file format requirements.

Chapter 3 covers running OpenFOAM applications for serial and parallel operations.

Chapter 4 covers Mesh generation using OpenFOAM utilities and conversion of mesh data generated by external software, ie. Blender.

Chapter 5 provides details on the models provided by OpenFOAM, boundary conditions, thermophysical and turbulence models.

Chapter 6 focuses on solving OpenFOAM cases, descriptions of numerical schemes, case control and solution monitoring.

Chapter 7 deals with Post-processing.

Reference lists for the available solvers, utilities, libraires and boundary conditions are available on the OpenFOAM website under appendix A.


Credits

OpenCFD Ltd (2025) OpenFOAM. Available at: OpenFOAM (Accessed: 12 January 2025)

Many elements of this doc will be taken from the source above. Thus, this citation applies to the entirety of this doc.