Branching Growth Model Simulation - Introduction
A typical branching pattern (From Ben-Yakob's paper)
As a project I chose to find a solution to the diffusion problem, using a computer simulation. I chose to simulate the growth of a bacteria colony, which is an interesting example for a biological system that produces patterns. In optimal environments (for the colony) the colony will not produce a specific pattern, but, under harsh conditions (limited food and rough substrate) there will be limited diffusion which will produce dendrite structures.
For the colony simulation I used the "communicating walker model", which is a set of conditions for the diffusion problem. This model was suggested by Eshel Ben-Yakov, and fits to several classes of bacteria.
This model is based on "Walkers", each representing 10^4~10^5 cells. Each walker has several parameters that control its behavior:
Location: The walker's coordinates.
Metabolic state: The walker's internal energy. This energy is used to generate movement, internal metabolic processes and reproduction. The energy can increase as the walker eats food particles, and decreases as time passes. When the energy reaches zero the walker can't move or reproduce until he eats again.
Reproducing Energy: When a walker has more than the "Reproducing Energy" he will reproduce, which means that in the same location a child walker will appear, the internal energy of the parent will decrease by this amount and the child walker will have one third of the "Reproducing Energy". Roughly one third of this energy is transferred to the child and two thirds is used to compensate the loss in entropy and to maintain metabolic processes during mitosis.
The walkers move randomly (as long as their parameters allow it) within an envelope representing the boundaries of the colony. This envelope represents the lubrication fluid, on which the bacteria can move freely. The bacteria cannot move on a surface which is not lubricated, but it can lubricate new areas, thus increasing the area explored by the colony. Each time a walker tries to cross the envelope a counter for that segment of envelope is incremented. When this counter reaches a certain value (which I called "Lubrication parameter") the walker manages to lubricate a new area, and thus extend the envelope to include that area also.
Beside the walkers, there are also food particles. These particles are doing normal diffusion. The food particles are allowed to move freely over the whole area (and not confined to the lubricant envelope). If a food particle and a walker are on the same location the walker will eat the food particle, which will disappear, and the walker's internal energy will increase.
All the movement (The walker's and the food particle's) in the simulation occurs on a square finite lattice, the lubricant envelope is also defined on that lattice. This lattice represents the petri dish on which the "numerical experiment" is conducted.