xref: /petsc/src/dm/impls/composite/tests/ex1.c (revision 609caa7c8c030312b00807b4f015fd827bb80932)
1 static char help[] = "Tests DMClone() with DMComposite\n\n";
2 
3 #include <petscdmcomposite.h>
4 #include <petscdmda.h>
5 
main(int argc,char ** argv)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     output_file: output/empty.out
36 
37 TEST*/
38