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