Analysis types and solvers
Every analysis type the application offers, what it is for, and which solver it runs.
You do not normally choose a solver. You choose an analysis type and the application derives the solver from it, together with the field set, the dictionaries and the boundary conditions that solver requires. The solver name is here because you will see it in the log, and because knowing it is how you read the OpenFOAM documentation for the thing actually solving your case.
| Analysis type | Use it for | Solver |
|---|---|---|
| Incompressible | Almost everything below about Mach 0.3. Steady unless the wake will not settle | simpleFoam steady, pimpleFoam or pisoFoam transient |
| Compressible | Gas flows where density varies with pressure | rhoSimpleFoam steady, rhoPimpleFoam transient |
| Supersonic / shock | Shocks. Density-based and explicit, because a pressure-based solver smears a shock over as many cells as its scheme is diffusive | rhoCentralFoam |
| Atmospheric & Wind | Wind loading, pedestrian comfort, dispersion. An incompressible case with a logarithmic inlet and a rough ground | simpleFoam, pimpleFoam |
| Scalar transport | A passive tracer carried by the flow — smoke, dye, concentration | simpleFoam, pimpleFoam |
| Rotating frame (SRF) | A single rotating frame where the whole mesh spins. No interface, no zone to define | SRFSimpleFoam, SRFPimpleFoam |
| Analysis type | Use it for | Solver |
|---|---|---|
| Convective Heat Transfer | Buoyancy-driven flow in a fluid | Boussinesq pair below ~30 K rise, buoyantSimpleFoam / buoyantPimpleFoam above it |
| Conjugate Heat Transfer | Fluid and solid together, heat crossing between them | chtMultiRegionSimpleFoam, chtMultiRegionFoam |
| Solid conduction | No flow at all: Laplace’s equation on a single scalar | laplacianFoam |
Convective heat transfer chooses between two families on whether the density change is small. Boussinesq keeps pressure kinematic and is right while the temperature rise is modest; past roughly 30 K the approximation stops holding and the compressible pair is the honest choice. Both are offered rather than one being hidden, because the threshold is a judgement about your case.
Multiphase and free surface
Section titled “Multiphase and free surface”| Analysis type | Use it for | Solver |
|---|---|---|
| Multiphase (VoF) | A sharp interface between two immiscible fluids — a tank, a dam break, a sloshing vessel | interFoam, or interIsoFoam for isoAdvector |
| Marine & Waves | VoF with waves on the inlet | as VoF |
| Cavitation | Two phases with mass transfer between them — a pump, a propeller | interPhaseChangeFoam |
| Compressible multiphase | A free surface where the phases compress: a gas pocket squeezed, a water hammer | compressibleInterFoam |
| Miscible mixing | Two liquids that mix rather than hold an interface | twoLiquidMixingFoam |
| Sediment / drift flux | A settling mixture, one momentum equation with a relative velocity | driftFluxFoam |
| Shallow water | Depth-averaged free surface over a large area | shallowWaterFoam |
| Free surface (potential) | A free surface as a moving pressure boundary. Cheap, and right while the surface stays single-valued | potentialFreeSurfaceFoam |
| Multiphase (Euler–Euler) | Dispersed phases that interpenetrate — bubbles, particles as a continuum | twoPhaseEulerFoam |
Two phases means exactly two, by name, with one alpha field. Three-phase cases
are not modelled in this build.
Euler–Euler with energy enabled derives reactingTwoPhaseEulerFoam, which
needs a phaseProperties dictionary the application does not author. Turn
energy off and the analysis type works.
Reacting and particles
Section titled “Reacting and particles”| Analysis type | Use it for | Solver |
|---|---|---|
| Combustion / Reacting | A diffusion flame, species transport with chemistry | reactingFoam |
| Premixed combustion | Reactants already mixed; the flame is a front tracked by the regress variable | XiFoam |
| Spray | Liquid injection into a gas | sprayFoam |
| Particles (Lagrangian) | Discrete particles tracked through the flow | icoUncoupledKinematicParcelFoam one-way, DPMFoam two-way |
Reacting is always reactingFoam, including for steady cases. rhoSimpleFoam
is compressible but has no chemistry and no species equations, so a “steady
reacting” case solved with it would run the flow and quietly ignore the
combustion — a plausible answer to a question nobody asked, which is worse than
refusing.
Two-way coupled particles (DPMFoam) is currently blocked: it names every
field after the continuous phase and the application writes unqualified names.
One-way coupling works, and cannot show particles slowing the flow down.
Beyond fluids
Section titled “Beyond fluids”| Analysis type | Use it for | Solver |
|---|---|---|
| Solid stress | Small-strain linear elasticity on the same mesh machinery | solidEquilibriumDisplacementFoam, solidDisplacementFoam |
| Electrostatics | Electric potential and field | electrostaticFoam |
| Magnetostatics | Magnetic field | magneticFoam |
| Magnetohydrodynamics | Conducting fluid in a magnetic field | mhdFoam |
Solid stress is useful where a stress answer is wanted alongside a flow answer without moving to a separate package. It is not a substitute for a structural FEA tool and does not pretend to be.
Choosing
Section titled “Choosing”Most cases are Incompressible, steady, with k-omega SST. Start there and change one thing at a time when you have a reason to.
The three questions that actually decide it:
- Does density change? Below Mach 0.3 with no significant heating, no — use incompressible. Compressibility is a cost with no benefit if you do not need it.
- Is there a second phase, and does it hold an interface? Sharp interface is VoF; interpenetrating is Euler–Euler; a passive scalar is not a phase at all.
- Is it steady? If the physics has no steady answer — vortex shedding, sloshing, an explicit transient event — a steady solver will plateau forever rather than converge, and the plateau is not a result.