[Trilinos-Users] ansazi question

David Hysom hysom1 at llnl.gov
Mon Feb 23 09:03:08 MST 2015


Thanks, Alicia. It looks pretty simple.

On 02/23/2015 07:20 AM, Alicia Klinvex wrote:
> Hello David,
>
> I have attached an example of how to create and use your own custom 
> status test; this driver shows how to use spectrum folding to compute 
> interior eigenpairs, but the important part is how to define a status 
> test.  Note that in the checkStatus method of the status test, you 
> have access to the LOBPCG solver.  You can use it to access the 
> approximate eigenvectors via the getRitzVectors function.
>
> If it is unclear how to do so, please let me know and I'll help you 
> out :-)
>
> Best wishes,
> Alicia Klinvex
>
> On Thu, Feb 19, 2015 at 10:05 AM, Alicia Klinvex <aklinvex at purdue.edu 
> <mailto:aklinvex at purdue.edu>> wrote:
>
>     Sorry, I've been traveling.  I have an example file of how to do
>     this; I'll comment it and send it to you after I get back.
>
>     - Alicia
>
>     On Fri, Feb 13, 2015 at 8:03 PM, Hysom, David A. <hysom1 at llnl.gov
>     <mailto:hysom1 at llnl.gov>> wrote:
>
>         Alicia,
>
>         I polled my collegues, some whom are are computer scientists,
>         others are more
>         math inclined, and was rather surprised at their quick replies:
>
>         Andy Yoo: "I would say definitely yes too."
>
>         Geoff Sanders: "Yeah, I think we need it.    Dynamic graphs it
>         would be useful for, too ... It's extremely useful to a
>         numerical analyst that seeks to understand what error modes an
>         algorithm is struggling with."
>
>         Lance Ward: "I would vote yes since it is very hard to know in
>         advance what the smallest tolerance you'll be able to obtain
>         is and on the assumption it is better to give the customer
>         some results which may be less than ideal and a warning about
>         it vs giving them nothing like we currently do if it fails?"
>
>         regards, David
>         ------------------------------------------------------------------------
>         *From:* trilinos-users-bounces at software.sandia.gov
>         <mailto:trilinos-users-bounces at software.sandia.gov>
>         [trilinos-users-bounces at software.sandia.gov
>         <mailto:trilinos-users-bounces at software.sandia.gov>] on behalf
>         of Hysom, David A. [hysom1 at llnl.gov <mailto:hysom1 at llnl.gov>]
>         *Sent:* Friday, February 13, 2015 3:44 PM
>         *To:* Alicia Klinvex
>
>         *Cc:* trilinos-users at software.sandia.gov
>         <mailto:trilinos-users at software.sandia.gov>
>         *Subject:* Re: [Trilinos-Users] ansazi question
>
>         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
>         <mailto:aklinvex at purdue.edu>]
>         *Sent:* Friday, February 13, 2015 3:29 PM
>         *To:* Hysom, David A.
>         *Cc:* trilinos-users at software.sandia.gov
>         <mailto: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/20150223/226eff32/attachment.html>


More information about the Trilinos-Users mailing list