[Trilinos-Users] Anasazi: Update Preconditioner

Alicia Klinvex aklinvex at purdue.edu
Wed Mar 4 08:39:49 MST 2015


Hello Sander,

You have a few options here.  All eigensolvers can give you a pointer to
their Ritz vectors via getRitzVectors (
http://trilinos.org/docs/r11.12/packages/anasazi/doc/html/classAnasazi_1_1Eigensolver.html#a960ab4c4caaa68e9d25d62ed01650b19
)

Depending on which eigensolver you use (and if I remember correctly, you're
using TraceMin-Davidson), you may also be able to call getState (
http://trilinos.org/docs/r11.12/packages/anasazi/doc/html/classAnasazi_1_1Experimental_1_1TraceMinBase.html#a3bc8623a967ba9c61ed63a6a4ac8ec95)
which gives you access to a LOT of information (
http://trilinos.org/docs/r11.12/packages/anasazi/doc/html/structAnasazi_1_1Experimental_1_1TraceMinBaseState.html
).

Please let me know if you need additional information.

Best wishes,
Alicia

On Wed, Mar 4, 2015 at 10:02 AM, Sander Schaffner <ssander at student.ethz.ch>
wrote:

>  Hi Alicia
>
> I have now a status check that will be called in each iteration step. But
> I do not see how to get the searchspace (i guess its V_). Is it possible
> that this method does not exist so far?
>
> Best wishes
> Sander
>
> Am 03.03.2015 um 03:46 schrieb Alicia Klinvex:
>
> Hello Sander,
>
>  Here's my suggestion (although you may want Heidi's input as well):
>
>  1.  Write your own status test.  I think we have an example in the repo
> regarding this.  The status test gives you access to the solver.  The
> solver can grab the searchspace.
>  2.  Change your preconditioner.
> 3.  Call setAuxVecs with the converged vectors so they can be properly
> deflated.
> 3.  Set your new initial set of vectors ivecs based on the searchspace you
> grabbed before.  Be VERY careful not to include anything that already
> converged; otherwise, you'll see an orthogonalization issue when the solver
> projects the auxVecs out of your initial subspace.  I'll explain in greater
> detail if this is an error you come across.
> 4.  Call solve.
>
>  As always, let me know if something is unclear.
>
>  Best wishes,
> Alicia
>
>  PS: I love that you call your solver a "he."  I do the exact same thing
> :-)
>
>
>
> On Mon, Mar 2, 2015 at 10:24 AM, Sander Schaffner <ssander at student.ethz.ch
> > wrote:
>
>> Hi
>>
>> I have a question regarding the best strategy to tell a solver that he
>> has to use a new preconditioner, lets say after 100 found eigenpairs. I see
>> some ways
>>
>> 1. Write my own solve() function by inherit from an existing solver
>> manager, copy past the function and set it in there
>>
>> 2. Get the vectors of the searchspace after finding the 100 eigenpairs
>> and set up a new SolverManager with ivecs == this searchroom
>>
>> 3. or even something other?
>>
>> Did some one else try this? What is the best way to go?
>>
>> Thanks
>>
>> Sander
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://software.sandia.gov/pipermail/trilinos-users/attachments/20150304/d4ce9eda/attachment.html>


More information about the Trilinos-Users mailing list