<div dir="ltr">On Wed, Jan 2, 2013 at 2:07 AM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
  that is what (*PetscErrorPrintf)() is for. Please fix. Thanks Barry<br>
<br>
<br>
  ierr = MatSetValues(A, numIndices, indices, numIndices, indices, values, mode);<br>
  if (ierr) {<br>
    PetscMPIInt    rank;<br>
    PetscErrorCode ierr2;<br>
<br>
    ierr2 = MPI_Comm_rank(((PetscObject) A)->comm, &rank);CHKERRQ(ierr2);<br>
    ierr2 = PetscPrintf(PETSC_COMM_SELF, "[%D]ERROR in DMPlexMatSetClosure\n", rank);CHKERRQ(ierr2);<br>
    ierr2 = DMPlexPrintMatSetValues(A, point, numIndices, indices, values);CHKERRQ(ierr2);<br>
    ierr2 = DMRestoreWorkArray(dm, numIndices, PETSC_INT, &indices);CHKERRQ(ierr);<br>
<br>
                                      Also the above should be ierr2 ^^^^^<br>
    CHKERRQ(ierr);<br>
  }<br>
<br>
<br>
Why? Because PetscPrintf() and (*PetscErrorPrintf)() may be completely different streams, for example (*PetscErrorPrintf)() going to a nice GUI popup or console etc etc<br>
</blockquote></div><br>I fixed the simple thing, but the PrintMatSetValues() is problematic. Right now, it just prints using</div><div class="gmail_extra">PetscPrintf, which is wrong for errors like this, but correct for other things. For normal things, I</div>
<div class="gmail_extra">could make it take a viewer, which could be PETSC_VIEWER_STDOUT_SELF, and reproduce</div><div class="gmail_extra">this behavior. However, do we need to add default viewers for the error streams?</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">   Matt<br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>