[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