Lattice Boltzmann Method: Fundamentals and Engineering