https://picgiraffe.com/building-fluid-solvers-for-computer-graphics-part-2/
Building Fluid Solvers For Computer Graphics Part 2