On Wed, Nov 10, 2021 at 8:42 AM Vladislav Pimanov < vladislav.pima...@skoltech.ru> wrote:
> Dear PETSc community, > > > I wonder if you could give me a hint on how to compute the condition > number of a preconditioned matrix in a proper way. > > I have a *MatSchurComplement* matrix S and a preconditioner P of the type > *PCSHELL* (P is a diffusion matrix, which itself is inverted by *KSPCG*). > > I tried to compute the condition number of P^{-1}S "for free" during > the outer PCG procedure using *KSPComputeExtremeSingularValues()* routine. > > Unfortunately, \sigma_min does not converge even if the solution is > computed with very high precision. > > I also looked at SLEPc interface, but did not realised how PC should be > included. > > You can do this at least two ways: 1) Make a MatShell for P^{-1} S. This is easy, but you will not be able to use any factorization-type PC on that matrix. 2) Solve instead the generalized EVP, S x = \lambda P x. Since you already have P^{-1}, this should work well. Thanks, Matt > Thanks! > > > Sincerely, > > Vladislav Pimanov > > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>