1 2 static char help[] = "Tests periodic boundary conditions for DMDA1d with periodic boundary conditions.\n\n"; 3 4 #include <petscdmda.h> 5 6 int main(int argc,char **argv) 7 { 8 PetscErrorCode ierr; 9 DM da; 10 Mat A; 11 const PetscInt dfill[4] = {0,1,0,1},ofill[4] = {0,1,1,0}; 12 13 ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr; 14 ierr = DMDACreate1d(PETSC_COMM_WORLD,DM_BOUNDARY_PERIODIC,7,2,1,NULL,&da);CHKERRQ(ierr); 15 ierr = DMSetFromOptions(da);CHKERRQ(ierr); 16 ierr = DMDASetBlockFills(da,dfill,ofill);CHKERRQ(ierr); 17 ierr = DMSetUp(da);CHKERRQ(ierr); 18 ierr = DMCreateMatrix(da,&A);CHKERRQ(ierr); 19 ierr = MatView(A,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); 20 ierr = PetscViewerPushFormat(PETSC_VIEWER_STDOUT_WORLD,PETSC_VIEWER_ASCII_INFO);CHKERRQ(ierr); 21 ierr = MatView(A,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); 22 ierr = MatDestroy(&A);CHKERRQ(ierr); 23 ierr = DMDestroy(&da);CHKERRQ(ierr); 24 ierr = PetscFinalize(); 25 return ierr; 26 } 27 28 /*TEST 29 30 test: 31 32 test: 33 suffix: 2 34 nsize: 2 35 36 TEST*/ 37