Actual source code: ex1.c
1: static char help[] = "Tests DMClone() with DMComposite\n\n";
3: #include <petscdmcomposite.h>
4: #include <petscdmda.h>
6: int main(int argc, char **argv)
7: {
8: DM newdm, dm, dm1, dm2;
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: }
31: /*TEST
33: test:
34: suffix: 0
36: TEST*/