00001
00002
00003
00004 ierr = MatCreateSeqAIJ(MPI_COMM_SELF,n,n,3,0,&A); CHKERRQ(ierr);
00005 ierr = VecCreateSeq(MPI_COMM_SELF,n,&rhs); CHKERRQ(ierr);
00006 for (i=0; i<n; i++) {
00007 if (i>0) {
00008 int ii=i-1;
00009 ierr = MatSetValues(A,1,&i,1,&ii,&mone,INSERT_VALUES); CHKERRQ(ierr);
00010 ierr = MatSetValues(A,1,&ii,1,&i,&mone,INSERT_VALUES); CHKERRQ(ierr);
00011 }
00012 ierr = MatSetValues(A,1,&i,1,&i,&two,INSERT_VALUES); CHKERRQ(ierr);
00013 ierr = VecSetValues(rhs,1,&i,&one,INSERT_VALUES); CHKERRQ(ierr);
00014 }
00015 ierr = MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY); CHKERRQ(ierr);
00016 ierr = MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY); CHKERRQ(ierr);
00017 ierr = VecAssemblyBegin(rhs); CHKERRQ(ierr);
00018 ierr = VecAssemblyEnd(rhs); CHKERRQ(ierr);
00019 ierr = VecDuplicate(rhs,&sol); CHKERRQ(ierr);