Closed JsuKya closed 6 years ago
My understanding is that there is no way to set ncv automatically: you need to estimate it.
Look documentation in SLEPc (EPSSetDimensions) : the parameters ncv and mpd are intimately related, so that the user is advised to set one of them at most. Normal usage is that (a) in cases where nev is small, the user sets ncv (a reasonable default is 2*nev); and (b) in cases where nev is large, the user sets mpd. The value of ncv should always be between nev and (nev+mpd), typically ncv=nev+mpd. If nev is not too large, mpd=nev is a reasonable choice, otherwise a smaller value should be used.
Is it possible to close this open issue?
I'm using arpack on visual studio 2015 + intel fortran 2017 to solve generalized eigenvalue of finite element method.
I found that if nev is too small, the eigenvalue is completely error, like following: bmat = 'G', which = 'SM' N=15129, nev=5, ncv=4*nev
N=15129, nev=8 , ncv=4*nev, right results
But if I set a larger ncv for small nev, then obtain right results: N=15129, nev=5, ncv=8*nev
So, I don't know how to set ncv aromatically. Excuse me for my poor English.