On Tue, Jan 28, 2014 at 9:41 PM, Jed Brown <[email protected]> wrote:
> Matthew Knepley <[email protected]> writes: > > In ex62: > > > > if (user.runType == RUN_FULL) { > > PetscViewer viewer; > > Vec uLocal; > > const char *name; > > > > ierr = PetscViewerCreate(PETSC_COMM_WORLD, &viewer);CHKERRQ(ierr); > > ierr = PetscViewerSetType(viewer, PETSCVIEWERVTK);CHKERRQ(ierr); > > ierr = PetscViewerSetFormat(viewer, > > PETSC_VIEWER_ASCII_VTK);CHKERRQ(ierr); > > ierr = PetscViewerFileSetName(viewer, "ex62_sol.vtk");CHKERRQ(ierr); > > Please don't do this. Just set the type to PETSCVIEWERVTK, set the file > name to some *.vtu; the VTK viewer will infer output format from > extension and write the VTU XML format with binary-appended data in a > fairly fast and memory-scalable way. Then > > VecView(u,viewer); I think Jed is wrong here. You need to be using local vectors since they have BC and constraints in them. Please explain how your VTU format will magically put them in. Matt > > ierr = DMGetLocalVector(dm, &uLocal);CHKERRQ(ierr); > > ierr = PetscObjectGetName((PetscObject) u, &name);CHKERRQ(ierr); > > ierr = PetscObjectSetName((PetscObject) uLocal, name);CHKERRQ(ierr); > > ierr = DMGlobalToLocalBegin(dm, u, INSERT_VALUES, > uLocal);CHKERRQ(ierr); > > ierr = DMGlobalToLocalEnd(dm, u, INSERT_VALUES, > uLocal);CHKERRQ(ierr); > > ierr = VecView(uLocal, viewer);CHKERRQ(ierr); > > ierr = DMRestoreLocalVector(dm, &uLocal);CHKERRQ(ierr); > > None of the above, then close the file: > > > ierr = PetscViewerDestroy(&viewer);CHKERRQ(ierr); > > } > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
