The Design of PETSc#