[petsc-users] smallest SVD values in Slepc doesn't work for matrices larger than ~200

Jose E. Roman jroman at dsic.upv.es
Mon Dec 16 12:21:35 CST 2013


El 16/12/2013, a las 19:02, David Liu escribió:

> Hi, I'm having trouble using the SVD solver to find the smallest singular values. As a simple example:
> 
> http://www.grycap.upv.es/slepc/handson/handson4.html
> 
> When I run the command in the example: (./ex14 -file $SLEPC_DIR/share/slepc/datafiles/matrices/rdb200.petsc), it converges exactly as the page says it would, in 3 iterations. However, if I want the smallest values, I add the option 
> 
> "-svd_smallest" 
> 
> to the end of that command, and this time it doesn't converge at all. Is there some additional option I need to add, for example, something to do with the SVD object's EPS or ST, to make this work?
> 
> best,
> David

In this example, it is enough to increase the dimension of the working subspace, for instance -svd_ncv 32

Usually, eigensolvers have a much harder time when computing smallest eigenvalues compared to largest, because the latter are dominant and hinder convergence of the small ones.

In other problems, increasing the subspace may not be enough and other approaches might be required (e.g. shift-and-invert as described in the manual). It depends on the particular distribution of the spectrum.

Jose



More information about the petsc-users mailing list