static char help[] = "Tests various routines in MatMPIBAIJ format.\n"; #include int main(int argc,char **args) { Mat A; PetscInt m=2,bs=1,M,row,col,start,end,i,j,k; PetscErrorCode ierr; PetscMPIInt rank,size; PetscScalar data=100; PetscBool flg; ierr = PetscInitialize(&argc,&args,(char*)0,help);if (ierr) return ierr; ierr = MPI_Comm_rank(PETSC_COMM_WORLD,&rank);CHKERRMPI(ierr); ierr = MPI_Comm_size(PETSC_COMM_WORLD,&size);CHKERRMPI(ierr); /* Test MatSetValues() and MatGetValues() */ ierr = PetscOptionsGetInt(NULL,NULL,"-mat_block_size",&bs,NULL);CHKERRQ(ierr); ierr = PetscOptionsGetInt(NULL,NULL,"-mat_size",&m,NULL);CHKERRQ(ierr); M = m*bs*size; ierr = MatCreateBAIJ(PETSC_COMM_WORLD,bs,PETSC_DECIDE,PETSC_DECIDE,M,M,PETSC_DECIDE,NULL,PETSC_DECIDE,NULL,&A);CHKERRQ(ierr); ierr = MatGetOwnershipRange(A,&start,&end);CHKERRQ(ierr); ierr = PetscOptionsHasName(NULL,NULL,"-column_oriented",&flg);CHKERRQ(ierr); if (flg) { ierr = MatSetOption(A,MAT_ROW_ORIENTED,PETSC_FALSE);CHKERRQ(ierr); } /* inproc assembly */ for (row=start; row