MatView#
display information about a matrix in a variety ways
Synopsis#
#include "petscmat.h"
PetscErrorCode MatView(Mat mat, PetscViewer viewer)
Collective on viewer
Input Parameters#
mat - the matrix
viewer - visualization context
Options Database Keys#
-mat_view ::ascii_info - Prints info on matrix at conclusion of
MatAssemblyEnd()
-mat_view ::ascii_info_detail - Prints more detailed info
-mat_view - Prints matrix in ASCII format
-mat_view ::ascii_matlab - Prints matrix in MATLAB format
-mat_view draw - PetscDraws nonzero structure of matrix, using
MatView()
andPetscDrawOpenX()
.-display
- Sets display name (default is host)-draw_pause
- Sets number of seconds to pause after display-mat_view socket - Sends matrix to socket, can be accessed from MATLAB (see Users-Manual: ch_matlab for details)
-viewer_socket_machine
- --viewer_socket_port
- --mat_view binary - save matrix to file in binary format
-viewer_binary_filename
- -
Notes#
The available visualization contexts include
PETSC_VIEWER_STDOUT_SELF
- for sequential matricesPETSC_VIEWER_STDOUT_WORLD
- for parallel matrices created onPETSC_COMM_WORLD
PETSC_VIEWER_STDOUT_
(comm) - for matrices created on MPI communicator commPETSC_VIEWER_DRAW_WORLD
- graphical display of nonzero structure
The user can open alternative visualization contexts with
PetscViewerASCIIOpen()
- Outputs matrix to a specified filePetscViewerBinaryOpen()
- Outputs matrix in binary to a specified file; corresponding input usesMatLoad()
PetscViewerDrawOpen()
- Outputs nonzero matrix structure to an X window displayPetscViewerSocketOpen()
- Outputs matrix to Socket viewer. Currently only theMATSEQDENSE
andMATAIJ
matrix types support the Socket viewer.
The user can call PetscViewerPushFormat()
to specify the output
format of ASCII printed objects (when using PETSC_VIEWER_STDOUT_SELF
,
PETSC_VIEWER_STDOUT_WORLD
and PetscViewerASCIIOpen()
). Available formats include
PETSC_VIEWER_DEFAULT
- default, prints matrix contentsPETSC_VIEWER_ASCII_MATLAB
- prints matrix contents in MATLAB formatPETSC_VIEWER_ASCII_DENSE
- prints entire matrix including zerosPETSC_VIEWER_ASCII_COMMON
- prints matrix contents, using a sparse format common among all matrix typesPETSC_VIEWER_ASCII_IMPL
- prints matrix contents, using an implementation-specific format (which is in many cases the same as the default)PETSC_VIEWER_ASCII_INFO
- prints basic information about the matrix size and structure (not the matrix entries)PETSC_VIEWER_ASCII_INFO_DETAIL
- prints more detailed information about the matrix structure
The ASCII viewers are only recommended for small matrices on at most a moderate number of processes, the program will seemingly hang and take hours for larger matrices, for larger matrices one should use the binary format.
In the debugger you can do “call MatView(mat,0)” to display the matrix. (The same holds for any PETSc object viewer).
See the manual page for MatLoad()
for the exact format of the binary file when the binary
viewer is used.
See share/petsc/matlab/PetscBinaryRead.m for a MATLAB code that can read in the binary file when the binary viewer is used and lib/petsc/bin/PetscBinaryIO.py for loading them into Python.
One can use ‘-mat_view draw -draw_pause -1’ to pause the graphical display of matrix nonzero structure, and then use the following mouse functions.
left mouse: zoom in
middle mouse: zoom out
right mouse: continue with the simulation
See Also#
Matrices, Mat
, PetscViewerPushFormat()
, PetscViewerASCIIOpen()
, PetscViewerDrawOpen()
, PetscViewer
,
PetscViewerSocketOpen()
, PetscViewerBinaryOpen()
, MatLoad()
, MatViewFromOptions()
Level#
beginner
Location#
Examples#
src/ksp/ksp/tutorials/ex54f.F90
src/ksp/ksp/tutorials/ex54.c
src/ksp/ksp/tutorials/ex56.c
src/ksp/ksp/tutorials/ex84.c
src/ksp/ksp/tutorials/ex28.c
src/ksp/ksp/tutorials/ex4.c
src/dm/tutorials/ex14.c
src/ksp/ksp/tutorials/ex72.c
src/ksp/ksp/tutorials/ex55.c
src/ksp/ksp/tutorials/ex34.c
Implementations#
MatView_SchurCorrection() in src/ksp/pc/impls/hpddm/pchpddm.cxx
MatView_MPIAdj() in src/mat/impls/adj/mpi/mpiadj.c
MatView_MKL_CPARDISO() in src/mat/impls/aij/mpi/mkl_cpardiso/mkl_cpardiso.c
MatView_MPIAIJ() in src/mat/impls/aij/mpi/mpiaij.c
MatView_MUMPS() in src/mat/impls/aij/mpi/mumps/mumps.c
MatView_PaStiX() in src/mat/impls/aij/mpi/pastix/pastix.c
MatView_STRUMPACK() in src/mat/impls/aij/mpi/strumpack/strumpack.c
MatView_SuperLU_DIST() in src/mat/impls/aij/mpi/superlu_dist/superlu_dist.c
MatView_SeqAIJ() in src/mat/impls/aij/seq/aij.c
MatView_KLU() in src/mat/impls/aij/seq/klu/klu.c
MatView_MKL_PARDISO() in src/mat/impls/aij/seq/mkl_pardiso/mkl_pardiso.c
MatView_SuperLU() in src/mat/impls/aij/seq/superlu/superlu.c
MatView_UMFPACK() in src/mat/impls/aij/seq/umfpack/umfpack.c
MatView_MPIBAIJ() in src/mat/impls/baij/mpi/mpibaij.c
MatView_SeqBAIJ() in src/mat/impls/baij/seq/baij.c
MatView_BlockMat() in src/mat/impls/blockmat/seq/blockmat.c
MatView_ConstantDiagonal() in src/mat/impls/cdiagonal/cdiagonal.c
MatView_MPIDense() in src/mat/impls/dense/mpi/mpidense.c
MatView_SeqDense() in src/mat/impls/dense/seq/dense.c
MatView_Diagonal() in src/mat/impls/diagonal/diagonal.c
MatView_Elemental() in src/mat/impls/elemental/matelem.cxx
MatView_H2OPUS() in src/mat/impls/h2opus/cuda/math2opus.cu
MatView_Htool() in src/mat/impls/htool/htool.cxx
MatView_HYPRE() in src/mat/impls/hypre/mhypre.c
MatView_IS() in src/mat/impls/is/matis.c
MatView_KAIJ() in src/mat/impls/kaij/kaij.c
MatView_SeqMAIJ() in src/mat/impls/maij/maij.c
MatView_MPIMAIJ() in src/mat/impls/maij/maij.c
MatView_MFFD() in src/mat/impls/mffd/mffd.c
MatView_Nest() in src/mat/impls/nest/matnest.c
MatView_Preallocator() in src/mat/impls/preallocator/matpreallocator.c
MatView_MPISBAIJ() in src/mat/impls/sbaij/mpi/mpisbaij.c
MatView_CHOLMOD() in src/mat/impls/sbaij/seq/cholmod/sbaijcholmod.c
MatView_SeqSBAIJ() in src/mat/impls/sbaij/seq/sbaij.c
MatView_ScaLAPACK() in src/mat/impls/scalapack/matscalapack.c
MatView_MPISELL() in src/mat/impls/sell/mpi/mpisell.c
MatView_SeqSELL() in src/mat/impls/sell/seq/sell.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages