1: /*
2: Private data structure for Chebyshev Iteration
3: */
8: typedef struct {
9: PetscReal emin,emax; /* store user provided estimates of extreme eigenvalues */
10: KSP kspest; /* KSP used to estimate eigenvalues */
11: PetscReal tform[4]; /* transform from Krylov estimates to Chebyshev bounds */
12: PetscInt eststeps; /* number of kspest steps in KSP used to estimate eigenvalues */
13: PetscBool userandom; /* use random right hand side vector to estimate eigenvalues */
14: PetscRandom random;
15: /* For tracking when to update the eigenvalue estimates */
16: PetscObjectId amatid, pmatid;
17: PetscObjectState amatstate, pmatstate;
18: } KSP_Chebyshev;
20: #endif