1 static char help[] = "Test MatrixMarket outputting.\n\n";
2
3 /*
4 Include "petscmat.h" so that we can use matrices.
5 automatically includes:
6 petscsys.h - base PETSc routines petscvec.h - vectors
7 petscmat.h - matrices
8 petscis.h - index sets petscviewer.h - viewers
9 */
10
11 #include <petscmat.h>
12
main(int argc,char ** args)13 int main(int argc, char **args)
14 {
15 Mat A;
16 PetscViewer fd; /* viewer */
17 char file[PETSC_MAX_PATH_LEN]; /* input file name */
18 PetscBool flg;
19
20 PetscFunctionBeginUser;
21 PetscCall(PetscInitialize(&argc, &args, NULL, help));
22 PetscCall(PetscOptionsGetString(NULL, NULL, "-f0", file, sizeof(file), &flg));
23 PetscCheck(flg, PETSC_COMM_WORLD, PETSC_ERR_USER, "Must indicate binary file with the -f0 option");
24 PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, file, FILE_MODE_READ, &fd));
25 PetscCall(MatCreate(PETSC_COMM_WORLD, &A));
26 PetscCall(MatLoad(A, fd));
27 PetscCall(PetscViewerDestroy(&fd));
28
29 PetscCall(PetscViewerPushFormat(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_ASCII_MATRIXMARKET));
30 PetscCall(MatView(A, PETSC_VIEWER_STDOUT_WORLD));
31 PetscCall(PetscViewerPopFormat(PETSC_VIEWER_STDOUT_WORLD));
32 PetscCall(MatDestroy(&A));
33 PetscCall(PetscFinalize());
34 return 0;
35 }
36
37 /*TEST
38
39 test:
40 args: -f0 ${wPETSC_DIR}/share/petsc/datafiles/matrices/ns-real-int32-float64
41 requires: !complex double !defined(PETSC_USE_64BIT_INDICES)
42
43 TEST*/
44