[Trilinos-Users] BlockKrylovSchur: number of required Ritz vectors splits a complex conjugate pair.

Thornquist, Heidi K hkthorn at sandia.gov
Tue Nov 25 11:19:38 MST 2008

Hi Mike,

Yes, it is easy to resolve this type of problem.  The Anasazi::BlockKrylovSchur class is only an iteration, so this type of situation is normally handled by the solver manager class (Anasazi::BlockKrylovSchurSolMgr).

If you look at lines 596-613 of the BlockKrylovSchurSolMgr.hpp file, you will see a block of code that gets the Ritz values and index from the BlockKrylovSchur class, determines whether a conjugate pair is on the boundary, and if necessary it modifies the number of Ritz pairs the BlockKrylovSchur class computes by calling "setNumRitzVectors".  From the error you received, it looks like you are working with a modified code because the original solver manager should have caught this problem and addressed it.  So, you will want to have something like the block of code in the BlockKrylovSchurSolMgr.hpp file to address this situation.

I hope this helps!


On 11/25/08 10:48 AM, "Michael Junge" <junge at iam.uni-stuttgart.de> wrote:

when running the Block Krylov Schur solver of the trilinos package 8.0.3
for an unsymmetric eigenvalue problem, I get the error message
"Anasazi::BlockKrylovSchur::computeRitzVectors(): the number of required
Ritz vectors splits a complex conjugate pair."
after the 6-th iteration.
Is there any possibility to cope with this error? Can I instead of
throwing this exception
lower the variable numRitzVecs_ by one and proceed without any
subsequent error?
Any suggestions to resolve this error are greatly appreciated.



                         BlockKrylovSchur Solver Status

The solver is initialized.
The number of iterations performed is 6
The block size is         12
The number of blocks is   7
The current basis size is 72
The number of auxiliary vectors is    0
The number of operations Op*x   is 72

              Ritz Value                 Ritz Residual
   9.565366e-05 + i   0.000000e+00        5.162558e-14
   6.535990e-05 + i   0.000000e+00        3.367828e-13
   1.531108e-05 + i   0.000000e+00        3.643859e-11
   1.074612e-05 + i   0.000000e+00        7.339283e-10
   6.653571e-06 + i   0.000000e+00        3.781330e-09
   5.151594e-06 + i   0.000000e+00        1.167965e-08
   4.963956e-06 + i   0.000000e+00        4.357004e-09
   4.831631e-06 + i   0.000000e+00        9.323526e-09
   4.176412e-06 + i   0.000000e+00        1.887900e-08
   3.687791e-06 + i   0.000000e+00        4.500353e-08
   2.792135e-06 + i   0.000000e+00        1.260036e-07
   2.676274e-06 + i   0.000000e+00        1.066106e-07
   2.485754e-06 + i   0.000000e+00        2.336125e-07
   2.265135e-06 + i   0.000000e+00        1.216118e-07
   2.123651e-06 + i   0.000000e+00        1.984118e-07
   2.083278e-06 + i   0.000000e+00        1.851201e-07
   1.964699e-06 + i   0.000000e+00        3.001937e-07
   1.894537e-06 + i   0.000000e+00        2.210573e-07
   1.808296e-06 + i   0.000000e+00        2.643175e-07
   1.767787e-06 + i   0.000000e+00        1.857689e-07
   1.712140e-06 + i   0.000000e+00        1.948303e-07
   1.673696e-06 + i   0.000000e+00        2.257906e-07
   1.666248e-06 + i   0.000000e+00        2.148936e-07
   1.623681e-06 + i   0.000000e+00        2.166838e-07
   1.609906e-06 + i   0.000000e+00        1.941363e-07
   1.468962e-06 + i   0.000000e+00        2.552411e-07
   1.426348e-06 + i   0.000000e+00        2.757035e-07
   1.405264e-06 + i   0.000000e+00        2.400259e-07
   1.376019e-06 + i   0.000000e+00        2.659608e-07
   1.301969e-06 + i   0.000000e+00        3.079990e-07
   1.284877e-06 + i   0.000000e+00        3.499356e-07
   1.246154e-06 + i   0.000000e+00        3.004309e-07
   1.233486e-06 + i   0.000000e+00        2.883003e-07
   1.125078e-06 + i   0.000000e+00        3.013997e-07
   1.083713e-06 + i   0.000000e+00        3.703915e-07
   1.021817e-06 + i   0.000000e+00        3.098594e-07

Error! Caught exception in BlockKrylovSchur::iterate() at iteration 7
terminate called after throwing an instance of 'std::logic_error'
  what():  solver/EVP/AnasaziBlockKrylovSchurTrackRes.hpp:1410:
Throw number = 1
Throw test that evaluated to true: ritzIndex_[numRitzVecs_-1]==1
Anasazi::BlockKrylovSchur::computeRitzVectors(): the number of required
Ritz vectors splits a complex conjugate pair.

Trilinos-Users mailing list
Trilinos-Users at software.sandia.gov

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://software.sandia.gov/mailman/private/trilinos-users/attachments/20081125/7f3a9da9/attachment.html 

More information about the Trilinos-Users mailing list