1 static char help[] = "Tests DMClone() with DMComposite\n\n"; 2 3 #include <petscdmcomposite.h> 4 #include <petscdmda.h> 5 6 int main(int argc,char **argv) 7 { 8 DM newdm, dm, dm1,dm2; 9 PetscErrorCode ierr; 10 11 PetscFunctionBeginUser; 12 ierr = PetscInitialize(&argc, &argv, 0, help); if (ierr) return ierr; 13 ierr = DMCompositeCreate(PETSC_COMM_WORLD, &dm);CHKERRQ(ierr); 14 ierr = DMDACreate1d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, 100, 1, 1, NULL, &dm1);CHKERRQ(ierr); 15 ierr = DMDACreate1d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, 100, 1, 1, NULL, &dm2);CHKERRQ(ierr); 16 ierr = DMSetUp(dm1);CHKERRQ(ierr); 17 ierr = DMSetUp(dm2);CHKERRQ(ierr); 18 ierr = DMCompositeAddDM(dm, dm1);CHKERRQ(ierr); 19 ierr = DMCompositeAddDM(dm, dm2);CHKERRQ(ierr); 20 ierr = DMDestroy(&dm1);CHKERRQ(ierr); 21 ierr = DMDestroy(&dm2);CHKERRQ(ierr); 22 ierr = DMSetFromOptions(dm);CHKERRQ(ierr); 23 ierr = DMSetUp(dm);CHKERRQ(ierr); 24 ierr = DMClone(dm, &newdm);CHKERRQ(ierr); 25 ierr = DMDestroy(&dm);CHKERRQ(ierr); 26 ierr = DMDestroy(&newdm);CHKERRQ(ierr); 27 ierr = PetscFinalize(); 28 return ierr; 29 } 30 31 /*TEST 32 33 test: 34 suffix: 0 35 36 TEST*/ 37