1 static char help[] = "Tests DMDACreate3d() memory usage\n\n"; 2 3 #include <petscdmda.h> 4 5 int main(int argc, char **argv) 6 { 7 DM dm; 8 Vec X, Y; 9 PetscInt dof = 10; 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 ")); 18 19 PetscCall(DMCreateGlobalVector(dm, &X)); 20 PetscCall(PetscMemoryTrace("DMCreateGlobalVector")); 21 PetscCall(DMCreateGlobalVector(dm, &Y)); 22 PetscCall(PetscMemoryTrace("DMCreateGlobalVector")); 23 24 PetscCall(VecDestroy(&X)); 25 PetscCall(VecDestroy(&Y)); 26 PetscCall(DMDestroy(&dm)); 27 PetscCall(PetscFinalize()); 28 return 0; 29 } 30