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 ierr = MatCreateSeqAIJ(PETSC_COMM_WORLD,m,n,20,0,&A);CHKERRQ(ierr); 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 ierr = MatSetValues(A,1,&i,cnt,js,values,INSERT_VALUES);CHKERRQ(ierr); 29 } 30 ierr = MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY);CHKERRQ(ierr); 31 ierr = MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY);CHKERRQ(ierr); 32 33 ierr = PetscViewerBinaryOpen(PETSC_COMM_WORLD,"rect",FILE_MODE_WRITE,&view);CHKERRQ(ierr); 34 ierr = MatView(A,view);CHKERRQ(ierr); 35 ierr = PetscViewerDestroy(&view);CHKERRQ(ierr); 36 37 ierr = MatDestroy(&A);CHKERRQ(ierr); 38 39 ierr = PetscFinalize(); 40 return ierr; 41 } 42 43 44 45 /*TEST 46 47 test: 48 49 TEST*/ 50