Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steer convergence #80

Closed
haampie opened this issue Aug 31, 2018 · 1 comment
Closed

Steer convergence #80

haampie opened this issue Aug 31, 2018 · 1 comment

Comments

@haampie
Copy link
Member

haampie commented Aug 31, 2018

For matrices with very dominant eigenvalues at one end of the spectrum, partialschur has trouble targeting eigenvalues on the other side.

For example:

julia> A = Diagonal([1:0.001:2; 4:7]);
julia> round.(eigvals(partialschur(A, nev=10, which=SR())[1].R), digits=3)
10-element Array{Float64,1}:
 7.0
 6.0
 5.0
 4.0
 1.0
 1.001
 1.002
 1.003
 1.004
 1.005

I'm not sure what the best way is to deal with this issue.

If you would remove them from the search subspace with purging techniques, they would enter the space soon enough again.

If you would lock them in the search subspace such that these directions are deflated (what happens now), they might slow down the convergence to the other eigenvectors because the locked vectors reduce the size of the active search subspace -- you should have to increase maxdim then to get the same rate of convergence if the matrix were deflated explicitly.


Further, there is the question when we know for sure there are unwanted dominant eigenvalues converged. The simplest criterion: after nev Ritz vectors have converged, we should let another converge, and see if it is closer to the target than anything that has converged already. If so, continue, if not, we're done. (This is still heuristics!)


Another interesting approach would be to purge the unwanted Ritz vectors from the search subspace, but remember their Ritz values, and then use these as shifts in implicit restart s.t. there's a filter to remove these vectors. Maybe it's not unstable to do this implicit restart with exact eigenvalues if the corresponding ritz vector has not converged? idk.

@haampie haampie mentioned this issue Aug 31, 2018
7 tasks
@haampie haampie mentioned this issue Sep 8, 2018
4 tasks
@haampie
Copy link
Member Author

haampie commented Sep 10, 2018

Closed via #81

@haampie haampie closed this as completed Sep 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant