https://en.wikipedia.org/wiki/Successive_over-relaxation algorithm