Numerical Solution of Partial Differential Equations: Finite Difference Methods