[Trilinos-Users] Comparing ML to BoomerAMG

Travis Austin austin at txcorp.com
Thu Jan 3 16:31:54 MST 2013


Mike,

Understood.  Didn't dig in enough to find all of the "isa's".  Thanks.  I'll let you know if there are any issues.

Travis

===============================
Travis Austin, Ph.D
VP, Computational Mathematics
Tech-X Corporation
5621 Arapahoe Ave
Boulder, CO 80303
austin at txcorp.com
===============================



On Jan 3, 2013, at 3:02 PM, "Heroux, Michael A" <maherou at sandia.gov> wrote:

> Travis,
> 
> Yes, this class is supposed to allow you to use hypre with Trilinos iterative solvers.  It implements the Epetra_BasicRowMatrix interface (which "isa" Epetra_RowMatrix and "isa" Epetra_Operator), so a fully-constructed EpetraExt_HypreIJMatrix can be passed in as both the UserMatrix and the PrecOperator (using SetUserMatrix and SetPrecOperator, resp).  
> 
> The Apply method is the hypre SpMV and the ApplyInverse method is the hypre preconditioner "solve" function, which will behave differently depending on which hypre parameters you select.
> 
> I don't know if this class is used much.  It was written a number of years ago by a grad student.  It worked at the time, but may be fragile.  If you run into issues, let me know.
> 
> Mike
> 
> From: Travis Austin <austin at txcorp.com>
> Date: Thursday, January 3, 2013 4:36 PM
> To: Trilinos Users <Trilinos-Users at software.sandia.gov>
> Subject: [EXTERNAL] [Trilinos-Users] Comparing ML to BoomerAMG
> 
> 
> I'm looking through EpetraExt, in particular the subdirectory, hypre, and it states that the EpetraExt_HypreIJMatrix is 
> meant to give Hypre users access to Trilinos solvers.  Is this also meant to give access to hypre preconditioners to
> AztecOO?  I'd assume so but I'm not quite sure how to do it and was hoping for some hints before jumping right into it.
> 
> Here are my thoughts so far.  I have the following code below for using ML as a preconditioner with gmres.  I need a 
> SetPrecOperator that takes something like MLPrec which appears to be an EpetraOperator.   However, I do not see 
> an EpetraOperator in EpetraExt_HypreIJMatrix but I do see the following:
> 
> int ApplyInverse(const Epetra_MultiVector& X, Epetra_MultiVector& Y);  (**)
> 
> This can be used to apply the preconditioner so perhaps this would be what I want to use ti apply a preconditioner from
> hypre?  Not sure.  Upon looking some more it seems that you need to write a class that extends Epetra_Operator and
> has an apply of the same form as (**) above.
> 
> ======================= My current code ===========================
>   // ---------------------------------------
>   //  Solve the system using Krylov solvers
>   // ---------------------------------------
>   Epetra_LinearProblem problem(&A,&uh,&f);
> 
>   AztecOO solver(problem);
> 
>   ML_Epetra::SetDefaults("SA",MLList);ML_Epetra::SetDefaults("SA",MLList);
>   MLList.set("smoother: type", "Gauss-Seidel");
>   MLList.set("ML output", 10);
> 
>   ML_Epetra::MultiLevelPreconditioner * MLPrec = NULL;
>   MLPrec = new ML_Epetra::MultiLevelPreconditioner(A, MLList, true);
> 
>   // tell AztecOO to use this preconditioner, then solve
>   solver.SetPrecOperator(MLPrec);
>   solver.SetAztecOption(AZ_solver, AZ_gmres);
> 
>   int MaxIters = 1000;
>   solver.Iterate(MaxIters, 1e-12);
> 
> 
> ===============================
> Travis Austin, Ph.D
> VP, Computational Mathematics
> Tech-X Corporation
> 5621 Arapahoe Ave
> Boulder, CO 80303
> austin at txcorp.com
> ===============================
> 
> 
> 

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


More information about the Trilinos-Users mailing list