|
Two dimensional modeling adds a new complexity and there is more than one way to model a 2D space. I'll stay with a simple 2 axis model. We learned from the one dimensional model that the most energy that can be transferred is one times the difference in potential between two adjacent parcels of space. The formula has a divide-by-two built in, so the transfer gain limit is '2'. But now we have two dimensions, what is the transfer gain limit for this model? It turns out that the answer is very simple. The vectoral sum of the two axis must not exceed the maximum gain of two(2) Our maximum transfer gain for each axis is the square root of '2'. There are also two different transfer. One is along the axis' and the other is diagonal. So every 4 adjacent blocks have 2 axial transfers and 2 diagonal transfers. We have to divide our axial gain of 1.414 into two parts. The model will accept a wide range of values, but about 1/3 diagonal and 2/3 axial works out best. If you draw a circle inside a square you will see why. Each block of 4 adjacent parcels requires 4 transfers, two axial and two diagonal.
The diagonal transfers are only half the energy of the axial transfers. In our one dimensional model we found that if the transfer gain is less than two(2) higher frequencies traveled slower than low frequencies and complex waves like a squarewave are torn apart. The same is true for our two(2) dimensional model. The gain in any one direction can never reach the maximum of two(2) and the 2D model can get pretty uggly. So we'll add a lowpass filter to the transfer equasion: where 0 < Lpf < .5 This smooths the output so we can seperate the interesting parts from the noise. Speaking of output, this is probably a good place to talk about the programming. Java worked fine for the one dimensional model, but it's much too slow for the rest of our investigation. A small two(2) dimensional simulation may require 350x350x1000 interations. Each interation requires five(5) calculations. So, to speed things up I wrote the generator program in 'C'. That worked well, the above simulation takes about five(5) minutes on my PC, a 64 bit Linux system. Converting these calculations to graphics takes a little longer, about five to eight hours. I'm using POVRAY to create each cell of these animations and combining the cells into an mpeg with mencoder. Then I use Free Studio Manager to convert the mpeg into a flash video. Fortunately, most of this work is for presentation. I have a 'crude' graphic option that can product a single cell in a couple of minutes. |