Actual source code: ex220.c
1: #include <petscmat.h>
3: static char help[PETSC_MAX_PATH_LEN] = "Tests MatLoad() with MatCreateDense() for memory leak ";
5: int main(int argc, char **argv)
6: {
7: PetscViewer viewer;
8: Mat A;
9: char filename[PETSC_MAX_PATH_LEN];
10: PetscBool flg;
12: PetscFunctionBeginUser;
13: PetscCall(PetscInitialize(&argc, &argv, NULL, help));
14: PetscCall(PetscOptionsGetString(NULL, NULL, "-f", filename, sizeof(filename), &flg));
15: PetscCheck(flg, PETSC_COMM_WORLD, PETSC_ERR_USER_INPUT, "Must indicate a filename for input with the -f option");
17: PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, filename, FILE_MODE_READ, &viewer));
18: PetscCall(MatCreateDense(PETSC_COMM_WORLD, PETSC_DECIDE, PETSC_DECIDE, 36, 36, NULL, &A));
19: PetscCall(MatLoad(A, viewer));
20: PetscCall(PetscViewerDestroy(&viewer));
21: PetscCall(MatDestroy(&A));
22: PetscCall(PetscFinalize());
23: return 0;
24: }
26: /*TEST
28: test:
29: requires: double !complex !defined(PETSC_USE_64BIT_INDICES) datafilespath
30: args: -f ${DATAFILESPATH}/matrices/small
32: TEST*/