<p dir="ltr">That's right. We need to change all the examples.</p>
<p dir="ltr">   Matt</p>
<div class="gmail_quote">On Jan 28, 2014 10:25 PM, "Jed Brown" <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> writes:<br>
<br>
> On Tue, Jan 28, 2014 at 9:41 PM, Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br>
><br>
>> Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> writes:<br>
>> > In ex62:<br>
>> ><br>
>> >   if (user.runType == RUN_FULL) {<br>
>> >     PetscViewer viewer;<br>
>> >     Vec         uLocal;<br>
>> >     const char *name;<br>
>> ><br>
>> >     ierr = PetscViewerCreate(PETSC_COMM_WORLD, &viewer);CHKERRQ(ierr);<br>
>> >     ierr = PetscViewerSetType(viewer, PETSCVIEWERVTK);CHKERRQ(ierr);<br>
>> >     ierr = PetscViewerSetFormat(viewer,<br>
>> > PETSC_VIEWER_ASCII_VTK);CHKERRQ(ierr);<br>
>> >     ierr = PetscViewerFileSetName(viewer, "ex62_sol.vtk");CHKERRQ(ierr);<br>
>><br>
>> Please don't do this.  Just set the type to PETSCVIEWERVTK, set the file<br>
>> name to some *.vtu; the VTK viewer will infer output format from<br>
>> extension and write the VTU XML format with binary-appended data in a<br>
>> fairly fast and memory-scalable way.  Then<br>
>><br>
>>   VecView(u,viewer);<br>
><br>
><br>
> I think Jed is wrong here. You need to be using local vectors since<br>
> they have BC and constraints in them. Please explain how your VTU<br>
> format will magically put them in.<br>
<br>
We made this work when I threw a temper tantrum while we were writing TS<br>
ex11.c (late 2012).<br>
<br>
PetscErrorCode VecView_Plex(Vec v, PetscViewer viewer)<br>
{<br>
  DM             dm;<br>
  PetscBool      isvtk;<br>
  PetscErrorCode ierr;<br>
<br>
  PetscFunctionBegin;<br>
  ierr = VecGetDM(v, &dm);CHKERRQ(ierr);<br>
  if (!dm) SETERRQ(PetscObjectComm((PetscObject)v), PETSC_ERR_ARG_WRONG, "Vector not generated from a DM");<br>
  ierr = PetscObjectTypeCompare((PetscObject) viewer, PETSCVIEWERVTK, &isvtk);CHKERRQ(ierr);<br>
  if (isvtk) {<br>
    Vec         locv;<br>
    const char *name;<br>
<br>
    ierr = DMGetLocalVector(dm, &locv);CHKERRQ(ierr);<br>
    ierr = PetscObjectGetName((PetscObject) v, &name);CHKERRQ(ierr);<br>
    ierr = PetscObjectSetName((PetscObject) locv, name);CHKERRQ(ierr);<br>
    ierr = DMGlobalToLocalBegin(dm, v, INSERT_VALUES, locv);CHKERRQ(ierr);<br>
    ierr = DMGlobalToLocalEnd(dm, v, INSERT_VALUES, locv);CHKERRQ(ierr);<br>
    ierr = VecView_Plex_Local(locv, viewer);CHKERRQ(ierr);<br>
    ierr = DMRestoreLocalVector(dm, &locv);CHKERRQ(ierr);<br>
</blockquote></div>