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

CFD Solvers

buoyantSimpleFoam is a steady-state solver for compressible flows with buoyancy using the SIMPLE algorithm. It couples temperature, density, and gravity to model natural convection. SIMD Agent selects it when heat transfer and gravity are both significant and a steady-state solution is requested.

When the agent selects this solver

  • Heat transfer is active
  • Single-phase flow at low speed (Mach < 0.3)
  • Gravity matters; buoyancy drives or significantly influences the flow
  • Steady-state solution desired

Typical applications include HVAC system design, heated room simulations, electronic cooling, chimney effect analysis, and gravity-driven density stratification. For fluids not natively supported by OpenFOAM, the agent generates polynomial-fitted properties automatically. See Custom Fluid Properties.

Required files

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

Dual pressure fields

This solver requires both 0/p_rgh and 0/p. The relationship is:

p = p_rgh + ρ · (g · x)

  • p_rgh is the solved variable, use fixedFluxPressure on walls, fixedValue at outlets
  • p is calculated, all patches must use type calculated
0/p
// 0/p — derived field, ALL patches must be "calculated"
dimensions  [1 -1 -2 0 0 0 0];
internalField  uniform 101325;

boundaryField
{
    ".*"
    {
        type  calculated;
        value $internalField;
    }
}

Gravity vector

A constant/g file is required. This provides the buoyancy source term.

constant/g
dimensions  [0 1 -2 0 0 0 0];
value       (0 -9.81 0);

Configuration rules

  • fluxRequired in fvSchemes must list p_rgh, not p
  • residualControl must reference p_rgh, not p
  • relaxationFactors.fields must include p_rgh, not p
  • GAMG smoother must be GaussSeidel
  • No div(phid,p) in fvSchemes
  • 0/T internalField must equal the inlet temperature, not a default like 300 K
  • Set p_rgh internalField to operating pressure (e.g., 100000 Pa)

Files never generated

  • 0/rho, 0/h, 0/e, density and enthalpy computed at runtime