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