xref: /petsc/src/mat/tests/ex65.c (revision 40badf4fbc550ac1f60bd080eaff6de6d55b946d)
1 
2 static char help[] = "Saves a rectangular sparse matrix to disk.\n\n";
3 
4 #include <petscmat.h>
5 
6 int main(int argc,char **args)
7 {
8   Mat            A;
9   PetscErrorCode ierr;
10   PetscInt       m = 100,n = 11,js[11],i,j,cnt;
11   PetscScalar    values[11];
12   PetscViewer    view;
13 
14   ierr = PetscInitialize(&argc,&args,(char*)0,help);if (ierr) return ierr;
15   CHKERRQ(MatCreateSeqAIJ(PETSC_COMM_WORLD,m,n,20,0,&A));
16 
17   for (i=0; i<n; i++) values[i] = (PetscReal)i;
18 
19   for (i=0; i<m; i++) {
20     cnt = 0;
21     if (i % 2) {
22       for (j=0; j<n; j += 2) {
23         js[cnt++] = j;
24       }
25     } else {
26       ;
27     }
28     CHKERRQ(MatSetValues(A,1,&i,cnt,js,values,INSERT_VALUES));
29   }
30   CHKERRQ(MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY));
31   CHKERRQ(MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY));
32 
33   CHKERRQ(PetscViewerBinaryOpen(PETSC_COMM_WORLD,"rect",FILE_MODE_WRITE,&view));
34   CHKERRQ(MatView(A,view));
35   CHKERRQ(PetscViewerDestroy(&view));
36 
37   CHKERRQ(MatDestroy(&A));
38 
39   ierr = PetscFinalize();
40   return ierr;
41 }
42 
43 /*TEST
44 
45    test:
46 
47 TEST*/
48