top of page

Study of Pyro

updated 2/10/2025

pyro.jpg

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).

pyro_solver.jpg

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.

smoke_solver.jpg

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:

  1. Combustion Calculation: Updates temperature and fuel (Pyro-specific).

  2. Temperature → Velocity: Converts temperature differences into buoyancy forces for the Smoke Solver.

  3. Smoke Solver Operations: Advects fields (density, vel) using modified velocity.

  4. 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.

make_divergence_free_group.jpg

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.

projectionmethods.jpg
projection_method.jpg
projection_info.jpg
non_divergent.jpg

© 2035 by Mojie Tang. Powered and secured by Wix

bottom of page