[Trilinos-Users] ansazi question

Hysom, David A. hysom1 at llnl.gov
Fri Feb 13 16:44:10 MST 2015


Alicia,

Thanks for your quick response. Yes, we'd really like to do this.

FYI, we're performing iterative spectral clustering:
  - compute the 2nd smallest eigenvector
  - use it to determine how to split the graph (of the matrix) into two sub-graphs
  - recurse for each subgraph, until some stopping criteria is met

A question is: what is the "best" thing to do if we get convergence failure
at some point, on one of the sub-graphs? In the past, we've thrown an exception.
Currently, we print out an error message and continue processing whatever
sub-graphs are still to be split (and don't attempt to split the sub-graph for which
convergence was not achieved). What we'd like to experiment with:
retrieve the eigenvectors, even if not converged, and run some statistical tests
to determine if they're "good enough" to provide a reasonable splitting.

- David

________________________________
From: Alicia Klinvex [aklinvex at purdue.edu]
Sent: Friday, February 13, 2015 3:29 PM
To: Hysom, David A.
Cc: trilinos-users at software.sandia.gov
Subject: Re: [Trilinos-Users] ansazi question

Hello David,

There is a way to retrieve the eigenpairs if convergence fails, but it's not easy.  The issue is that you use the LOBPCGSolMgr, I assume, which does not give you access to the solver.  The solver has a function to return the Ritz values and vectors; the solver manager does not.  You would need to create a custom debug status test (which allows you to grab the solver) and provide it to the solver manager.  This is not something that we generally recommend doing, but if you desperately want to do so, I can give you more information about how to do this.

Best wishes,
Alicia

On Fri, Feb 13, 2015 at 6:14 PM, Hysom, David A. <hysom1 at llnl.gov<mailto:hysom1 at llnl.gov>> wrote:
Hi,

We're using anasazi's LOBPCG, and have cases where convergence
fails, but we'd still like to retrieve the 2nd smallest eigenvector (we're
computing the smallesBasicEigenproblemt two). When we call:

Anasazi::Eigensolution<scalar_t, mvec_t> sol = problem->getSolution();
Teuchos::RCP<mvec_t> evecs = sol.Evecs;
cout << "evecs.size: " << evecs->getNumVectors() << endl;

we get a single vector. However, since anasazi can print out the
eigenvalues and residuals after every iteration, I'm guessing there
should be a way to retrieve the eigenpairs if convergence fails.

So, is there? If not, how easy would it be to modify the code to
do so, and where should I start?

thanks, David

_______________________________________________
Trilinos-Users mailing list
Trilinos-Users at software.sandia.gov<mailto:Trilinos-Users at software.sandia.gov>
https://software.sandia.gov/mailman/listinfo/trilinos-users


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://software.sandia.gov/pipermail/trilinos-users/attachments/20150213/61b1b5cc/attachment.html>


More information about the Trilinos-Users mailing list