Actual source code: pipefcgimpl.h

      1: #pragma once

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

      5: typedef struct {
      6:   KSPCGType            type;      /* type of system (symmetric or Hermitian) */
      7:   PetscInt             mmax;      /* The maximum number of P/C vectors to store */
      8:   PetscInt             nprealloc; /* How many vectors to preallocate */
      9:   PetscInt             nvecs;     /* How many P/C vecs are actually stored */
     10:   PetscInt             vecb;      /* How many vecs to allocate at a time in a chunk */
     11:   Vec                 *Qvecs, *ZETAvecs, *Pvecs, *Cvecs, *Svecs, **pQvecs, **pZETAvecs, **pPvecs, **pCvecs, **pSvecs, *Qold, *ZETAold, *Pold, *Sold;
     12:   PetscInt            *chunksizes; /* Chunk sizes allocated */
     13:   PetscInt             nchunks;    /* Number of chunks */
     14:   KSPFCDTruncationType truncstrat;
     15:   PetscInt             n_restarts;
     16:   PetscScalar         *dots;
     17:   PetscReal           *etas;
     18:   Vec                 *redux;
     19:   PetscBool            norm_breakdown;
     20: } KSP_PIPEFCG;