As I foresee, I would be working on something related to lattice Boltzmann method. Therefore, I am very serious and curious about the fundamentals behind LBM. I would be writing about the very basic idea it is based on. It is called cellular automata and the easiest one of that to understand is: one dimensional cellular automata.
First question? What is it? Imagine chairs assembled in a line. There are two possibility for each of these chairs: they could either be occupied or vacant i.e. if I say binary, a chair (cell) would be either 0 (vacant) or 1 (occupied). This is the first picture of cellular automata. So, if I say there are 10 chairs, then there could be 210 possible pictures that one might see at the beginning (initial condition).
What next? Is this it? NO! Now we define some kind of rule which will define the evolution of this cellular automata with time. One of the properties of CA is that the future state of a cell depends on the “immediate” past state of itself and its neighbors. For example: In the case of 10 chairs, I can define a rule that if a chair is vacant between two occupied chairs, it becomes occupied. In a mathematical sense, 101 becomes 111. It should be noticed that I am considering the effect of only one chair on either side of the cell under consideration and this is what we technically call range. This is the rule with range equals one.
Why should I know this? Is it useful? As much as I know about it, it is fundamental and mathematical in its sense. You need to learn alphabets before making words. So, I think of it as a alphabet in making a really big word. Specially, two dimensional automata cases with advancements are useful. These have the capability to determine the motion of fluid flow and this mathematics can be embedded in a code for simulations. This particularly is of most interest to me.
If anyone wants to read more about CA, I would recommend them this.