Simulation of Smoke

This program simulates a fluid like air or water and show the solution as motion of smoke. Define the velocity


and pressure


in a 3D space. Then the motion of the fluid is determinded by the uncompressible Navier-Stokes equation

.
with the gravitational force g and Reynoldsnumber Re and.


In an uncompressible gas, the mass conservation is simply given by

.
To solve the Navier Stokes equation a finite difference approach is usedwith a discretized uniform mesh.
. For stability issues I use a staggered grid in which the velocity is defined at the border of the cells.
.
To solve the time dependence of the Navier-Stokes equation I use the forward Euler scheme with the defined timestep . This yields to


and after a substitution of the terms in the bracket with u, the equation becomes


Put the last equation into the mass conservation equation and apply the divergence operator


You get the poisson equation for the pressure.

.
The finite difference scheme of this equation is solved via the BICGSTAB method.
The output format is a density file used in the raytracer Povray.

Click on the following images to download the videos. This simulation took less than half an hour on an AMD Athlon 1.4 Ghz with a grid size of 60x60x40.

The following shows a two phase fluid using the Level Set Method


and other two
smoke2.avi
smoke3.avi