Introducing Shape V2, a foundation model for 3D geometry. Read the blog →

CFD Solvers

rhoSimpleFoam is a steady-state solver for compressible, density-dependent flows using the SIMPLE algorithm. It includes an energy equation and computes density from thermophysical properties at runtime. SIMD Agent selects it for high-speed or thermally driven steady-state problems.

When the agent selects this solver

  • Compressible flow (Mach > 0.3, significant pressure-driven density variation)
  • Steady-state solution desired
  • Gravity is not the dominant driving force (otherwise buoyantSimpleFoam)
  • Cryogenic single-phase liquids in steady state

Typical applications include high-speed external aerodynamics, compressible duct flows with heat transfer, and shock-dominated steady-state flows.

Required files

DirectoryFiles
system/controlDict, fvSchemes, fvSolution, fvOptions
constant/thermophysicalProperties, turbulenceProperties
0/U, p, T, turbulence fields, alphat (when turbulent)

Pressure field

Unlike the incompressible solvers, rhoSimpleFoam uses absolute pressure in Pascals with dimensions [1 -1 -2 0 0 0 0]. Temperature is always in Kelvin.

0/p
// 0/p — absolute pressure in Pa
dimensions  [1 -1 -2 0 0 0 0];
internalField  uniform 101325;

Energy equation

The solver solves for enthalpy (h) or internal energy (e) via the he field. The energy variable must be consistent across thermophysicalProperties, fvSchemes divergence terms, fvSolution solver entries, and residualControl.

Density is computed from thermophysicalProperties at runtime. Never generate a 0/rho file. For fluids not natively supported by OpenFOAM, the agent generates polynomial-fitted properties automatically. See Custom Fluid Properties.

GAMG smoother

The GAMG smoother must be set to GaussSeidel.

fvSolution
p
{
    solver          GAMG;
    smoother        GaussSeidel;
    tolerance       1e-6;
    relTol          0.01;
}

Files never generated

  • 0/rho, density is computed at runtime
  • 0/h, 0/e, enthalpy is handled via he
  • constant/g, no gravity (use buoyantSimpleFoam for that)