[Trilinos-Users] [EXTERNAL] slow anasazi in NOX::Epetra
romain.veltz at inria.fr
Thu Nov 28 01:04:34 MST 2013
Thank you for your answer.
Reading your mail, I have forgotten a very important piece of information. My system has some symmetries that are broken.
Hence, my eigenvalues are very close to be multiple. In fact the leading eigenvalues is close to be 4 dimensional.
I miss the point where you say that this can be an issue.
On Nov 27, 2013, at 5:27 PM, "Day, David" <dmday at sandia.gov> wrote:
> There is no simple answer. One issue that is mostly independent is simply the efficiency of the linear solve. Here look for the number of times that GMRES must restart. The other issues relate more directly to Anasazi. There is a natural conflict between continuation methods and iterative linear solvers. The continuation method drives the Jacobian matrix to be singular, in many cases. Loca is carefully designed to mitigate this issue, but I guess that this is why you are solving an eigenvalue problem.
> You might send this to the Anasazi mailing list for more discussion. Block Size one is a good guess, unless for some reason your problem has multiple eigenvalues. You might try a much larger value of Num Blocks. You might also try to experiment with the Convergence Tolerance. There is also a trade off between the linear solver and Anasazi; a more accurate linear solves (smaller "Tolerance") increases the cost per linear solve and can decrease the number of Anasazi iterations.
> -David Day
> From: Veltz Romain <romain.veltz at inria.fr>
> Date: Wednesday, November 27, 2013 9:02 AM
> To: "trilinos-users at software.sandia.gov" <trilinos-users at software.sandia.gov>
> Subject: [EXTERNAL] [Trilinos-Users] slow anasazi in NOX::Epetra
> Hello All,
> I am doing a continuation in the NOX:Epetra interface with a Epetra_OPerator for the Jacobian. As a bi-product, I am computing the eigenvalues of the Jacobian at each step using the following piece of code.
> Teuchos::ParameterList& aList = locaStepperList.sublist("Eigensolver");
> aList.set("Method", "Anasazi");
> aList.set("Sorting Order", "LM"); //
> aList.set("Block Size", 1);//1 // Size of blocks, ie Krylov subspace
> aList.set("Num Blocks", 20);//15 // Size of Arnoldi factorization: = 3 nev
> aList.set("Num Eigenvalues", 5); // Number of eigenvalues
> aList.set("Convergence Tolerance", 1.0e-7); // Tolerance
> aList.set("Step Size", 1); // How often to check convergence
> aList.set("Maximum Restarts",20); // Maximum number of restarts
> Fore the linear solver, the options are here:
> Teuchos::ParameterList& lsParams = newParams.sublist("Linear Solver");
> lsParams.set("Aztec Solver", "GMRES");
> lsParams.set("Size of Krylov Subspace",100);//default = 300
> lsParams.set("Max Iterations", 100);// etait 200
> lsParams.set("Tolerance", 1e-8);
> lsParams.set("Output Frequency", 1);//etait 1
> lsParams.set("Scaling", "None");
> lsParams.set("Preconditioner Operator", "Use Jacobian");// default
> I would like to point that the problem I am trying to solve is
> F(V,lambda) = -V + convolution2d(J, N(lambda*V))
> where N is a nonlinearity.
> I have two questions:
> - how do the parameters Block size and Num blocks affect the computation of the eigenvalues?
> I have done the same computation in matlab with the function eigs and it is at least twice as fast.
> - how can I improve the speed of the computation of my eigenvalues in Anasazi. I think this is linked to the first question.
> Thank you for your help,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Trilinos-Users