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
ProcessOptions(MPI_Comm comm,AppCtx * options)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
main(int argc,char ** argv)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