PETSc supports Schur complements, see e.g. documentation. Those are not yet supported by cpppetsc.
cpppetsc