/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. Detected bug in DMCreateMatrix() for skinny domains with periodic boundary conditions in overestimating nonzero preallocation Creation Date : 08-12-2016 Last Modified : Thu 08 Dec 2016 10:46:02 AM CET Created By : Davide Monsorno _._._._._._._._._._._._._._._._._._._._._.*/ #include int main(int argc, char *argv[]) { PetscErrorCode ierr; PetscInt nx = 2; PetscInt ny = 2; PetscInt nz = 128; DM da; Mat A; ierr = PetscInitialize(&argc,&argv,NULL,NULL);if (ierr) return ierr; ierr = DMDACreate3d(PETSC_COMM_WORLD,DM_BOUNDARY_PERIODIC,DM_BOUNDARY_PERIODIC,DM_BOUNDARY_GHOSTED,DMDA_STENCIL_BOX,nx,ny,nz, PETSC_DECIDE,PETSC_DECIDE,PETSC_DECIDE,1,2,NULL,NULL,NULL,&da);CHKERRQ(ierr); ierr = DMSetFromOptions(da);CHKERRQ(ierr); ierr = DMSetUp(da);CHKERRQ(ierr); ierr = DMView(da,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); ierr = DMCreateMatrix(da,&A);CHKERRQ(ierr); ierr = MatDestroy(&A);CHKERRQ(ierr); ierr = DMDestroy(&da);CHKERRQ(ierr); ierr = PetscFinalize(); return ierr; } /*TEST test: nsize: 5 TEST*/