Views a vector object.
vec - the vector
viewer - an optional
The available visualization contexts include
PETSC_VIEWER_STDOUT_SELF- for sequential vectors
PETSC_VIEWER_STDOUT_(comm) - for parallel vectors created on MPI communicator comm
You can change the format the vector is printed using the
The user can open alternative viewers with
PetscViewerASCIIOpen()- Outputs vector to a specified file
PetscViewerDrawOpen()- Outputs vector to an X window display
PetscViewerSocketOpen()- Outputs vector to Socket viewer
PetscViewerHDF5Open()- Outputs vector to HDF5 file viewer
The user can call
PetscViewerPushFormat() to specify the output
format of ASCII printed objects (when using
PetscViewerASCIIOpen()). Available formats include
PETSC_VIEWER_DEFAULT- default, prints vector contents
PETSC_VIEWER_ASCII_MATLAB- prints vector contents in MATLAB format
PETSC_VIEWER_ASCII_INDEX- prints vector contents, including indices of vector elements
PETSC_VIEWER_ASCII_COMMON- prints vector contents, using a format common among all vector types
You can pass any number of vector objects, or other PETSc objects to the same viewer.
In the debugger you can do call
VecView(v,0) to display the vector. (The same holds for any PETSc object viewer).
Notes for binary viewer#
If you pass multiple vectors to a binary viewer you can read them back in in the same order
If the blocksize of the vector is greater than one then you must provide a unique prefix to
the vector with
PetscObject)vec,”uniqueprefix”); BEFORE calling
VecView() on the
vector to be stored and then set that same unique prefix on the vector that you pass to
VecLoad(). The blocksize
information is stored in an ASCII file with the same name as the binary file plus a “.info” appended to the
filename. If you copy the binary file, make sure you copy the associated .info file with it.
See the manual page for
VecLoad() on the exact format the binary viewer stores
the values in the file.
Notes for HDF5 Viewer#
The name of the
Vec (given with
PetscObjectSetName() is the name that is used
for the object in the HDF5 file. If you wish to store the same Vec into multiple
datasets in the same file (typically with different values), you must change its
name each time before calling the
VecView(). To load the same vector,
the name of the Vec object passed to
VecLoad() must be the same.
If the block size of the vector is greater than 1 then it is used as the first dimension in the HDF5 array.
If the function
PetscViewerHDF5SetBaseDimension2()is called then even if the block size is one it will
be used as the first dimension in the HDF5 array (that is the HDF5 array will always be two dimensional)
PetscViewerHDF5SetTimestep() which adds an additional complication to reading and writing
with the HDF5 viewer.
Vectors and Parallel Data,
VecView_DMComposite in src/dm/impls/composite/pack.c
VecView_pforest in src/dm/impls/forest/p4est/pforest.h
VecView_Network in src/dm/impls/network/networkcreate.c
VecView_Plex in src/dm/impls/plex/plex.c
VecView_Swarm in src/dm/impls/swarm/swarm.c
VecView_MPI in src/vec/vec/impls/mpi/pdvec.c
VecView_Nest in src/vec/vec/impls/nest/vecnest.c
VecView_Seq in src/vec/vec/impls/seq/bvec2.c