Actual source code: chebyshevimpl.h
1: /*
2: Private data structure for Chebyshev Iteration
3: */
5: #ifndef PETSC_CHEBYSHEVIMPL_H
6: #define PETSC_CHEBYSHEVIMPL_H
8: #include <petsc/private/kspimpl.h>
10: typedef struct {
11: PetscReal emin, emax; /* store user provided estimates of extreme eigenvalues or computed with kspest and transformed with tform[] */
12: PetscReal emin_computed, emax_computed; /* eigenvalues as computed by kspest, if computed */
13: PetscReal emin_provided, emax_provided; /* provided by PCGAMG; discarded unless preconditioned by Jacobi */
14: KSP kspest; /* KSP used to estimate eigenvalues */
15: PetscReal tform[4]; /* transform from Krylov estimates to Chebyshev bounds */
16: PetscInt eststeps; /* number of kspest steps in KSP used to estimate eigenvalues */
17: PetscBool usenoisy; /* use noisy right hand side vector to estimate eigenvalues */
18: /* For tracking when to update the eigenvalue estimates */
19: PetscObjectId amatid, pmatid;
20: PetscObjectState amatstate, pmatstate;
21: } KSP_Chebyshev;
23: #endif // PETSC_CHEBYSHEVIMPL_H