[Trilinos-Users] EIGENVECTORS OF A LARGE SPARSE NON-HERMITIAN MATRIX
Axel CABLE
axel.cable at etu.univ-nantes.fr
Mon Aug 4 08:47:38 MDT 2008
Thank you for your answer Chris,
So using the modified BlockKrylovSchurEx.cpp example, I asked to search
for only one eigenvalue (the one of largest magnitude).
evecs->Print(std::cout) gave me one eigenvector, which should be the one
corresponding to the largest eigenvalue.
Though, the eigenvector is large and I would like to get it in an output
file: out.txt for example.
I tried to do:
std::ofstream output("out.txt");
output << "# eigenvector: " << std::endl;
output << evecs->Print(std::cout) << std::endl;
output.close();
But it did not work. As suggested in the error message, I tried using
std::basic_ostream , but did not get anything working either.
Would you have any idea?
Thanks in advance!
Regards,
Axel
> Axel,
>
> There are two things that should be addressed in the code example below.
> The first is that the variable evecs is a RefCountPtr to the multivector
> containing the eigenvectors, so that outputting it will only output
> information regarding the pointer. Typically, given a RCP<MV>, the way to
> print it is to use Anasazi's multivector traits mechanism, like so:
> MultiVecTraits<MV>::MvPrint(*evecs);
> or to use the native print capability of the underlying multivector. For
> an Epetra_MultiVector (as in BlockKrylovSchurEx.cpp), this is done via:
> evecs->Print(std::cout)
>
> The second issue is that for a non-symmetric eigenvalue problem, the
> eigenvectors in evecs are stored in a compressed form. This storage scheme
> exploits the redundancy in the eigenvectors (due to the occurance of
> eigenvectors in complex conjugate pairs) in order to reduce the storage
> requirements. Extracting a complex eigenvector requires using the index in
> sol.index to locate the real and imaginary components of the desired
> eigenvector in sol.Evecs. An example of how to do this is in the
> BlockKrylovSchurEx.cpp you used to build your test. Documentation on this
> storage scheme is located at
> http://trilinos.sandia.gov/packages/docs/r8.0/packages/anasazi/doc/html/structAnasazi_1_1Eigensolution.html#o3
>
> Cheers,
> Chris
>
> On Wed, Jul 30, 2008 at 06:32, Axel CABLE <axel.cable at etu.univ-nantes.fr>
> wrote:
>
> Dear list,
>
> I want to get the largest eigenvalue and corresponding eigenvector of
> a
> real large sparse non-symmetric matrix.
>
> I modified the Anasazi BlockKrylovSchurEx example, building my own
> matrix.
>
> The example does give the eigenvalues but I cant get it to give the
> eigenvectors:
>
> I figured
>
> Teuchos::RCP<MV> evecs = sol.Evecs;
> std::vector<int> index = sol.index;
>
> and cout << "Eigenvectors" << evecs <<endl;
>
> would be enough, but I am clearly missing something here.
> Would you have an idea how to get it to output the eigenvectors? (or
> at
> least the one associated with the largest eigenvalue)
>
> Thanks in advance!
>
> Axel
>
>
>
>
>
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
> http://software.sandia.gov/mailman/listinfo/trilinos-users
>
>
>
More information about the Trilinos-Users
mailing list