OpenFOAM Solver Processing in 2026 - BCs, Models & Numerics (Guide)
OpenFOAM Solver Processing in 2026
The heart of every simulation: how to configure boundary conditions, mesh motion, physics models, numerical schemes and the right solver application to run an OpenFOAM case correctly.
Pre-processing builds the mesh; post-processing shows the results — but processing is where the physics actually gets solved. This is the stage where OpenFOAM turns your case files into a flow field, and it's where the most important decisions live: the boundary conditions, any mesh motion, the physics models, the numerics, and the solver application you run. Get these right and the solver converges to an accurate answer; get them wrong and it diverges. This 2026 guide walks through all five, so you can set up the processing stage with confidence.
What This Guide Covers
What Is the Processing Stage?
Processing (the solving stage) sits between pre-processing and post-processing. It's configured through five areas — the exact structure of this guide:
Boundary Conditions
Mesh Motion
Models
Numerics
Solver Applications
1. Boundary Conditions
Every field (velocity U, pressure p, turbulence k/epsilon…) needs a boundary condition on every patch. These are set in the field files in the 0/ directory. The most important ones:
| Condition | What it does | Typical use |
|---|---|---|
fixedValue | Sets a fixed value | Inlet velocity/temperature |
zeroGradient | Zero normal gradient | Outlet, fully-developed flow |
inletOutlet | zeroGradient out, fixedValue on backflow | Outlets (backflow protection) |
totalPressure / prghTotalPressure | Fixes total pressure | Pressure-driven inlets/outlets |
pressureInletOutletVelocity | Velocity for pressure boundaries | With totalPressure |
noSlip / slip | Wall: zero / frictionless velocity | Solid walls |
cyclic | Links two patches as periodic | Repeated geometry |
empty | Marks a direction as 2D | 2D simulations |
simpleFoam -listScalarBCs -listVectorBCs, and get a description of any one with foamInfo inletOutlet. Set inlet turbulence values with the turbulence intensity calculator.inletOutlet to survive backflow.2. Mesh Motion
When parts of your geometry move — valves, pistons, rotating machinery, floating objects — the mesh must move too. This is dynamic mesh, configured in constant/dynamicMeshDict and run with a motion-capable solver.
| Approach | Best for |
|---|---|
| Solid-body / morphing motion | Prescribed movement, deforming domains |
| MRF (Multiple Reference Frame) | Steady rotation (fans, pumps) — cheap |
| Overset (chimera) mesh | Bodies moving through a background mesh |
| AMR (adaptive mesh refinement) | Refine where the solution needs it (e.g. interfaces) |
Transient solvers like pimpleFoam with dynamic mesh (historically pimpleDyMFoam) advance the mesh each time step using a hybrid PISO-SIMPLE (PIMPLE) algorithm. Keep the Courant number in check for moving meshes.
3. Models
The models define the physics OpenFOAM solves. The most important is the turbulence model, set in constant/momentumTransport (or turbulenceProperties):
| Approach | Models | Cost / fidelity |
|---|---|---|
| RANS | k-ε, k-ω SST, Spalart-Allmaras | Low cost — most engineering flows |
| LES | Smagorinsky, WALE, k-equation | Higher cost — resolves large eddies |
| DNS | (no model — resolve all scales) | Research only — very expensive |
Other model families:
- Thermophysical models — how density, viscosity, conductivity behave (incompressible, compressible, Boussinesq).
- Multiphase models — e.g. the Volume of Fluid (VOF) method in
interFoamfor free surfaces. - Transport / source models (fvModels, fvOptions) — add porosity, MRF zones, heat sources, etc.
4. Numerics
The numerics control how the equations are discretized and solved — via two files in system/:
fvSchemes — discretization schemes
ddtSchemes { default steadyState; } // time
gradSchemes { default Gauss linear; } // gradients
divSchemes { div(phi,U) bounded Gauss linearUpwind grad(U); } // convection
laplacianSchemes{ default Gauss linear corrected; } // diffusion
interpolationSchemes { default linear; }fvSolution — linear solvers & control
solvers
{
p { solver GAMG; preconditioner DIC; tolerance 1e-6; }
U { solver smoothSolver; smoother GaussSeidel; tolerance 1e-8; }
}
relaxationFactors { U 0.7; p 0.3; } // under-relaxation (SIMPLE)
SIMPLE { nNonOrthogonalCorrectors 2; } // mesh non-orthogonality
PIMPLE { nCorrectors 2; nOuterCorrectors 3; } // transient inner/outer loops- Pressure usually uses
GAMGorPCG(withDIC); velocity usessmoothSolverorPBICGStab(withDILU). - Under-relaxation (steady/SIMPLE) keeps the solution from oscillating.
- nNonOrthogonalCorrectors handles skewed meshes; nCorrectors/nOuterCorrectors control the PIMPLE loops.
upwind) to get a stable solution, then switch to higher-order (linearUpwind, limitedLinear) for accuracy. Verify results don't depend on the mesh with a grid-independence test.5. Solver Applications
Finally, you pick the solver application — the executable that matches your physics. OpenFOAM ships dozens; the essentials:
| Solver | Physics |
|---|---|
simpleFoam | Steady, incompressible, turbulent (SIMPLE) |
pimpleFoam | Transient, incompressible, turbulent (PIMPLE) |
icoFoam | Transient, incompressible, laminar |
interFoam | Two-phase (VOF) free-surface flow |
buoyantSimpleFoam | Steady buoyant / HVAC flow |
rhoCentralFoam / sonicFoam | Compressible / high-speed flow |
chtMultiRegionFoam | Conjugate heat transfer (fluid + solid) |
The Processing Workflow
- Boundary conditions — set every field/patch in
0/. - Mesh motion — configure
dynamicMeshDictif parts move. - Models — pick turbulence (+ thermophysical/multiphase) in
constant/. - Numerics — set
fvSchemes&fvSolutioninsystem/. - Solver application — choose & run the matching solver.
- Monitor — watch residuals & a physical quantity for convergence.
Frequently Asked Questions
What is the processing stage in OpenFOAM?
The solving stage, between pre- and post-processing. It's configured via boundary conditions, mesh motion, physics models, numerical schemes (fvSchemes/fvSolution) and the solver application.
What are the main boundary conditions in OpenFOAM?
fixedValue (inlet), zeroGradient (outlet), inletOutlet (backflow protection), wall/slip, cyclic (periodic), empty (2D), plus pressure conditions. List them with -listScalarBCs/-listVectorBCs.
How does mesh motion work in OpenFOAM?
Via dynamicMeshDict and a motion-capable solver (e.g. pimpleFoam with dynamic mesh). Options: solid-body/morphing motion, MRF for steady rotation, overset meshes, and adaptive mesh refinement.
What are fvSchemes and fvSolution in OpenFOAM?
fvSchemes sets discretization (ddt/grad/div/laplacian schemes); fvSolution sets linear solvers (GAMG/PCG/smoothSolver), relaxation and corrector loops. Together they control accuracy and stability.
Which OpenFOAM solver application should I use?
Match the physics: simpleFoam (steady incompressible), pimpleFoam (transient), interFoam (two-phase), rhoCentralFoam (compressible), chtMultiRegionFoam (conjugate heat transfer).
What turbulence models does OpenFOAM support?
RANS (k-ε, k-ω SST), LES (Smagorinsky, WALE) and DNS. Chosen in the momentum transport properties, with the choice driven by required accuracy vs cost.
Conclusion
Processing is where an OpenFOAM case comes alive — and it comes down to five decisions: physical boundary conditions on every patch, the right mesh motion for moving parts, the correct physics models (especially turbulence), stable-then-accurate numerics in fvSchemes and fvSolution, and the solver application that matches your flow. Set these deliberately — start robust, verify convergence, and refine — and OpenFOAM will reward you with accurate, stable results. Master the processing stage, and you've mastered the core of running CFD in OpenFOAM.
For more OpenFOAM, CFD and simulation tutorials plus free engineering calculators, explore Free CFD Tutorial. If this guide helped you, please share it with your fellow CFD engineers and students.

Comments
Post a Comment