Draft. This manual is new and still growing. If something here does not match what you see in the software, the software is right — tell us and we will fix the page.
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 documentation for the thing actually solving your case.
Not every analysis type is OpenFOAM. The fluid families below are; the structural, thermal, electromagnetic, acoustic, coupled, explicit-dynamics and shape-optimisation families are solved by code_aster, Elmer, preCICE, OpenRadioss or SU2, and are listed under Beyond OpenFOAM with the backend each one runs. What that means for what lands on disk is in Case directory layout.
The names in the Analysis type columns are the strings --analysis= takes.
Write them exactly, hyphens included.
Flow
| 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 |
Heat
| 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
| 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 |
The two-phase leaves carry exactly two phases, by name, with one alpha field.
Three or more phases are a separate leaf under the same analysis type — Three
or more phases (multiphaseInterFoam, and compressibleMultiphaseInterFoam
under Compressible multiphase), Three phases, two miscible
(interMixingFoam), and N-phase (multiphaseEulerFoam) on the Euler-Euler
side. Those carry an editable phase list, and every phase gets its own
alpha.<name> field and transportProperties block.
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, uncoupledKinematicParcelFoam and kinematicParcelFoam one-way, DPMFoam two-way, MPPICFoam dense, reactingParcelFoam / simpleReactingParcelFoam / reactingHeterogenousParcelFoam reacting |
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.
Specialist, still OpenFOAM
| 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 |
| Molecular / rarefied | Gas too thin for a continuum, and molecular dynamics | dsmcFoam, mdFoam, mdEquilibrationFoam |
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 — for that, see Structural below, which is a different solver entirely.
Two of these share a name with a family below and are not the same thing:
electrostaticFoam and magneticFoam are OpenFOAM solvers on an OpenFOAM case,
where Electrostatic and Magnetostatics under Electromagnetics are Elmer.
Beyond OpenFOAM
These families are meshed and solved by a different backend. They still live in the same case, the same study directory and the same setup tree, but what is written into the study directory is that backend's deck rather than an OpenFOAM case — see Case directory layout.
Structural — code_aster
| Analysis type | Use it for | code_aster command |
|---|---|---|
| Linear static | Stress and deflection under a load that does not change | MECA_STATIQUE |
| Nonlinear static | Stress and deflection once part of the model yields. The load is applied in steps and the stiffness rebuilt at each | STAT_NON_LINE |
| Modal | The frequencies the part rings at, and the shapes it moves in. Loads are not part of the question | CALC_MODES |
| Buckling | The factor the load can be multiplied by before the part buckles. A slender part can be nowhere near yield and still fail this | CALC_MODES |
| Harmonic response | How far the part moves when something shakes it, swept over a range of frequencies | DYNA_VIBRA |
| Transient dynamics | What happens in the moments after a load arrives | DYNA_VIBRA |
| Fatigue | How many times this load can be applied before the part cracks. A static solve, then an S-N assessment of the stress it found | MECA_STATIQUE |
Thin-walled shell and Frame of beams are Linear static with a different
element: a sheet body becomes a shell and a wire a frame of beams. Both are
Linear static as an analysis type.
Thermal — code_aster, or Elmer
| Analysis type | Use it for | Solver |
|---|---|---|
| Steady conduction | Heat through a solid with no flow anywhere | code_aster THER_LINEAIRE, or Elmer |
| Transient conduction | The same, changing in time | code_aster THER_LINEAIRE, or Elmer |
Thermal is solid-only conduction. If there is flow, the case belongs under Heat transfer above, where OpenFOAM solves the fluid and the solid together. Which backend runs is the Thermal analysis pane's backend setting.
Electromagnetics — Elmer
| Analysis type | Use it for | Elmer solver |
|---|---|---|
| Electrostatic | The potential field of an insulator between electrodes, and the field strength in it | StatElecSolver |
| Current conduction | Where a steady current goes through a conductor, and the resistive heat it leaves behind | StatCurrentSolver |
| Eddy currents | The currents an alternating field induces in nearby metal, and the heat they leave behind | WhitneyAVHarmonicSolver |
| Magnetostatics | The magnetic field a steady current makes, in the part and in the air around it | WhitneyAVSolver |
Acoustics — Elmer
| Analysis type | Use it for | Elmer solver |
|---|---|---|
| Harmonic response | The sound pressure field inside a cavity, driven at one frequency, with viscosity and heat conduction assumed away. Meshes the air the geometry describes, not a part in it | HelmholtzSolver |
| Thermoviscous | The same cavity with viscosity and heat conduction in the equations rather than assumed away. For a narrow duct or a MEMS cavity | AcousticsSolver |
| Radiation (BEM) | Sound radiating away from a vibrating surface into open space, by the boundary element method: no volume mesh of the air. Meshes the part | HelmholtzBEMSolver |
Vibro-acoustic radiation is Radiation (BEM) as an analysis type, on the same
solver. It takes the surface motion of a structural harmonic response of the same
case, solved in code_aster, as the normal velocity on the wetted face.
Coupled — preCICE
| Analysis type | Use it for |
|---|---|
| Fluid-structure interaction | The flow pushes the part, the part deflects, and the deflection changes the flow |
| Conjugate heat transfer | A flow sets the wall temperature and the solid answers with the heat it takes |
Both couple two studies already set up in this case, one fluid and one solid, exchanging across a shared surface. They need two studies; a case with one is not a coupled case. A flow load that does not change the flow is a one-way load map from the Loads pane instead, and heat through a solid with no flow is Thermal.
Conjugate heat transfer appears twice on purpose: chtMultiRegionFoam under Heat
above is one OpenFOAM solver holding both regions, and is simpler and faster. The
coupled one is for when the solid side needs a real structural solver.
Explicit dynamics — OpenRadioss
| Analysis type | Use it for |
|---|---|
| Impact | The whole part moving at a stated velocity when time starts, striking a rigid floor. Elastoplastic material, explicit time integration |
| Drop test | The same run as Impact, with the speed computed from a stated height and the fall itself skipped |
Shape optimisation — SU2
| Analysis type | Use it for | SU2 tools |
|---|---|---|
| Shape optimisation | Flow, adjoint, gradient, deform — round again for a set number of cycles. The design surfaces are the faces allowed to move | SU2_CFD + SU2_DOT + SU2_DEF |
| Sensitivity map | Surface sensitivity drawn as a field: where a change would pay, and by how much. The first cycle of an optimisation, with nothing moved | SU2_CFD direct + adjoint |
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.