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