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