# How does fire and smoke simulation work?

I'd really like to get a basic idea of what happens under the hood of the fire/smoke simulation. It doesn't have to be detailed or specific to blender, just an overview of what actually happens.

Voxels are used for the underlying physics simulation of gas behavior. I can sort of imagine what happens when we're just simulating smoke by itself - I guess smoke is emitted with certain properties from somewhere with some starting velocity and other properties, and we try to solve the differential equation that describes this physical system. But what does changing Smoke to Smoke+Fire in the flow object do?

Is the physical event simulated differently when there is flame? Do the flame and smoke physical simulations interact/effect each other, or they done independently? Maybe the flame texture is just extracted from the simulation based on some quality of the voxel in question (its temperature/other quality).

What is the default behavior from the flow object when we're using Smoke+Flame? Does it set some sort of "initial temperature" very high or something?

When the 3d textures are saved, and it comes to rendering the process, I suppose both are just composited together? (I suppose this isn't really related to smoke/flame, but just volumetric rendering together, but I thought I'd ask it for completeness).

Quick and watered down explanation. For Blender's simulator NOT MANATFLOW. Much of this can be applied to Mantflow among other parts. Volumetric are quite complicated in how they work so it won't be included.

Assuming your using Quick smoke settings(This is to avoid the thousands of different settings)

D = Divisions = 64

Divisions is the amount of divisions each side is divided into.Each side is equivalent one side may be 2 units long and will have D divisions a side that is 1 unit long on the (Should only be one domain) object will have the equivalent amount or (D / 2 because it's half the size).

Time scale is the speed how fast it will go the lower the slower.

Border collisions are self explanatory.

Empty space is a voxel is under this value it's considered empty.

Density how dense the smoke is the higher the value the faster it will spread out.

Temperature difference the difference between the smoke's temperature and the "air" around it Higher the value the faster it will go up (I don't think I need to explain why).

Voracity(Not the correct spelling) the amount of turbulence in the smoke and "air" (I don't recommend using) .

Dissolve this feature will determine how long the smoke takes to dissolve.

Adaptive domain will change how large the domain is therefore increasing and/or decreasing the amount needed to calculate use this (Adaptive domain in Mantaflow is bugged don't use it in that branch )

Cache will store the data that has been simulated (Search up a tutorial on rigid bodies it will explain the exact same think just different simulations)

Field weights are basically what is affecting affecting it.

Flames (I don't know how to explain but I'll try)

When simulating flame and smoke they are done mostly separate from each other but they interact through the proprieties like temp difference,density among others The main ones are Divisions,Temperature difference,Density,and Field weights. Divisions are how much will be considered flames Temperature will determine how long the flames stay before they emit smoke. Field weights I don't think I need to explain. Yes flames are taken from the result of the simulation through distance Temp and the other Major factors listed above. No the initial temperature isn't set high for Fire + Smoke it will basically do what is stated above.

Collections what you put in flow, anything that has smoke on it in that collection will emit but only from that one. What you put in to collision same thing but it will collide.

High Resolution Nothing I need to explain but noise method which is the differences in how noise is generated ( I have no Idea how it works).