1 #pragma once 2 3 #include <petsc/private/kspimpl.h> /*I "petscksp.h" I*/ 4 5 typedef struct { 6 /* same header start as KSP_CG */ 7 KSPCGType type; /* type of system (symmetric of Hermitian) */ 8 PetscScalar *e, *d; 9 PetscReal *ee, *dd; /* work space for Lanczos algorithm */ 10 11 PetscInt mmax; /* The maximum number of P/C vectors to store */ 12 PetscInt nprealloc; /* How many vectors to preallocate */ 13 PetscInt nvecs; /* How many P/C vecs are actually stored */ 14 PetscInt vecb; /* How many vecs to allocate at a time in a chunk */ 15 Vec *Pvecs, *Cvecs, **pPvecs, **pCvecs; /* Arrays of vectors, and arrays of pointers to them */ 16 PetscInt *chunksizes; /* Chunk sizes allocated */ 17 PetscInt nchunks; /* Number of chunks */ 18 KSPFCDTruncationType truncstrat; 19 } KSP_FCG; 20