1*42108689Sksagiyam static char help[] = "Tests DMPlexCreateBoxMesh().\n\n"; 2*42108689Sksagiyam 3*42108689Sksagiyam #include <petscdmplex.h> 4*42108689Sksagiyam 5*42108689Sksagiyam typedef struct { 6*42108689Sksagiyam PetscBool sparseLocalize; /* Only localize coordinates where necessary */ 7*42108689Sksagiyam } AppCtx; 8*42108689Sksagiyam 9*42108689Sksagiyam PetscErrorCode ProcessOptions(MPI_Comm comm, AppCtx *options) 10*42108689Sksagiyam { 11*42108689Sksagiyam PetscFunctionBegin; 12*42108689Sksagiyam options->sparseLocalize = PETSC_TRUE; 13*42108689Sksagiyam PetscOptionsBegin(comm, "", "DMPlexCreateBoxMesh() Test Options", "DMPLEX"); 14*42108689Sksagiyam PetscCall(PetscOptionsBool("-sparse_localize", "Only localize coordinates where necessary", "ex43.c", options->sparseLocalize, &options->sparseLocalize, NULL)); 15*42108689Sksagiyam PetscOptionsEnd(); 16*42108689Sksagiyam PetscFunctionReturn(PETSC_SUCCESS); 17*42108689Sksagiyam } 18*42108689Sksagiyam 19*42108689Sksagiyam int main(int argc, char **argv) 20*42108689Sksagiyam { 21*42108689Sksagiyam DM dm; 22*42108689Sksagiyam const PetscInt faces[2] = {3, 1}; 23*42108689Sksagiyam DMBoundaryType periodicity[2] = {DM_BOUNDARY_PERIODIC, DM_BOUNDARY_NONE}; 24*42108689Sksagiyam AppCtx user; 25*42108689Sksagiyam 26*42108689Sksagiyam PetscFunctionBeginUser; 27*42108689Sksagiyam PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 28*42108689Sksagiyam PetscCall(ProcessOptions(PETSC_COMM_WORLD, &user)); 29*42108689Sksagiyam PetscCall(DMPlexCreateBoxMesh(PETSC_COMM_WORLD, 2, PETSC_FALSE, faces, NULL, NULL, periodicity, PETSC_TRUE, 0, user.sparseLocalize, &dm)); 30*42108689Sksagiyam PetscCall(PetscObjectSetName((PetscObject)dm, "ExampleBoxMesh")); 31*42108689Sksagiyam PetscCall(DMViewFromOptions(dm, NULL, "-dm_view")); 32*42108689Sksagiyam PetscCall(DMDestroy(&dm)); 33*42108689Sksagiyam PetscCall(PetscFinalize()); 34*42108689Sksagiyam return 0; 35*42108689Sksagiyam } 36*42108689Sksagiyam 37*42108689Sksagiyam /*TEST 38*42108689Sksagiyam 39*42108689Sksagiyam test: 40*42108689Sksagiyam suffix: 0 41*42108689Sksagiyam args: -sparse_localize 0 -dm_view ascii::ascii_info_detail 42*42108689Sksagiyam 43*42108689Sksagiyam test: 44*42108689Sksagiyam suffix: 1 45*42108689Sksagiyam args: -sparse_localize 1 -dm_view ascii::ascii_info_detail 46*42108689Sksagiyam 47*42108689Sksagiyam TEST*/ 48