xref: /petsc/src/ksp/ksp/impls/fcg/fcgimpl.h (revision b98e75f9f81e78f593efd2c19514f44db7497d0a) !
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