Diffuse2d
Name
Diffuse2d --  2d difussion with evaporation.
Description
 Discrete 2nd order approximation to 2d diffusion with evaporation.  Math is done in integers on the range [0,0x7fff]. 
Methods
Phase: Creating
- -  initializeLattice-  Initialize world to 0. 
- +  create:-  (id <Zone>) aZone setSizeX:-  (unsigned) x Y:-  (unsigned) y setDiffusionConstant:-  (double) d setEvaporationRate:-  (double) e-  Convenience constructor for Diffuse2d 
Phase: Setting
- -  setEvaporationRate:-  (double) e-  Set the evaporation rate. Values over 1.0 don't make much sense 
- -  setDiffusionConstant:-  (double) d-  Set the diffusion constant. Values over 1.0 might not be valid. 
Phase: Using
- -  stepRule-  Run discrete approximation to diffusion. Roughly, it's  newHeat = evapRate * (self + diffuseConstant*(nbdavg - self))  where nbdavg is the weighted average of the 8 neighbours.