[petsc-dev] PetscPrintf() is never suppose to be used to print	error messages
    Barry Smith 
    bsmith at mcs.anl.gov
       
    Wed Jan  2 02:07:43 CST 2013
    
    
  
  that is what (*PetscErrorPrintf)() is for. Please fix. Thanks Barry
  ierr = MatSetValues(A, numIndices, indices, numIndices, indices, values, mode);
  if (ierr) {
    PetscMPIInt    rank;
    PetscErrorCode ierr2;
    ierr2 = MPI_Comm_rank(((PetscObject) A)->comm, &rank);CHKERRQ(ierr2);
    ierr2 = PetscPrintf(PETSC_COMM_SELF, "[%D]ERROR in DMPlexMatSetClosure\n", rank);CHKERRQ(ierr2);
    ierr2 = DMPlexPrintMatSetValues(A, point, numIndices, indices, values);CHKERRQ(ierr2);
    ierr2 = DMRestoreWorkArray(dm, numIndices, PETSC_INT, &indices);CHKERRQ(ierr);
                                      Also the above should be ierr2 ^^^^^
    CHKERRQ(ierr);
  }
Why? Because PetscPrintf() and (*PetscErrorPrintf)() may be completely different streams, for example (*PetscErrorPrintf)() going to a nice GUI popup or console etc etc
    
    
More information about the petsc-dev
mailing list