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