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, (char *)0, 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: }