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*/