Abstract PETSc object that manages all Krylov methods. This is the object that manages the linear solves in PETSc (even those such as direct solvers that do no use Krylov accelerators).
typedef struct _p_KSP *KSP;
When a direct solver is used, but no Krylov solver is used, the KSP object is still used but with a
KSPPREONLY, meaning that only application of the preconditioner is used as the linear solver.