[Trilinos-Users] PyTrilinos + Anasazi - Generalized eigenproblem

Marko Budisic mbudisic at engineering.ucsb.edu
Mon Dec 22 12:38:42 MST 2008


Chris Baker wrote:

> For the default settings (NEV=1, num blocks=default 3, block size=1) 
> with one auxilliary vector, I believe that everything is valid. The 
> reason that the code seemed to freeze is that the solver didn't 
> converge. I would not expect it to converge, because by staying 
> orthogonal to the random auxilliary vector, the subspace was not able to 
> sufficiently capture any of the eigenvectors.
> 
> However, the code shouldn't run forever; it should eventually quit and 
> tell you that it didn't converge. One way to better tell is to increase 
> the verbosity via some level that prints at every iteration. Perhaps 
> Anasazi::IterationDetails or Anasazi::Debug. It should be clear then 
> whether it is still running or if it froze.
> 
> Chris
> 

Hi Chris,

Am I right to assume that one use of AuxVecs would be to used for 
removing "known" eigenvectors from the process? In my case, I will often 
have row-stochastic matrices. Most of the times, they will have the 
largest eigenvalue at 1 with eigenspace being the vector filled with 
ones (the diagonal of the vector space). Would passing a vector filled 
with ones ( via say PutScalar(1.0) ) to AuxVecs (and choosing "LM" as 
the sorting method) make the code return the second largest 
evalue/evector as the result (assuming NEV = 1)?

In any case, I have tried working a bit more with the AuxVecs to see why 
the code was not responsive before. It seems that AuxVecs vectors have 
to be of length 1, otherwise the code fails with something like

Error in Aux[0]^H M Aux[0] == I : 4.00e+00

In this case however, this is the last thing the code prints to the 
screen (even with all verbosity options turned on) but it still 
continues to run at 100% CPU. I waited for some time but it never exited 
or printed other messages so I ended up killing the process.

When I pass the unit length vector to AuxVecs, the code runs but fails 
(and exits to command prompt) with

Anasazi::SVQBOrthoManager::findBasis(): Orthogonalization constraints 
not feasible

I assumed that the code would still attempt to search for LM evalue, but 
couldn't converge with diagonal eigenvector being ruled out so I changed 
the setting to SM (the smallest evector is not at the diagonal of the 
space), however the code failed with the same error in orthogonalization.

To summarize, my main question is the one stated at the beginning, about 
the use ot AuxVecs, the rest of the e-mail was more of a followup to 
your answer. Of course, I am still interested in an answer to my 
previous question about why the generalized eigenproblem acts as the 
regular eigenproblem in PyTrilinos (explained in my previous e-mails).

Thanks a lot for your help.

Best,

Marko




More information about the Trilinos-Users mailing list