Jutho / KrylovKit.jl

Krylov methods for linear problems, eigenvalues, singular values and matrix functions
Other
284 stars 37 forks source link

Free vibration problem fails to converge #64

Open PetrKryslUCSD opened 1 year ago

PetrKryslUCSD commented 1 year ago

Feel free to reopen and share the matrices.

Originally posted by @Jutho in https://github.com/Jutho/KrylovKit.jl/issues/18#issuecomment-615491613

The matrices can be found at size(M) = (2187, 2187)
https://www.dropbox.com/s/oneuns05l3e3rva/unit_cube_8.zip?dl=0 size(M) = (14739, 14739) https://www.dropbox.com/s/2sdyhaxk2pd0axl/unit_cube_16.zip?dl=0

Simulation run as

neigvs=20
OmegaShift = (0.01*2*pi)^2;
d, v, info = geneigsolve((K+OmegaShift*M, M), neigvs, :SR; krylovdim = 2*neigvs, issymmetric = true, verbosity = 1)

Fails with

┌ Warning: GolubYe eigsolve finished without convergence after 100 iterations:                                                                                                              
│ *  1 eigenvalues converged                                                                                                                                                                
│ *  norm of residuals = (7.66211503629717e-13, 0.7585108726412924, 0.7029803176625605, 3.870821453942646, 14.613356935519448, 21.74815548797692, 33.786265705509045, 50.072831967271455, 65.11342753900738, 77.44873911331082, 75.66586526202666, 96.08167739154138, 103.36719352447871, 135.2866204761907, 143.3234236856939, 147.71528778473464, 185.40110483665762, 190.187097932011, 229.1869935974752, 254.63625652304694)                                                                                                                                                    
│ *  number of operations = 4140       

and such

PetrKryslUCSD commented 1 year ago

The matrices can be read (after unzipping) with

using DataDrop
K = DataDrop.retrieve_matrix("unit_cube_8.h5", "/K")
M = DataDrop.retrieve_matrix("unit_cube_8.h5", "/M")

and so on.