Study of Pyro
updated 2/10/2025

The Pyro Solver is designed for simulating high-temperature gas effects (e.g., fire, explosions). It extends the traditional smoke simulation by adding:
-
Temperature & Fuel: Dynamics for temperature and fuel fields.
-
Combustion Chemistry: Energy release, expansion, and other pyro-specific effects.
-
Buoyancy & Turbulence: Temperature-driven velocity changes (e.g., hot air rising).

combustion
shape_operators_and_forces
advect_fuel_modulate_heat
sharpening_dissipation
inside of Pyro solver
If we go inside of Pyro solver, we can find a Smoke solver.

inside of Smoke solver
The Pyro Solver inherits and encapsulates the Smoke Solver to handle foundational fluid dynamics:
-
Velocity Field (vel): Solves advection, diffusion, and pressure projection (incompressible fluid).
-
Density Field (density): Controls the visible smoke morphology.
-
Coupling with Pyro Fields: The Smoke Solver’s vel/density interact with Pyro’s temperature/fuel (e.g., buoyancy from temperature affects velocity).
Per timestep, the Pyro Solver executes in this order:
-
Combustion Calculation: Updates temperature and fuel (Pyro-specific).
-
Temperature → Velocity: Converts temperature differences into buoyancy forces for the Smoke Solver.
-
Smoke Solver Operations: Advects fields (density, vel) using modified velocity.
-
Field Synchronization: Updates Pyro effects (e.g., flame shape) based on new fluid state.
The Pyro Solver extends the Smoke Solver for fire/explosion effects. They operate hierarchically:
-
Pyro: Handles combustion logic and drives fluid motion.
-
Smoke Solver: Manages underlying fluid dynamics (advection, pressure).
This integration avoids redundant calculations while ensuring physical consistency.
Divergence in Pyro
To make a compressible simulation, the first step is to understand how does pyro make fluids divergence free.

In Houdini's Smoke Solver, the make_divergence_free node group enforces incompressibility in fluid simulations by ensuring the velocity field (vel) becomes divergence-free (∇·v=0).
1. Mathematical Foundation of Incompressibility
Incompressible fluids must satisfy the mass conservation condition, expressed as zero divergence in the velocity field:
∇·v = 0
However, numerical errors and external forces (e.g., buoyancy) introduce divergence (∇·v ≠ 0). The solver corrects this through pressure projection.
gasprojectnondivergent (Core Pressure Solver)
-
Purpose: Solves the Poisson equation (∇²p = ∇·v) to compute a pressure field (pressure), then corrects velocity using its gradient (v ← v − ∇p).
-
Algorithm Choices:
-
enable_multigrid: Uses multigrid methods (fast for large-scale divergence).
-
enable_PCG: Uses Preconditioned Conjugate Gradient (more precise for fine details).
-
Often combined for balanced speed and accuracy.
-



