Actual source code: fcgimpl.h

  1: #pragma once

  3: #include <petsc/private/kspimpl.h>

  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 */

 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;