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