Fire can be simulated in several ways. All you need is one or two fields as a basis to setup your fire shader, which is what you will most likely spend the most time with. You can even use the most straight forward density simulation and turn it into a nice flame only by using the right shading parameters. The density-based-flame example project shows how this works. See the next section for more details on shading fire.
There are several ways to get more control over your fire simulation. They are based on the Fuel channel. Objects can emit fuel that will burn if the temperature at a voxel is above the Ignition Temperature. When fuel burns, the air heats up and expands, as specified by the Expansion parameter. This is the essential control for explosions and large fire balls. Another effect of burning fuel is the Heat Creation and Density Creation. These parameters control how much is added to the temperature and density channels per unit of burnt fuel. Heat Creation is how a fire keeps itself burning, that is keeps the temperature above the ignition temperature after the initial ignition.
Another feature of Fuel is, that it may move slower than the rest of the fluid. This gives you some additional control over the shape of the flames. So does the Fuel Diffusion parameter, which will essentially blur the fuel field, letting fuel spread slowly into all directions regardless of the movement in the fluid.
The Fire channel provides an alternative channel to render fire. Fire values are large wherever fuel burns and cool off the farther away from the burning fuel they are. This creates a field that allows you to shade the flame based on the distance to the flame core. The next chapter will go into more detail on shading fire.