About the "equilibrium function" and "collide() member function" in olb::BlockLattice2D<T,Lattice> class

Hello, guys,
I am a new one for Openlb.

As we know, the equilibrium function is very important in the LBM
But I cannot find the definition and computation about equilibrium function in the of codes.Where is it?
And the “collide() member function” in olb::BlockLattice2D<T,Lattice> class, why is “virtual void collide() =0;” , or is it return zero?

I want to familiar with the olb code quickly, could someone give me some advice about how and what I should do while I face to so many codes?

Thanks.

In Palabos, each cell has a “Dynamics object” associated to it which describes the nature of the collision step. It specifies the equilibrium and other important stuff (such as, how to compute the macroscopic variables). The collision rule for the usual LB models is defined in basicDynamics/isoThermalDynamics.h and .hh. The best way to learning to use the code is to work through the tutorials, and read the user’s guide and the example codes.