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; CHKERRMPI(MPI_Comm_rank(PETSC_COMM_WORLD,&rank)); CHKERRMPI(MPI_Comm_size(PETSC_COMM_WORLD,&size)); /* Test MatSetValues() and MatGetValues() */ CHKERRQ(PetscOptionsGetInt(NULL,NULL,"-mat_block_size",&bs,NULL)); CHKERRQ(PetscOptionsGetInt(NULL,NULL,"-mat_size",&m,NULL)); M = m*bs*size; CHKERRQ(MatCreateBAIJ(PETSC_COMM_WORLD,bs,PETSC_DECIDE,PETSC_DECIDE,M,M,PETSC_DECIDE,NULL,PETSC_DECIDE,NULL,&A)); CHKERRQ(MatGetOwnershipRange(A,&start,&end)); CHKERRQ(PetscOptionsHasName(NULL,NULL,"-column_oriented",&flg)); if (flg) { CHKERRQ(MatSetOption(A,MAT_ROW_ORIENTED,PETSC_FALSE)); } /* inproc assembly */ for (row=start; row