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