[Trilinos-Users] [EXTERNAL] slow anasazi in NOX::Epetra

Salinger, Andrew agsalin at sandia.gov
Wed Dec 11 09:40:29 MST 2013


Veltz,

I have two ideas:

The identity matrix, while seemingly simple, has all eigenvalues repeated. This can cause problems for the iterative eigensolver. Can you try again with diagonal entries 1, 1.1, 1.2, 1.3,..

There might be a problem with your shifted/mass matrix calculation, since that is not used in the Jacobian Inverse method, but is used in the ones with a wrong results. You can
try some tests of applying it agains simple vectors to make sure it is correct.

Andy

From: Veltz Romain <romain.veltz at inria.fr<mailto:romain.veltz at inria.fr>>
Date: Wednesday, December 11, 2013 5:59 AM
To: Eric Phipps <etphipp at sandia.gov<mailto:etphipp at sandia.gov>>
Cc: "trilinos-users at software.sandia.gov<mailto:trilinos-users at software.sandia.gov>" <trilinos-users at software.sandia.gov<mailto:trilinos-users at software.sandia.gov>>
Subject: Re: [Trilinos-Users] [EXTERNAL] slow anasazi in NOX::Epetra

I thought I would be done with issues but I found the following output from Anasazi rather puzzling.
Note that, for some reasons, I am using trillions-10.8.4 (updating to the current version give me some trouble under macosx).

I set my continuation code in a configuration where the Jacobian is the operator: -Id

Using the LOCA with Epetra - Anasazi with:
aList.set("Sorting Order", "LM");
aList.set("Operator","Jacobian Inverse");

the following EV are returned

Untransformed eigenvalues (since the operator was Jacobian Inverse)
Eigenvalue 0 : -1.000e+00  -0.000e+00 i    :  RQresid 3.331e-16  0.000e+00 i
Eigenvalue 1 : -1.000e+00  -0.000e+00 i    :  RQresid 6.439e-15  0.000e+00 i
Eigenvalue 2 : -1.000e+00  -0.000e+00 i    :  RQresid 7.327e-15  0.000e+00 i
Eigenvalue 3 : -1.000e+00  -0.000e+00 i    :  RQresid 5.995e-15  0.000e+00 i


Using the LOCA with Epetra - Anasazi with:
aList.set("Sorting Order", "LM");
aList.set("Operator","Shift-Invert");
aList.set("Shift",0.001);

the following ev are returned (The RQresid is large too, equal to the shift…):

Untransformed eigenvalues (since the operator was Shift-Invert)
Eigenvalue 0 : -9.990e-01  -0.000e+00 i    :  RQresid 1.000e-03  0.000e+00 i
Eigenvalue 1 : -9.990e-01  -0.000e+00 i    :  RQresid 1.000e-03  0.000e+00 i

Note that I have checked that the solver effectively enter the following function
->LOCA::AnasaziOperator::ShiftInvert::apply()

I don't understand these results… I thought the entry  in
anasaziOp->transformEigenvalue((*evals_r)[i], (*evals_i)[i]);
from LOCA::Eigensolver::AnasaziStrategy::computeEigenvalues would do the job…

Please note that I have the same issues with the Cayley transform.

Thank you for your help and advices,

Romain


On Dec 10, 2013, at 5:33 PM, "Phipps, Eric T" <etphipp at sandia.gov<mailto:etphipp at sandia.gov>> wrote:

I don't understand what you mean be "I don't have access to my Jacobian operator".  You need to be able to implement y = (a*J + b*M)*x for a give (multi-) vector x and scalars a and b, where J is the Jacobian operator and M the mass matrix.  If you have a matrix-free operator to implement J*x, you can use the same approach to implement this, e.g., via y = a*J*x + b*M*x.

-Eric

On Dec 10, 2013, at 5:03 AM, "Veltz Romain" <romain.veltz at inria.fr<mailto:romain.veltz at inria.fr>> wrote:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20131211/baad774e/attachment.html 


More information about the Trilinos-Users mailing list