SpectraSim Documentation
Parameter · 06 Solver Settings

Compressible solver

numerics.compressible_solver Step 06 · Solver Settings Experimental

Which solver a steady compressible run uses: steady SIMPLE (the compressible solver), transonic SIMPLE (the compressible solver with the density change in the pressure equation and SIMPLEC), or pseudo-transient (the transient compressible solver with local time stepping). Auto picks pseudo-transient when the fastest inlet is above Mach 0.2.

Last updated

Theory

Steady SIMPLE (transonic false, plain SIMPLE relaxation, see Pressure relaxation) solves a pressure equation in which the density of the mass fluxes is that of the previous iteration, equation (1). When the density changes strongly with the pressure, this lag can make pressure and density ring from one iteration to the next. The pressure is limited to 0.1 patm≤p≤2 patm0.1\,p_{atm} \le p \le 2\,p_{atm} by every compressible solver here; a run whose pressure hits these limits in every one of the last 50 iterations is treated as diverged.

Transonic SIMPLE (transonic yes) adds the compressibility ψ=∂ρ/∂p=1/(RsT)\psi = \partial\rho/\partial p = 1/(R_s T) to the pressure equation as a convection term of pp, equation (2), so the density responds to the pressure within the same iteration. With relaxation on auto it uses the set of OpenFOAM's own internal hot-gas tutorial (the compressible solver/squareBend, inlet Mach about 0.8): SIMPLEC, p 1, ρ 1, U 0.9, e 0.8, k and ω 0.9, first-order U and energy convection during the start-up phase.

Pseudo-transient marches the equations of the transient compressible solver in pseudo-time with a separate time step in every cell (ddtSchemes localEuler), set by a local Courant number (Local Courant number (pseudo-transient)). No relaxation is used; the time derivative damps the pressure-density coupling. Iterations stay numbered 1, 2, 3, ... so the convergence rule and the monitors work unchanged.

Auto compares the Mach number of the fastest inlet, equation (3), with 0.2. Before the geometry is exported (no port areas) auto means steady SIMPLE. The choice is written into the case when it is built.

Equations

∇⋅(ρn H/aP)−∇⋅(ρnaP−1∇p)=0\nabla\cdot\left(\rho^{n}\,\mathbf{H}/a_P\right) - \nabla\cdot\left(\rho^{n} a_P^{-1}\nabla p\right) = 0
(1)
∇⋅(ψ p H/aP)−∇⋅(ρ aP−1∇p)=0,ψ=1RsT\nabla\cdot\left(\psi\, p\, \mathbf{H}/a_P\right) - \nabla\cdot\left(\rho\, a_P^{-1}\nabla p\right) = 0, \qquad \psi = \frac{1}{R_s T}
(2)
Main=max⁡inletsUc(Tin),c=γRsTin,ρin=patmMRuTinMa_{in} = \max_{inlets}\frac{U}{c(T_{in})}, \qquad c = \sqrt{\gamma R_s T_{in}}, \qquad \rho_{in} = \frac{p_{atm} M}{R_u T_{in}}
(3)
wheremeaningunit
ρn\rho^{n}Density of the previous iterationkg/m³
H/aP\mathbf{H}/a_PVelocity predicted by the momentum equation without the pressure gradientm/s
aPa_PDiagonal coefficient of the momentum matrixkg/(m³ s)
ppStatic pressurePa
ψ\psiCompressibility of the ideal gass²/m²
Rs,RuR_s, R_uSpecific and universal gas constantsJ/(kg K), J/(kmol K)
T,TinT, T_{in}Temperature, inlet temperatureK
UUInlet velocity from the entered flow rate, the CAD port area and ρin\rho_{in}m/s
γ\gammaRatio of specific heats at TinT_{in}-
MMMolar masskg/kmol

Default and rule

Default
auto: steady SIMPLE up to inlet Mach 0.2, pseudo-transient aboveComputed by the programMeasured
Rule

Auto. A typed "simple" above Mach 0.2 gets a warning.

Source

Validation on case V1 (a 2.0 m multi-chamber muffler with a perforated pipe and three absorptive packings), compressible:

  • Steady SIMPLE. the compressible solver was stable at inlet Mach 0.15 (0.5 kg/s, 450 °C). At Mach 0.32 (0.93 kg/s, 700 °C) the pressure swung between the limits from iteration 1 with every relaxation tested. The auto threshold of 0.2 is a margin chosen between the two.
  • Pseudo-transient. Stable on the same case but did not converge in a practical number of iterations (769 iterations, outlet mass flow still 7.9 % below the inlet's), and once showed a local blow-up near a junction of walls. Its settings were subsequently aligned with this OpenFOAM build's own local-time-step tutorials.
  • Transonic SIMPLE. Removed the crash of the first pressure solve on the same model but did not converge in 240 start-up iterations.

Pressure-equation forms: (OpenFOAM user guide, 2026); SIMPLE and SIMPLEC: (Patankar and Spalding, 1972), (Van Doormaal and Raithby, 1984).

Valid range auto | simple | simple_transonic | pseudo_transient; steady compressible runs only

Experimental

The transonic SIMPLE and the pseudo-transient solvers run, but neither converged on the two mufflers tested (2026-11-11, Mach 0.35: mass imbalance 26 % and 9 % after 3000 iterations). Steady SIMPLE is the verified choice up to about Mach 0.15-0.2.

Mach limit

Above inlet Mach 0.6 the program asks for confirmation: these solvers are subsonic and limit the pressure to twice the ambient pressure.

Not used

Incompressible and transient runs ignore this setting.

References 3

  1. OpenCFD Ltd. (2026). OpenFOAM user guide. openfoam.com. Web page
  2. Patankar, S. V. and Spalding, D. B. (1972). A calculation procedure for heat, mass and momentum transfer in three-dimensional parabolic flows. International Journal of Heat and Mass Transfer, 15(10), 1787-1806. DOI 10.1016/0017-9310(72)90054-3
  3. Van Doormaal, J. P. and Raithby, G. D. (1984). Enhancements of the SIMPLE method for predicting incompressible fluid flows. Numerical Heat Transfer, 7(2), 147-163. DOI 10.1080/01495728408961817