int MatLoad(Viewer viewer,MatType outtype,Mat *newmat)Collective on Viewer
viewer | - binary file viewer, created with ViewerBinaryOpen() |
outtype | - type of matrix desired, for example MATSEQAIJ, MATMPIROWBS, etc. See types in petsc/include/mat.h. |
-mat_aij | - AIJ type |
-mat_baij | - block AIJ type |
-mat_dense | - dense type |
-mat_bdiag | - block diagonal type |
-mat_complex | - indicates the matrix has complex entries |
-mat_double | - indicates the matrix has double entries |
-mat_seqaij | - AIJ type |
-mat_mpiaij | - parallel AIJ type |
-mat_seqbaij | - block AIJ type |
-mat_mpibaij | - parallel block AIJ type |
-mat_seqbdiag | - block diagonal type |
-mat_mpibdiag | - parallel block diagonal type |
-mat_mpirowbs | - parallel rowbs type |
-mat_seqdense | - dense type |
-mat_mpidense | - parallel dense type |
In parallel, each processor can load a subset of rows (or the entire matrix). This routine is especially useful when a large matrix is stored on disk and only part of it existsis desired on each processor. For example, a parallel solver may access only some of the rows from each processor. The algorithm used here reads relatively small blocks of data rather than reading the entire matrix and then subsetting it.
int MAT_COOKIE
int number of rows
int number of columns
int total number of nonzeros
int *number nonzeros in each row
int *column indices of all nonzeros (starting index is zero)
Scalar *values of all nonzeros
Note for Cray users, the int's stored in the binary file are 32 bit integers; not 64 as they are represented in the memory, so if you write your own routines to read/write these binary files from the Cray you need to adjust the integer sizes that you read in, see PetscReadBinary() and PetscWriteBinary() to see how this may be done.
In addition, PETSc automatically does the byte swapping for machines that store the bytes reversed, e.g. DEC alpha, freebsd, linux, nt and the paragon; thus if you write your own binary read/write routines you have to swap the bytes; see PetscReadBinary() and PetscWriteBinary() to see how this may be done.
Level:beginner
Location:src/mat/utils/matio.c
Matrix Index
Table of Contents