[Trilinos-Users] Sparse matrix and Anasazi Solvers,
Mike Atambo
mikeat4999 at gmail.com
Tue Feb 10 06:14:24 MST 2015
On Thu, Feb 5, 2015 at 8:27 PM, Mike Atambo <mikeat4999 at gmail.com> wrote:
> Alicia,
> I will take a look at that try it on my problem
> thanks,
> Mike
>
> On Thu, Feb 5, 2015 at 8:22 PM, Alicia Klinvex <aklinvex at purdue.edu>
> wrote:
>
>> Hello Mike,
>>
>> I'm pretty sure your Trilinos code is NOT using shift-and-invert with
>> BKS. (Shift-and-invert is the spectral transformation I described before.)
>> If you want to use shift-and-invert, you must construct the linear solver
>> yourself and give it to the BKS solver manager. Some examples of that can
>> be found on this page:
>> http://trilinos.org/docs/r11.12/packages/anasazi/doc/html/examples.html
>>
>> If you want to use a sparse factorization, then the Amesos example should
>> be of interest to you. If you want to use a preconditioned Krylov method
>> to solve the linear systems that arise at each iteration of BKS, then look
>> at the Belos example. Let me know if those examples don't make sense to
>> you.
>>
>> Best wishes,
>> Alicia
>>
>> Disclaimer: I am an external collaborator at Sandia, and I did not write
>> the BKS code. I can help you with the mechanics of getting things to run,
>> but Heidi Thornquist and Rich Lehoucq (who are also on the user mailing
>> list) would probably know more about how to get good performance out of BKS
>> and block Davidson.
>>
>> On Thu, Feb 5, 2015 at 1:50 PM, Mike Atambo <mikeat4999 at gmail.com> wrote:
>>
>>> Alicia,
>>> Im still trying to figure out what exactly im facing. Maybe what you
>>> described be the issue, but at this
>>> point i would prefer to try out what you have suggested, if it works,
>>> then it would be certain thats what im facing,
>>> if not, then i can rule that out.
>>> Please let me know how to set the krylov-shur solver as you
>>> suggested,
>>> here are the parameters i pass to the anasaziPL for Krylov-Shur at
>>> the moment:
>>>
>>> const double tol = 1.0e-8;
>>> const int maxIters = 500;
>>> anasaziPL.set ("Which", "SR");
>>> anasaziPL.set ("Block Size",1 );
>>> //anasaziPL.set ("Maximum Iterations", maxIters);
>>> anasaziPL.set ("Convergence Tolerance", tol);
>>> anasaziPL.set ("Full Ortho", true);
>>> anasaziPL.set ("Use Locking", true);
>>>
>>> Mike.
>>>
>>>
>>> On Thu, Feb 5, 2015 at 5:47 PM, Alicia Klinvex <aklinvex at purdue.edu>
>>> wrote:
>>>
>>>> Hi Mike,
>>>>
>>>> If ARPACK is working for you and block Krylov-Schur is not, I suspect
>>>> that one is using a spectral transformation and the other is not.
>>>>
>>>> I don't know much about scipy's eigs, but I assume it is similar to
>>>> Matlab's eigs (which also uses ARPACK). When you ask Matlab's eigs to find
>>>> the smallest eigenvalues of a matrix, it will automatically transform the
>>>> problem of finding the smallest eigenpairs of A x = \lambda x into the
>>>> equivalent problem of finding the largest eigenpairs of A^{-1} x =
>>>> \lambda^{-1}x. Anasazi's Krylov Schur does not do that unless you
>>>> explicitly tell it to. Could that be the problem you're having? If so, we
>>>> can discuss how to tell Krylov-Schur that's what you want to do.
>>>>
>>>> Best wishes,
>>>> Alicia Klinvex
>>>>
>>>> On Thu, Feb 5, 2015 at 11:21 AM, Mike Atambo <mikeat4999 at gmail.com>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>> Im unable to get matrices, ( say a sparse matrix with
>>>>> 885500 non zeros out of about 2822796900 ) to converge
>>>>> with the block davison or the krylov solver,
>>>>>
>>>>> I had a look at the condition number reported by the 'ILUT'
>>>>> preconditioner and it seems to grow rather quickly for my problems, ( 9x9
>>>>> with 39 non zeros has condition number= 10, and at 25*25 and 100 non
>>>>> zeros the condition number is at 250).
>>>>>
>>>>> Im able to solve all these examples here using scipy.sparse.eigs (it
>>>>> uses ARPACK), so there is probably something that im not doing right.
>>>>>
>>>>> The block-davidson solver with 'ILUT' pre-conditioner work for the
>>>>> small systems above, but beyond 300*300 matrix size, this is not
>>>>> longer true.
>>>>>
>>>>> At the moment im following these steps.
>>>>>
>>>>> 1. Create and initialize a matrix,
>>>>> 2. Create an anasazi basic eigenproblem,
>>>>> 3. Create a solver (either block davidson or krylov-shur)
>>>>> 4. Get solution,
>>>>>
>>>>> Id like to find out whether there is a way to tell why the system im
>>>>> working on seems
>>>>> to be unable to converge. Any help would be appreciated.
>>>>>
>>>>> Mike
>>>>>
>>>>>
>>>>> --
>>>>> M. O. Atambo
>>>>> mikeat4999 at gmail.com
>>>>> matambo at ictp.it
>>>>> Ext .139
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Trilinos-Users mailing list
>>>>> Trilinos-Users at software.sandia.gov
>>>>> https://software.sandia.gov/mailman/listinfo/trilinos-users
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> M. O. Atambo
>>> mikeat4999 at gmail.com
>>> matambo at ictp.it
>>> Ext .139
>>> Room 209.
>>>
>>>
>>
>
>
> --
> M. O. Atambo
> mikeat4999 at gmail.com
> matambo at ictp.it
> Ext .139
> Room 209.
>
>
--
M. O. Atambo
mikeat4999 at gmail.com
matambo at ictp.it
Ext .139
Room 209.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://software.sandia.gov/pipermail/trilinos-users/attachments/20150210/fab8f300/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: solver.cxx
Type: text/x-c++src
Size: 4508 bytes
Desc: not available
URL: <http://software.sandia.gov/pipermail/trilinos-users/attachments/20150210/fab8f300/attachment.bin>
More information about the Trilinos-Users
mailing list