My works (documentation, programs) on basic CFD, on the basis of "12 steps to Navier-Stokes" by Lorena Barba. So I don't own the content. Please, refer to : lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes/
Using Python.
PS : Step 6 was not done here because it's very similar to Step 5 (just to consider that it's a 2D non-linear convection)