Houdini Resources

Updated on June 26  2024


Fluids - Pyro

Deborah R. Fowler



Fluids - Pyro (not sparse)

Updated: May 2  2020 
Updated: Feb 13  2022


See Introduction to Pyro

Classic pyro has been renamed legacy and is no longer visible by default from the shelf tool as they move toward using the newer solvers such as sparse.
If you would like to see the lecacy shelf tool it is available as per the "what's new in H19" documentation



OVERALL
A classic pyro network and setup is seen below: Node Network / sphere_object1 / AutoDopNetwork / pyro_import

MISSING IMAGE
In the setup the sphere is used as the fuel source (if it was smoke it would be density) and is visualized but not rendered. It sets up the initial data needed for the pyro sim and rasterizes the points (converts points to a volume  suitable for dop import). The pyro_import brings the data fields out of the simulation for rendering.

In the dopnet (AutoDopNetwork)

SOURCE

If you take a sphere and select the shelf tool for pyro (not sparse) you will get a sphere that has points scattered and the particle separation determines the amount of points and pscale. Two attributes are added: fuel and temperature.

MISSING IMAGE

Next, the add_noise node adds noise (variation and by default animation) to the fuel and temperature fields. We are still just using points.

MISSING IMAGE

There are parameters add_noise to change the default behavior as well.The red circles part shows increasing the hot areas for example. 
Pulse duration values that are lower will speed p the animation, element size will increase the frequency of the node.

MISSING IMAGE

You can use the visualization node and sub in the attribute to be seen as temperature or fuel.
MISSING IMAGE

The rasterize node is what then converts the points into a volume that can be used in the pyro simulation as a source. This is now a volume with two fields, fuel and temperature, but has the potential to have more.
You would add them in the create_fuel node, for example velocity.

Voxel size is set as well as seen below.

MISSING IMAGE

In the SideFX documentation the volume rasterize node "takes a cloud of points as input and creates VDBs for its float or vector attributes". (If you dive inside it uses the Volume Rasterize Particles SOP).
This source now goes into the dopnetwork. So in the Volume Source node in the dopnet, these fields are referenced.

MISSING IMAGE

There are scale factors on the source fuel where you can also adjust the values.

PYRO (Smoke Object)

So far, we only have from our source, temperature and fuel, but if you have seen any pyro visualization you will see on the Smoke Object (labeled pyro) a long list of fields (Density, Temperature, Fuel, Divergence etc.) all related to the combustion model that is being simulated.
The is the pyro (smoke object) job - to create those fields. It is setting up the other attributes (fields) that need to exist to run a combustion simulation. You can dive inside that node and see that it is simply creating these fields (but you don't have to because the tool allows us to visualize them.
On the checklist you can view MultiField (closest to what your final sim will look like when you render it) and then whatever other data you may want to look at.

MISSIN G IMAGE
So below I have visualized velocity only (you can turn off the display of the other objects with the circled in red drop down menu on the viewport upper right.
You can also go to the specific tab and adjust how you are viewing it, for example x-y or y-z slice.

MISSING
        IMAGE

The pyro fields are then taking out of the dop network in the pyro_import for rendering.

PYROSOLVER (not sparse) tabs

So we have fuel and temperature. If temperature is hot enough, it will ignite the fuel. Here is where we start discussing the controls.
Resize container uses the heat field to approximate the container size. Below we will look at the various tabs.

The Advanced tab has two interesting things - turns off gravity on your flames, and has an OpenCL tab. (Currently sparse is better than legacy with OpenCL use and does not work with OpenCL.)

Simulation tab: Temperature is driving the upward force - here are the controls
MISSING IMAGE

Combustion tab: and subtabs are controlling the combustion process with detail controls on subtabs

Shape tab:  add dissipation, disturbance, turbulence - noise to influence the shape
MISSING IMAGE

Relationships and Advanced tabs exist as well (OpenCL is on the advanced tab)

Clearly, there are a large number of controls - the key is to understanding what controls to change.