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: 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