[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