Complete PETSc solver wrapper