added PCGsolver which is sparse matrix implementation of CG