The above set of non linear equations are placed into a single sparse matrix, and solved using the umfpack solver. The drift diffusion are cast into a Scharfetter-Gummel form, to ensure stability.