1 static char help[] = "Reads binary matrix - twice\n"; 2 3 #include <petscmat.h> 4 int main(int argc, char **args) 5 { 6 Mat A; 7 PetscViewer fd; /* viewer */ 8 char file[PETSC_MAX_PATH_LEN]; /* input file name */ 9 PetscBool flg; 10 11 PetscFunctionBeginUser; 12 PetscCall(PetscInitialize(&argc, &args, (char *)0, help)); 13 PetscCall(PetscOptionsGetString(NULL, NULL, "-f", file, sizeof(file), &flg)); 14 PetscCheck(flg, PETSC_COMM_WORLD, PETSC_ERR_USER, "Must indicate binary file with the -f option"); 15 16 PetscCall(MatCreate(PETSC_COMM_WORLD, &A)); 17 PetscCall(MatSetFromOptions(A)); 18 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "First MatLoad! \n")); 19 PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, file, FILE_MODE_READ, &fd)); 20 PetscCall(MatLoad(A, fd)); 21 PetscCall(PetscViewerDestroy(&fd)); 22 PetscCall(MatView(A, PETSC_VIEWER_STDOUT_WORLD)); 23 24 PetscCall(PetscOptionsGetString(NULL, NULL, "-f2", file, sizeof(file), &flg)); 25 PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Second MatLoad! \n")); 26 PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, file, FILE_MODE_READ, &fd)); 27 PetscCall(MatLoad(A, fd)); 28 PetscCall(PetscViewerDestroy(&fd)); 29 PetscCall(MatView(A, PETSC_VIEWER_STDOUT_WORLD)); 30 31 PetscCall(MatDestroy(&A)); 32 PetscCall(PetscFinalize()); 33 return 0; 34 } 35 36 /*TEST 37 38 test: 39 suffix: aij_1 40 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 41 args: -f ${DATAFILESPATH}/matrices/small -mat_type aij -mat_block_size 1 42 43 test: 44 suffix: aij_2 45 nsize: 2 46 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 47 args: -f ${DATAFILESPATH}/matrices/small -mat_type aij -mat_block_size 1 48 49 test: 50 suffix: aij_2_d 51 nsize: 2 52 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 53 args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type aij -mat_block_size 1 54 55 test: 56 suffix: baij_1_2 57 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 58 args: -f ${DATAFILESPATH}/matrices/small -mat_type baij -mat_block_size 2 59 60 test: 61 suffix: baij_2_1_d 62 nsize: 2 63 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 64 args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type baij -mat_block_size 1 65 66 test: 67 suffix: baij_2_2 68 nsize: 2 69 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 70 args: -f ${DATAFILESPATH}/matrices/small -mat_type baij -mat_block_size 2 71 72 test: 73 suffix: baij_2_2_d 74 nsize: 2 75 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 76 args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type baij -mat_block_size 2 77 78 test: 79 suffix: sbaij_1_1 80 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 81 args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 1 82 83 test: 84 suffix: sbaij_1_2 85 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 86 args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 2 87 88 test: 89 suffix: sbaij_2_1_d 90 nsize: 2 91 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 92 args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type sbaij -mat_block_size 1 93 94 test: 95 suffix: sbaij_2_2 96 nsize: 2 97 requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES) 98 args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 2 99 100 TEST*/ 101