next up previous contents index
Next: XYaitr Up: ARPACK subroutines Previous: XYaupd

XYaup2  

Subroutine XYaup2 implements Algorithm 2 (see Figure 4.3) in Chapter 4. The decision to terminate the IRAM/IRLM is made in XYaup2. The iteration is terminated either when the requested number of wanted Ritz values satisfy the convergence criterion or when the specified maximum number of iterations has been exceeded. For both situations XYaup2 is exited with a complete length m Arnoldi/Lanczos factorization and the number of Ritz values that satisfy the convergence criterion is stored. This allows the user to call XYeupd and compute the eigenvalues and eigenvectors or Schur vectors that have converged to within the requested tolerance.

At step 6, k may be increased for one of three reasons. The primary reason occurs when the exact shift strategy is used. In this case, the number of shifts to apply is decreased by 1 for every wanted Ritz value in   that satisfies the convergence criterion. Since p = m - k this is most easily achieved by increasing the value of k. This scheme helps prevent stagnation of the IRAM/IRLM. If k is held fixed at its original value of nev, the polynomial restarting becomes less and less effective as as the number of converged wanted Ritz values approaches nev. The linear rate of convergence   is related directly to the ratios of the restart (or filter) polynomial evaluated at wanted eigenvalues and unwanted eigenvalues (See (4.4.4) in Chapter 4). These ratios become unfavorable for wanted eigenvalues that are too close to the convex hull of the zero set of the filter polynomial .Increasing k artificially increases the distance of the wanted eigenvalues to the zero set of the filter polynomial and as a consequence improves (i.e. decreases) these ratios and decreases the linear convergence factor. A check is performed so that k never exceeds (ncv-nev)/2.

A second reason to increase k is when an unwanted Ritz value in   has converged to the point that it has a computed zero error estimate. The value of k is incremented for every such instance. This prevents attempting to implicitly shift with a converged unwanted Ritz value that is located in a leading submatrix of that has split from active portion of the iteration.

The third way k may be increased can only occur in [s,d]naup2. Complex conjugate pairs of Ritz values must be classified together either as members of the unwanted set or of the wanted set  . If such a pair would have to be split between the two sets then the value of k is increased by 1 so that both are included in the wanted set

If the user has decided to provide the shifts for implicit restarting via reverse communication, the only manner in which p may be decreased from m-k is for second and third reasons given above. One example of shifts that the user may wish to provide is the set of roots of a Chebyshev polynomial of degree p that has been constructed to    be small in magnitude over an elliptical region that (approximately) encloses the unwanted eigenvalues. Typically, an ellipse that encloses the set but excludes the set is constructed and the Chebyshev polynomial of degree p that is small on the ellipse is then specified [39].


next up previous contents index
Next: XYaitr Up: ARPACK subroutines Previous: XYaupd
Chao Yang
11/7/1997