1: /*
2: Private data structure for Chebyshev Iteration
3: */
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: KSP kspest; /* KSP used to estimate eigenvalues */
14: PetscReal tform[4]; /* transform from Krylov estimates to Chebyshev bounds */
15: PetscInt eststeps; /* number of kspest steps in KSP used to estimate eigenvalues */
16: PetscBool usenoisy; /* use noisy right hand side vector to estimate eigenvalues */
17: /* For tracking when to update the eigenvalue estimates */
18: PetscObjectId amatid, pmatid;
19: PetscObjectState amatstate, pmatstate;
20: } KSP_Chebyshev;
22: #endif