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