Lattice Boltzmann Modeling: An Introduction For Geoscientists And Engineers