Hello,

since our application has two possible entry paths, petsc could be initialized 
at different positions. When used as a library (in contrast to a standalone 
executable), the code looks like:

    PetscErrorCode ierr;
    std::cout << "Petsc before PetscInitializeNoArguments()"  << std::endl;
    ierr = PetscInitializeNoArguments(); CHKERRV(ierr);
    std::cout << "Petsc after PetscInitializeNoArguments()"  << std::endl;

It never get's to "Petsc after..." and instead hangs and prints this error 
message:

Internal Error: invalid error code 609e0e (Ring ids do not match) in 
MPIR_Allreduce_impl:712
[0]PETSC ERROR: #1 PetscWorldIsSingleHost() line 99 in 
/data2/scratch/lindner/petsc/src/sys/utils/pdisplay.c
[0]PETSC ERROR: #2 PetscSetDisplay() line 123 in 
/data2/scratch/lindner/petsc/src/sys/utils/pdisplay.c
[0]PETSC ERROR: #3 PetscOptionsCheckInitial_Private() line 324 in 
/data2/scratch/lindner/petsc/src/sys/objects/init.c
[0]PETSC ERROR: #4 PetscInitialize() line 881 in 
/data2/scratch/lindner/petsc/src/sys/objects/pinit.c
[0]PETSC ERROR: #5 SolverInterfaceImpl() line 120 in 
src/precice/impl/SolverInterfaceImpl.cpp

Which is somehow incomprehensible for me... What could be the cause for that?

Thanks,
Florian

Reply via email to