For modeling particle velocities explicitly, lattice sites are assumed to have a specific substructure. Each lattice site r ∈ ∈ L is connected to its neighboring lattice sites through vectors called "velocity channels", c i , i ∈ ∈ { 1 , 2 , … … , b } , where the number of velocity channels b is equal to the number of nearest neighbors, and thus depends on the lattice geometry ( b = 2 for a one-dimensional lattice, b = 6 for a two-dimensional hexagonal lattice, and so on). In two dimensions, velocity channels are defined as c i = ( cos ⁡ ⁡ 2 π π i b , sin ⁡ ⁡ 2 π π i b ) . Additionally, an arbitrary number a of so-called "rest channels" may be defined, such that c i = ( 0 , 0 ) , i ∈ ∈ { b + 1 , b + 2 , … … , b + a } . A channel is said to be occupied if there is a particle in the lattice site with a velocity equal to the velocity channel. The occupation of channel c i is indicated by the occupation number s i . Typically, particles are assumed to obey an exclusion principle, such that no more than one particle may occupy a single velocity channel at a lattice site simultaneously. In this case, occupation numbers are Boolean variables, i.e. s i ∈ ∈ S = { 0 , 1 } , and thus, every site has a maximum carrying capacity K = a + b . Since the collection of all channel occupation numbers defines the number of particles and their velocities in each lattice site, the vector s = ( s 1 , s 2 , … … , s K ) describes the state of a lattice site, and the state space is given by E = S K .