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