Actual source code: ex255.c

  1: static char help[] = "Tests MatConvert from AIJ to MATIS with a block size greater than 1.\n";

  3: #include <petscmat.h>
  4: int main(int argc,char **args)
  5: {
  6:   Mat            A,B;
  7:   char           file[PETSC_MAX_PATH_LEN];
  8:   PetscViewer    fd;
  9:   PetscBool      flg,equal;

 11:   PetscInitialize(&argc,&args,(char*)0,help);

 13:   /* Load an AIJ matrix */
 14:   PetscOptionsGetString(NULL,NULL,"-f",file,sizeof(file),&flg);
 16:   PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,FILE_MODE_READ,&fd);
 17:   MatCreate(PETSC_COMM_WORLD,&A);
 18:   MatSetFromOptions(A);
 19:   MatLoad(A,fd);

 21:   /* Convert it to MATIS */
 22:   MatConvert(A,MATIS,MAT_INITIAL_MATRIX,&B);

 24:   /* Check they are equal */
 25:   MatEqual(A,B,&equal);

 28:   MatDestroy(&A);
 29:   MatDestroy(&B);
 30:   PetscViewerDestroy(&fd);
 31:   PetscFinalize();
 32: }

 34: /*TEST
 35:    test:
 36:      requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
 37:      args: -mat_type aij -matload_block_size {{1 2}} -f ${DATAFILESPATH}/matrices/smallbs2
 38:      output_file: output/empty.out

 40: TEST*/