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 10 PetscFunctionBeginUser; 11 PetscFunctionBeginUser; 12 PetscCall(PetscInitialize(&argc, &argv, 0, help)); 13 PetscCall(DMCompositeCreate(PETSC_COMM_WORLD, &dm)); 14 PetscCall(DMDACreate1d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, 100, 1, 1, NULL, &dm1)); 15 PetscCall(DMDACreate1d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, 100, 1, 1, NULL, &dm2)); 16 PetscCall(DMSetUp(dm1)); 17 PetscCall(DMSetUp(dm2)); 18 PetscCall(DMCompositeAddDM(dm, dm1)); 19 PetscCall(DMCompositeAddDM(dm, dm2)); 20 PetscCall(DMDestroy(&dm1)); 21 PetscCall(DMDestroy(&dm2)); 22 PetscCall(DMSetFromOptions(dm)); 23 PetscCall(DMSetUp(dm)); 24 PetscCall(DMClone(dm, &newdm)); 25 PetscCall(DMDestroy(&dm)); 26 PetscCall(DMDestroy(&newdm)); 27 PetscCall(PetscFinalize()); 28 return 0; 29 } 30 31 /*TEST 32 33 test: 34 suffix: 0 35 36 TEST*/ 37