[Trilinos-Users] problem when trying to use HIPS

Heroux, Mike MHeroux at csbsju.edu
Fri Aug 30 09:54:51 MDT 2013


Riccardo,

I assume you have wrapped HIPS as an Epetra_Operator and are calling the SetPrecOperator method in AztecOO, correct?

 One thing that comes to mind, which is easily overlooked, is that AztecOO expects your Epetra_Operator implementation to support the situation where the input and output vectors are the same array.  In other words, the ApplyInverse method of your Epetra_Operator must handle the case where the X and Y arguments are the same object.  This is briefly mentioned here:

http://trilinos.sandia.gov/packages/docs/r11.4/packages/epetra/doc/html/classEpetra__Operator.html#aac0eb3b0061a6e67a5666194e744c343

This is an artifact of the underlying Aztec.  If HIPS doesn't support this mode, you can create your own temporary Y vector at the beginning of ApplyInverse, and copy the result back to the real Y vector at the end of ApplyInverse.

Beyond this issue, the only advice I can give is to make sure you are checking error codes from the return arguments.  Sometimes you get information back from one of them.

If you keep having trouble, please send more details.

Mike

From: Riccardo Rossi <rrossi at cimne.upc.edu<mailto:rrossi at cimne.upc.edu>>
Date: Wednesday, August 28, 2013 2:33 PM
To: "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: [Trilinos-Users] problem when trying to use HIPS

Dear List,

       i am getting a segfault with no apparent reason when trying to use HIPS
through AztecOO

i attach the makefile.inc used in compiling hips

the configure i use for the trilinos

the file that i use to attempt using the solver...

my system is ubuntu 12.04 and i use OpenMPI

i use our own python wrappers to trilinos, the settings are given as

aztec_parameters = ParameterList()
aztec_parameters.set("AZ_solver", "AZ_gmres")
aztec_parameters.set("AZ_kspace", 100)
aztec_parameters.set("AZ_output", 1)

preconditioner_type = "HIPS"
preconditioner_parameters = ParameterList()
preconditioner_parameters.set("hips: id",0);
#preconditioner_parameters.set("hips: strategy",1) ---> note that i set this in the C++ code!!

overlap_level = 0
nit_max = 300
tol = 1e-6

solver.structure_linear_solver = AztecSolver(aztec_parameters, preconditioner_type, preconditioner_parameters, tol, nit_max, overlap_level)
#so

any hint on what i may be doing wrong will be very welcome (i am convinced i miss a fundamental parameter but the failure provides no info at all...)

thanks in advance

Riccardo

--

Dr. Riccardo Rossi, Civil Engineer

Member of Kratos Team

International Center for Numerical Methods in Engineering - CIMNE
Campus Norte, Edificio C1

c/ Gran Capitán s/n

08034 Barcelona, España

Tel:        (+34) 93 401 56 96

Fax:       (+34) 93.401.6517

web:       www.cimne.com<http://www.cimne.com/>



More information about the Trilinos-Users mailing list