[Trilinos-Users] Error with Ifpack
Daniel Santos
dsantosolivan at gmail.com
Fri Jul 20 05:13:41 EDT 2018
Hello,
First thank you for the different packages of trilinos, there have been a
huge help in our numerical work.
Right now, I am using Ifpack for constructing a preconditioner that I use
with the Belos solver and, in general, this works very nicely but there are
some cases where I have problems.
In cases where the matrix is ill-conditioned, the preconditioner builder
fails, this is ok and I know what to do about it when it happens.
The problem is that when I run it with several cores, some of them return
this kind of errors:
IFPACK ERROR -22, *****/ifpack/src/Ifpack_Amesos.cpp, line 230
IFPACK ERROR -22, *****/ifpack/src/Ifpack_AdditiveSchwarz.h, line 898
but some of then get stuck inside the Ifpack method and we cannot deal with
this error.
My code that I adapted from some example is this one :
Teuchos::ParameterList ifpackList;
Ifpack Factory;
std::string PrecType = "Amesos"; // incomplete LU
int OverlapLevel = 1;
RCP<Ifpack_Preconditioner> Prec = Teuchos::rcp( Factory.Create(PrecType,
&*A, OverlapLevel) );
assert(Prec != Teuchos::null);
ifpackList.set("fact: level-of-fill", 1);
ifpackList.set("schwarz: combine mode", "Add");
Prec->SetParameters(ifpackList);
Prec->Initialize();
Prec->Compute();
The code gets stuck in the Compute() function and this is the gdb trace of
the cores that don't exit this function:
#0 0x00007fffe6196553 in mca_btl_vader_component_progress ()
from ******/lib/openmpi/mca_btl_vader.so
#1 0x00007ffff0c035bc in opal_progress ()
from ******/lib/libopen-pal.so.40
#2 0x00007ffff4a4d1c5 in ompi_request_default_wait ()
from ******/lib/libmpi.so.40
#3 0x00007ffff4aa0a24 in ompi_coll_base_barrier_intra_recursivedoubling ()
from ******/lib/libmpi.so.40
#4 0x00007ffff4a620f7 in PMPI_Barrier ()
from ******/lib/libmpi.so.40
#5 0x00007ffff6cbff07 in Epetra_MpiDistributor::DoPosts(char*, int, int&,
char*&) () from ******/lib/libepetra.so.12
#6 0x00007ffff6cc0b0c in Epetra_MpiDistributor::DoReverse(char*, int,
int&, char*&) () from ******/lib/libepetra.so.12
#7 0x00007ffff6c4a6d8 in
Epetra_DistObject::DoTransfer(Epetra_SrcDistObject const&,
Epetra_CombineMode, int, int, int, int, int*, int*, int*, int*, int&,
char*&, int&, char*&, Epetra_Distributor&, bool, Epetra_OffsetIndex const*)
()
from ******/lib/libepetra.so.12
#8 0x00007ffff6c4b509 in Epetra_DistObject::Export(Epetra_SrcDistObject
const&, Epetra_Import const&, Epetra_CombineMode, Epetra_OffsetIndex
const*) ()
from ******/lib/libepetra.so.12
#9 0x00007ffff7531add in
Ifpack_OverlappingRowMatrix::ExportMultiVector(Epetra_MultiVector const&,
Epetra_MultiVector&, Epetra_CombineMode) ()
---Type <return> to continue, or q <return> to quit---
from ******/lib/libifpack.so.12
#10 0x00007ffff74eacb3 in
Ifpack_AdditiveSchwarz<Ifpack_Amesos>::ApplyInverse(Epetra_MultiVector
const&, Epetra_MultiVector&) const ()
from ******/lib/libifpack.so.12
#11 0x00007ffff7481f86 in Ifpack_Condest(Ifpack_Preconditioner const&,
Ifpack_CondestType, int, double, Epetra_RowMatrix*) ()
from ******/lib/libifpack.so.12
#12 0x00007ffff74893f0 in
Ifpack_AdditiveSchwarz<Ifpack_Amesos>::Condest(Ifpack_CondestType, int,
double, Epetra_RowMatrix*) ()
from ******/lib/libifpack.so.12
#13 0x00007ffff74a1975 in Ifpack_AdditiveSchwarz<Ifpack_Amesos>::Compute()
()
from ******/lib/libifpack.so.12
There is something that I can do to deal with the error when this happend?
Thank you very much,
Daniel Santos-Oliván
LàCan - UPC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20180720/ed27b233/attachment.html>
More information about the Trilinos-Users
mailing list