[petsc-users] How to view draw a matrix?
Matthew Knepley
knepley at gmail.com
Fri Nov 4 09:21:26 CDT 2016
On Fri, Nov 4, 2016 at 9:14 AM, Florian Lindner <mailinglists at xgm.de> wrote:
> Hello,
>
> I want to print the sparsity structure of a matrix of type MPISBAIJ and
> try to use this code:
>
> PetscErrorCode ierr = 0;
> PetscViewer viewer;
> PetscDraw draw;
> ierr = PetscViewerCreate(communicator, &viewer); CHKERRV(ierr);
> ierr = PetscViewerSetType(viewer, PETSCVIEWERDRAW); CHKERRV(ierr);
> ierr = MatView(matrix, viewer); CHKERRV(ierr);
> ierr = PetscViewerDrawGetDraw(viewer, 0, &draw); CHKERRV(ierr);
> ierr = PetscDrawSetPause(draw, -1); CHKERRV(ierr); // Wait for user
> ierr = PetscDrawDestroy(&draw); CHKERRV(ierr);
> ierr = PetscViewerDestroy(&viewer); CHKERRV(ierr);
>
> communicator is of type MPI_Comm and is PETSC_COMM_WORLD.
>
> It opens an X window and shows the matrix just fine. The window closes
> after a right click and then my application crashes:
>
> --------------------------------------------------------------------------
> [1]PETSC ERROR: PetscDrawFlush() line 27 in /data/scratch/lindnefn/
> software/petsc/src/sys/classes/draw/interface/dflush.c
> Wrong type of object: Parameter # 1
> --------------------------------------------------------------------------
>
> I tried to swap the DrawDestroy and ViewerDestroy calls (though, imho the
> order is correct), but changes nothing.
>
1) Do not Destroy the Draw you get. That is just a borrowed reference.
2) You can do all that by calling
MatViewFromOptions(matrix, NULL, "-mymat_view");
and then passing
-mymat_view draw -draw_pause -1
Matt
> Thanks,
> Florian
>
--
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20161104/12b16085/attachment.html>
More information about the petsc-users
mailing list