xref: /petsc/src/dm/impls/composite/tests/ex1.c (revision 8ebe3e4e9e00d86ece2e9fcd0cc84910b0ad437c)
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