Actual source code: ex20.c

  1: static char help[] = "Tests DMDACreate3d() memory usage\n\n";

  3: #include <petscdmda.h>

  5: int main(int argc, char **argv)
  6: {
  7:   DM       dm;
  8:   Vec      X, Y;
  9:   PetscInt dof = 10;

 11:   PetscFunctionBeginUser;
 12:   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
 13:   PetscCall(PetscOptionsGetInt(NULL, NULL, "-dof", &dof, NULL));
 14:   PetscCall(DMDACreate3d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, DM_BOUNDARY_NONE, DM_BOUNDARY_NONE, DMDA_STENCIL_STAR, -128, -128, -128, PETSC_DECIDE, PETSC_DECIDE, PETSC_DECIDE, dof, 1, NULL, NULL, NULL, &dm));
 15:   PetscCall(DMSetFromOptions(dm));
 16:   PetscCall(DMSetUp(dm));
 17:   PetscCall(PetscMemoryTrace("DMDACreate3d        "));

 19:   PetscCall(DMCreateGlobalVector(dm, &X));
 20:   PetscCall(PetscMemoryTrace("DMCreateGlobalVector"));
 21:   PetscCall(DMCreateGlobalVector(dm, &Y));
 22:   PetscCall(PetscMemoryTrace("DMCreateGlobalVector"));

 24:   PetscCall(VecDestroy(&X));
 25:   PetscCall(VecDestroy(&Y));
 26:   PetscCall(DMDestroy(&dm));
 27:   PetscCall(PetscFinalize());
 28:   return 0;
 29: }