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;