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 29 /*TEST 30 31 test: 32 33 test: 34 suffix: 2 35 nsize: 2 36 37 TEST*/ 38