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. Thanks, Florian