CFD

OpenFOAM

Open-source Computational Fluid Dynamics (CFD) toolbox for solving continuum mechanics problems using the finite volume method. Developed by OpenCFD Ltd and the OpenFOAM Foundation.

C++
Finite Volume
MPI Parallel
Open Source

Navier-Stokes Equations (Incompressible)

The foundational equations solved by most OpenFOAM solvers:

Continuity (mass conservation):

Momentum conservation:

Where U is velocity, p is pressure, ρ is density, ν is kinematic viscosity, and g is gravitational acceleration.

Capabilities

Incompressible Flow

Solve steady and transient Navier-Stokes equations for laminar and turbulent flows. Solvers include simpleFoam, pimpleFoam, pisoFoam, and icoFoam.

Compressible Flow

High-speed aerodynamics and gas dynamics with density-based and pressure-based solvers. Supports shock capturing, real gas models, and combustion (reactingFoam).

Heat Transfer

Conjugate heat transfer (chtMultiRegionFoam), buoyancy-driven flow (buoyantSimpleFoam), radiation models (P1, fvDOM, viewFactor), and phase change.

Multiphase Flow

Volume-of-fluid (interFoam), Euler-Euler (multiphaseEulerFoam), and Lagrangian particle tracking for sprays, bubbles, and sediment transport.

Turbulence Modelling

RANS models (k-ε, k-ω SST, Spalart-Allmaras), LES (Smagorinsky, WALE, dynamic models), DES, and hybrid RANS-LES approaches.

Mesh Handling

blockMesh for structured grids, snappyHexMesh for automatic hex-dominant meshing around complex geometries, and cfMesh for tetrahedral/polyhedral meshing. Supports dynamic mesh refinement (AMR).

Case Directory Structure

OpenFOAM case
myCase/
├── 0/               # Initial & boundary conditions
│   ├── U            # Velocity field
│   ├── p            # Pressure field
│   └── k, epsilon   # Turbulence fields
├── constant/        # Physical properties & mesh
│   ├── transportProperties
│   ├── turbulenceProperties
│   └── polyMesh/    # Mesh data
└── system/          # Solver & discretisation settings
    ├── controlDict
    ├── fvSchemes
    └── fvSolution

Running a Simulation

bash
# Generate mesh
blockMesh

# Decompose for parallel execution
decomposePar -decomposeParDict system/decomposeParDict

# Run solver on 4 cores
mpirun -np 4 simpleFoam -parallel

# Reconstruct results
reconstructPar

# Post-process with ParaView
paraFoam

Resources: Visit openfoam.com for official documentation and tutorials. VELSTROM tutorials for environmental CFD workflows are under development.