xref: /petsc/src/dm/impls/plex/tests/ex1.c (revision 8fb5bd83c3955fefcf33a54e3bb66920a9fa884b)
1c4762a1bSJed Brown static char help[] = "Tests various DMPlex routines to construct, refine and distribute a mesh.\n\n";
2c4762a1bSJed Brown 
3c4762a1bSJed Brown #include <petscdmplex.h>
4012bc364SMatthew G. Knepley #include <petscdmplextransform.h>
50a19bb7dSprj- #include <petscsf.h>
6c4762a1bSJed Brown 
7c4762a1bSJed Brown enum {STAGE_LOAD, STAGE_DISTRIBUTE, STAGE_REFINE, STAGE_OVERLAP};
8c4762a1bSJed Brown 
9c4762a1bSJed Brown typedef struct {
10c4762a1bSJed Brown   PetscLogEvent createMeshEvent;
11c4762a1bSJed Brown   PetscLogStage stages[4];
12c4762a1bSJed Brown   /* Domain and mesh definition */
13c4762a1bSJed Brown   PetscInt      dim;                             /* The topological mesh dimension */
14c4762a1bSJed Brown   PetscInt      overlap;                         /* The cell overlap to use during partitioning */
15c4762a1bSJed Brown   PetscBool     testp4est[2];
16c4762a1bSJed Brown   PetscBool     redistribute;
17c4762a1bSJed Brown   PetscBool     final_ref;                       /* Run refinement at the end */
18c4762a1bSJed Brown   PetscBool     final_diagnostics;               /* Run diagnostics on the final mesh */
19c4762a1bSJed Brown } AppCtx;
20c4762a1bSJed Brown 
21c4762a1bSJed Brown PetscErrorCode ProcessOptions(MPI_Comm comm, AppCtx *options)
22c4762a1bSJed Brown {
23c4762a1bSJed Brown   PetscFunctionBegin;
24c4762a1bSJed Brown   options->dim               = 2;
25c4762a1bSJed Brown   options->overlap           = 0;
26c4762a1bSJed Brown   options->testp4est[0]      = PETSC_FALSE;
27c4762a1bSJed Brown   options->testp4est[1]      = PETSC_FALSE;
28c4762a1bSJed Brown   options->redistribute      = PETSC_FALSE;
29c4762a1bSJed Brown   options->final_ref         = PETSC_FALSE;
30c4762a1bSJed Brown   options->final_diagnostics = PETSC_TRUE;
31c4762a1bSJed Brown 
32d0609cedSBarry Smith   PetscOptionsBegin(comm, "", "Meshing Problem Options", "DMPLEX");
339566063dSJacob Faibussowitsch   PetscCall(PetscOptionsRangeInt("-dim", "The topological mesh dimension", "ex1.c", options->dim, &options->dim, NULL,1,3));
349566063dSJacob Faibussowitsch   PetscCall(PetscOptionsBoundedInt("-overlap", "The cell overlap for partitioning", "ex1.c", options->overlap, &options->overlap, NULL,0));
359566063dSJacob Faibussowitsch   PetscCall(PetscOptionsBool("-test_p4est_seq", "Test p4est with sequential base DM", "ex1.c", options->testp4est[0], &options->testp4est[0], NULL));
369566063dSJacob Faibussowitsch   PetscCall(PetscOptionsBool("-test_p4est_par", "Test p4est with parallel base DM", "ex1.c", options->testp4est[1], &options->testp4est[1], NULL));
379566063dSJacob Faibussowitsch   PetscCall(PetscOptionsBool("-test_redistribute", "Test redistribution", "ex1.c", options->redistribute, &options->redistribute, NULL));
389566063dSJacob Faibussowitsch   PetscCall(PetscOptionsBool("-final_ref", "Run uniform refinement on the final mesh", "ex1.c", options->final_ref, &options->final_ref, NULL));
399566063dSJacob Faibussowitsch   PetscCall(PetscOptionsBool("-final_diagnostics", "Run diagnostics on the final mesh", "ex1.c", options->final_diagnostics, &options->final_diagnostics, NULL));
40d0609cedSBarry Smith   PetscOptionsEnd();
41c4762a1bSJed Brown 
429566063dSJacob Faibussowitsch   PetscCall(PetscLogEventRegister("CreateMesh", DM_CLASSID, &options->createMeshEvent));
439566063dSJacob Faibussowitsch   PetscCall(PetscLogStageRegister("MeshLoad",       &options->stages[STAGE_LOAD]));
449566063dSJacob Faibussowitsch   PetscCall(PetscLogStageRegister("MeshDistribute", &options->stages[STAGE_DISTRIBUTE]));
459566063dSJacob Faibussowitsch   PetscCall(PetscLogStageRegister("MeshRefine",     &options->stages[STAGE_REFINE]));
469566063dSJacob Faibussowitsch   PetscCall(PetscLogStageRegister("MeshOverlap",    &options->stages[STAGE_OVERLAP]));
47c4762a1bSJed Brown   PetscFunctionReturn(0);
48c4762a1bSJed Brown }
49c4762a1bSJed Brown 
50c4762a1bSJed Brown PetscErrorCode CreateMesh(MPI_Comm comm, AppCtx *user, DM *dm)
51c4762a1bSJed Brown {
52c4762a1bSJed Brown   PetscInt    dim           = user->dim;
53c4762a1bSJed Brown   PetscBool   testp4est_seq = user->testp4est[0];
54c4762a1bSJed Brown   PetscBool   testp4est_par = user->testp4est[1];
55c4762a1bSJed Brown   PetscMPIInt rank, size;
56c4762a1bSJed Brown 
57c4762a1bSJed Brown   PetscFunctionBegin;
589566063dSJacob Faibussowitsch   PetscCall(PetscLogEventBegin(user->createMeshEvent,0,0,0,0));
599566063dSJacob Faibussowitsch   PetscCallMPI(MPI_Comm_rank(comm, &rank));
609566063dSJacob Faibussowitsch   PetscCallMPI(MPI_Comm_size(comm, &size));
619566063dSJacob Faibussowitsch   PetscCall(PetscLogStagePush(user->stages[STAGE_LOAD]));
629566063dSJacob Faibussowitsch   PetscCall(DMCreate(comm, dm));
639566063dSJacob Faibussowitsch   PetscCall(DMSetType(*dm, DMPLEX));
649566063dSJacob Faibussowitsch   PetscCall(DMPlexDistributeSetDefault(*dm, PETSC_FALSE));
659566063dSJacob Faibussowitsch   PetscCall(DMSetFromOptions(*dm));
669566063dSJacob Faibussowitsch   PetscCall(DMLocalizeCoordinates(*dm));
67db2bf62eSStefano Zampini 
689566063dSJacob Faibussowitsch   PetscCall(DMViewFromOptions(*dm,NULL,"-init_dm_view"));
699566063dSJacob Faibussowitsch   PetscCall(DMGetDimension(*dm, &dim));
70c4762a1bSJed Brown 
71c4762a1bSJed Brown   if (testp4est_seq) {
72c4762a1bSJed Brown #if defined(PETSC_HAVE_P4EST)
73c4762a1bSJed Brown     DM dmConv = NULL;
74c4762a1bSJed Brown 
7519a9de31SVaclav Hapla     PetscCall(DMPlexCheck(*dm));
769566063dSJacob Faibussowitsch     PetscCall(DMPlexSetRefinementUniform(*dm, PETSC_TRUE));
779566063dSJacob Faibussowitsch     PetscCall(DMPlexSetTransformType(*dm, DMPLEXREFINETOBOX));
789566063dSJacob Faibussowitsch     PetscCall(DMRefine(*dm, PETSC_COMM_WORLD, &dmConv));
799566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL));
80c4762a1bSJed Brown     if (dmConv) {
819566063dSJacob Faibussowitsch       PetscCall(DMDestroy(dm));
82c4762a1bSJed Brown       *dm  = dmConv;
83c4762a1bSJed Brown     }
849566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm,NULL,"-initref_dm_view"));
8519a9de31SVaclav Hapla     PetscCall(DMPlexCheck(*dm));
86c4762a1bSJed Brown 
87*8fb5bd83SMatthew G. Knepley     /* For topologically periodic meshes, we first localize coordinates,
88*8fb5bd83SMatthew G. Knepley        and then remove any information related with the
89*8fb5bd83SMatthew G. Knepley        automatic computation of localized vertices.
90*8fb5bd83SMatthew G. Knepley        This way, refinement operations and conversions to p4est
91*8fb5bd83SMatthew G. Knepley        will preserve the shape of the domain in physical space */
92*8fb5bd83SMatthew G. Knepley     PetscCall(DMSetPeriodicity(*dm, NULL, NULL));
93*8fb5bd83SMatthew G. Knepley 
949566063dSJacob Faibussowitsch     PetscCall(DMConvert(*dm,dim == 2 ? DMP4EST : DMP8EST,&dmConv));
95c4762a1bSJed Brown     if (dmConv) {
969566063dSJacob Faibussowitsch       PetscCall(PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_seq_1_"));
979566063dSJacob Faibussowitsch       PetscCall(DMSetFromOptions(dmConv));
989566063dSJacob Faibussowitsch       PetscCall(DMDestroy(dm));
99c4762a1bSJed Brown       *dm  = dmConv;
100c4762a1bSJed Brown     }
1019566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_seq_1_"));
1029566063dSJacob Faibussowitsch     PetscCall(DMSetUp(*dm));
1039566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view"));
1049566063dSJacob Faibussowitsch     PetscCall(DMConvert(*dm,DMPLEX,&dmConv));
105c4762a1bSJed Brown     if (dmConv) {
1069566063dSJacob Faibussowitsch       PetscCall(PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_seq_2_"));
1079566063dSJacob Faibussowitsch       PetscCall(DMPlexDistributeSetDefault(dmConv, PETSC_FALSE));
1089566063dSJacob Faibussowitsch       PetscCall(DMSetFromOptions(dmConv));
1099566063dSJacob Faibussowitsch       PetscCall(DMDestroy(dm));
110c4762a1bSJed Brown       *dm  = dmConv;
111c4762a1bSJed Brown     }
1129566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_seq_2_"));
1139566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view"));
1149566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL));
115c4762a1bSJed Brown #else
116c4762a1bSJed Brown     SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_SUP,"Recompile with --download-p4est");
117c4762a1bSJed Brown #endif
118c4762a1bSJed Brown   }
119c4762a1bSJed Brown 
1209566063dSJacob Faibussowitsch   PetscCall(PetscLogStagePop());
121c4762a1bSJed Brown   if (!testp4est_seq) {
1229566063dSJacob Faibussowitsch     PetscCall(PetscLogStagePush(user->stages[STAGE_DISTRIBUTE]));
1239566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_pre_dist_view"));
1249566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, "dist_"));
1259566063dSJacob Faibussowitsch     PetscCall(DMSetFromOptions(*dm));
1269566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL));
1279566063dSJacob Faibussowitsch     PetscCall(PetscLogStagePop());
1289566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-distributed_dm_view"));
129c4762a1bSJed Brown   }
1309566063dSJacob Faibussowitsch   PetscCall(PetscLogStagePush(user->stages[STAGE_REFINE]));
1319566063dSJacob Faibussowitsch   PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, "ref_"));
1329566063dSJacob Faibussowitsch   PetscCall(DMSetFromOptions(*dm));
1339566063dSJacob Faibussowitsch   PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL));
1349566063dSJacob Faibussowitsch   PetscCall(PetscLogStagePop());
135c4762a1bSJed Brown 
136c4762a1bSJed Brown   if (testp4est_par) {
137c4762a1bSJed Brown #if defined(PETSC_HAVE_P4EST)
138c4762a1bSJed Brown     DM dmConv = NULL;
139c4762a1bSJed Brown 
14019a9de31SVaclav Hapla     PetscCall(DMPlexCheck(*dm));
1419566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_tobox_view"));
1429566063dSJacob Faibussowitsch     PetscCall(DMPlexSetRefinementUniform(*dm, PETSC_TRUE));
1439566063dSJacob Faibussowitsch     PetscCall(DMPlexSetTransformType(*dm, DMPLEXREFINETOBOX));
1449566063dSJacob Faibussowitsch     PetscCall(DMRefine(*dm, PETSC_COMM_WORLD, &dmConv));
1459566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL));
146c4762a1bSJed Brown     if (dmConv) {
1479566063dSJacob Faibussowitsch       PetscCall(DMDestroy(dm));
148c4762a1bSJed Brown       *dm  = dmConv;
149c4762a1bSJed Brown     }
1509566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_tobox_view"));
15119a9de31SVaclav Hapla     PetscCall(DMPlexCheck(*dm));
152c4762a1bSJed Brown 
1539566063dSJacob Faibussowitsch     PetscCall(DMConvert(*dm,dim == 2 ? DMP4EST : DMP8EST,&dmConv));
154c4762a1bSJed Brown     if (dmConv) {
1559566063dSJacob Faibussowitsch       PetscCall(PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_par_1_"));
1569566063dSJacob Faibussowitsch       PetscCall(DMSetFromOptions(dmConv));
1579566063dSJacob Faibussowitsch       PetscCall(DMDestroy(dm));
158c4762a1bSJed Brown       *dm  = dmConv;
159c4762a1bSJed Brown     }
1609566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_par_1_"));
1619566063dSJacob Faibussowitsch     PetscCall(DMSetUp(*dm));
1629566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view"));
1639566063dSJacob Faibussowitsch     PetscCall(DMConvert(*dm, DMPLEX, &dmConv));
164c4762a1bSJed Brown     if (dmConv) {
1659566063dSJacob Faibussowitsch       PetscCall(PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_par_2_"));
1669566063dSJacob Faibussowitsch       PetscCall(DMPlexDistributeSetDefault(dmConv, PETSC_FALSE));
1679566063dSJacob Faibussowitsch       PetscCall(DMSetFromOptions(dmConv));
1689566063dSJacob Faibussowitsch       PetscCall(DMDestroy(dm));
169c4762a1bSJed Brown       *dm  = dmConv;
170c4762a1bSJed Brown     }
1719566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_par_2_"));
1729566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view"));
1739566063dSJacob Faibussowitsch     PetscCall(PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL));
174c4762a1bSJed Brown #else
175c4762a1bSJed Brown     SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_SUP,"Recompile with --download-p4est");
176c4762a1bSJed Brown #endif
177c4762a1bSJed Brown   }
178c4762a1bSJed Brown 
179c4762a1bSJed Brown   /* test redistribution of an already distributed mesh */
180c4762a1bSJed Brown   if (user->redistribute) {
181c4762a1bSJed Brown     DM       distributedMesh;
1820a19bb7dSprj-     PetscSF  sf;
1830a19bb7dSprj-     PetscInt nranks;
184c4762a1bSJed Brown 
1859566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_pre_redist_view"));
1869566063dSJacob Faibussowitsch     PetscCall(DMPlexDistribute(*dm, 0, NULL, &distributedMesh));
187c4762a1bSJed Brown     if (distributedMesh) {
1889566063dSJacob Faibussowitsch       PetscCall(DMGetPointSF(distributedMesh, &sf));
1899566063dSJacob Faibussowitsch       PetscCall(PetscSFSetUp(sf));
1909566063dSJacob Faibussowitsch       PetscCall(DMGetNeighbors(distributedMesh, &nranks, NULL));
1919566063dSJacob Faibussowitsch       PetscCallMPI(MPI_Allreduce(MPI_IN_PLACE, &nranks, 1, MPIU_INT, MPI_MIN, PetscObjectComm((PetscObject)*dm)));
19263a3b9bcSJacob Faibussowitsch       PetscCall(PetscViewerASCIIPrintf(PETSC_VIEWER_STDOUT_(PetscObjectComm((PetscObject)*dm)), "Minimum number of neighbors: %" PetscInt_FMT "\n", nranks));
1939566063dSJacob Faibussowitsch       PetscCall(DMDestroy(dm));
194c4762a1bSJed Brown       *dm  = distributedMesh;
195c4762a1bSJed Brown     }
1969566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_post_redist_view"));
197c4762a1bSJed Brown   }
198c4762a1bSJed Brown 
199c4762a1bSJed Brown   if (user->overlap) {
200c4762a1bSJed Brown     DM overlapMesh = NULL;
201c4762a1bSJed Brown 
202c4762a1bSJed Brown     /* Add the overlap to refined mesh */
2039566063dSJacob Faibussowitsch     PetscCall(PetscLogStagePush(user->stages[STAGE_OVERLAP]));
2049566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_pre_overlap_view"));
2059566063dSJacob Faibussowitsch     PetscCall(DMPlexDistributeOverlap(*dm, user->overlap, NULL, &overlapMesh));
206c4762a1bSJed Brown     if (overlapMesh) {
207c4762a1bSJed Brown       PetscInt overlap;
2089566063dSJacob Faibussowitsch       PetscCall(DMPlexGetOverlap(overlapMesh, &overlap));
20963a3b9bcSJacob Faibussowitsch       PetscCall(PetscViewerASCIIPrintf(PETSC_VIEWER_STDOUT_WORLD, "Overlap: %" PetscInt_FMT "\n", overlap));
2109566063dSJacob Faibussowitsch       PetscCall(DMDestroy(dm));
211c4762a1bSJed Brown       *dm = overlapMesh;
212c4762a1bSJed Brown     }
2139566063dSJacob Faibussowitsch     PetscCall(DMViewFromOptions(*dm, NULL, "-dm_post_overlap_view"));
2149566063dSJacob Faibussowitsch     PetscCall(PetscLogStagePop());
215c4762a1bSJed Brown   }
216c4762a1bSJed Brown   if (user->final_ref) {
217c4762a1bSJed Brown     DM refinedMesh = NULL;
218c4762a1bSJed Brown 
2199566063dSJacob Faibussowitsch     PetscCall(DMPlexSetRefinementUniform(*dm, PETSC_TRUE));
2209566063dSJacob Faibussowitsch     PetscCall(DMRefine(*dm, comm, &refinedMesh));
221c4762a1bSJed Brown     if (refinedMesh) {
2229566063dSJacob Faibussowitsch       PetscCall(DMDestroy(dm));
223c4762a1bSJed Brown       *dm  = refinedMesh;
224c4762a1bSJed Brown     }
225c4762a1bSJed Brown   }
226c4762a1bSJed Brown 
2279566063dSJacob Faibussowitsch   PetscCall(PetscObjectSetName((PetscObject) *dm, "Generated Mesh"));
2289566063dSJacob Faibussowitsch   PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view"));
2291baa6e33SBarry Smith   if (user->final_diagnostics) PetscCall(DMPlexCheck(*dm));
2309566063dSJacob Faibussowitsch   PetscCall(PetscLogEventEnd(user->createMeshEvent,0,0,0,0));
231c4762a1bSJed Brown   PetscFunctionReturn(0);
232c4762a1bSJed Brown }
233c4762a1bSJed Brown 
234c4762a1bSJed Brown int main(int argc, char **argv)
235c4762a1bSJed Brown {
23630602db0SMatthew G. Knepley   DM             dm;
23730602db0SMatthew G. Knepley   AppCtx         user;
238c4762a1bSJed Brown 
2399566063dSJacob Faibussowitsch   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
2409566063dSJacob Faibussowitsch   PetscCall(ProcessOptions(PETSC_COMM_WORLD, &user));
2419566063dSJacob Faibussowitsch   PetscCall(CreateMesh(PETSC_COMM_WORLD, &user, &dm));
2429566063dSJacob Faibussowitsch   PetscCall(DMDestroy(&dm));
2439566063dSJacob Faibussowitsch   PetscCall(PetscFinalize());
244b122ec5aSJacob Faibussowitsch   return 0;
245c4762a1bSJed Brown }
246c4762a1bSJed Brown 
247c4762a1bSJed Brown /*TEST
248c4762a1bSJed Brown 
249c4762a1bSJed Brown   # CTetGen 0-1
250c4762a1bSJed Brown   test:
251c4762a1bSJed Brown     suffix: 0
252c4762a1bSJed Brown     requires: ctetgen
25330602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_dim 3 -dim 3 -dm_plex_interpolate 0 -ctetgen_verbose 4 -dm_view ascii::ascii_info_detail -info :~sys
254c4762a1bSJed Brown   test:
255c4762a1bSJed Brown     suffix: 1
256c4762a1bSJed Brown     requires: ctetgen
25730602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_dim 3 -dim 3 -dm_plex_interpolate 0 -ctetgen_verbose 4 -dm_refine_volume_limit_pre 0.0625 -dm_view ascii::ascii_info_detail -info :~sys
258c4762a1bSJed Brown 
259c4762a1bSJed Brown   # 2D LaTex and ASCII output 2-9
260c4762a1bSJed Brown   test:
261c4762a1bSJed Brown     suffix: 2
262c4762a1bSJed Brown     requires: triangle
26330602db0SMatthew G. Knepley     args: -dm_plex_interpolate 0 -dm_view ascii::ascii_latex
264c4762a1bSJed Brown   test:
265c4762a1bSJed Brown     suffix: 3
266c4762a1bSJed Brown     requires: triangle
26730602db0SMatthew G. Knepley     args: -ref_dm_refine 1 -dm_view ascii::ascii_info_detail
268c4762a1bSJed Brown   test:
269c4762a1bSJed Brown     suffix: 4
270c4762a1bSJed Brown     requires: triangle
271c4762a1bSJed Brown     nsize: 2
27230602db0SMatthew G. Knepley     args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_info_detail
273c4762a1bSJed Brown   test:
274c4762a1bSJed Brown     suffix: 5
275c4762a1bSJed Brown     requires: triangle
276c4762a1bSJed Brown     nsize: 2
27730602db0SMatthew G. Knepley     args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex
278c4762a1bSJed Brown   test:
279c4762a1bSJed Brown     suffix: 6
28030602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_simplex 0 -dm_view ascii::ascii_info_detail
281c4762a1bSJed Brown   test:
282c4762a1bSJed Brown     suffix: 7
28330602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_simplex 0 -ref_dm_refine 1 -dm_view ascii::ascii_info_detail
284c4762a1bSJed Brown   test:
285c4762a1bSJed Brown     suffix: 8
286c4762a1bSJed Brown     nsize: 2
28730602db0SMatthew G. Knepley     args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex
288c4762a1bSJed Brown 
289c4762a1bSJed Brown   # 1D ASCII output
29030602db0SMatthew G. Knepley   testset:
29130602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_dim 1 -dm_view ascii::ascii_info_detail -dm_plex_check_all
292c4762a1bSJed Brown     test:
293c4762a1bSJed Brown       suffix: 1d_0
29430602db0SMatthew G. Knepley       args:
295c4762a1bSJed Brown     test:
296c4762a1bSJed Brown       suffix: 1d_1
29730602db0SMatthew G. Knepley       args: -ref_dm_refine 2
298c4762a1bSJed Brown     test:
299c4762a1bSJed Brown       suffix: 1d_2
30030602db0SMatthew G. Knepley       args: -dm_plex_box_faces 5 -dm_plex_box_bd periodic
301c4762a1bSJed Brown 
302c4762a1bSJed Brown   # Parallel refinement tests with overlap
303c4762a1bSJed Brown   test:
304c4762a1bSJed Brown     suffix: refine_overlap_1d
305c4762a1bSJed Brown     nsize: 2
30630602db0SMatthew G. Knepley     args: -dm_plex_dim 1 -dim 1 -dm_plex_box_faces 4 -dm_plex_box_faces 4 -ref_dm_refine 1 -overlap {{0 1 2}separate output} -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_info
307c4762a1bSJed Brown   test:
308c4762a1bSJed Brown     suffix: refine_overlap_2d
309c4762a1bSJed Brown     requires: triangle
310c4762a1bSJed Brown     nsize: {{2 8}separate output}
31130602db0SMatthew G. Knepley     args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -overlap {{0 1 2}separate output} -dm_view ascii::ascii_info
312c4762a1bSJed Brown 
313d410b0cfSMatthew G. Knepley   # Parallel extrusion tests
314d410b0cfSMatthew G. Knepley   test:
315d410b0cfSMatthew G. Knepley     suffix: spheresurface_extruded
316d410b0cfSMatthew G. Knepley     nsize : 4
317d410b0cfSMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_shape sphere -dm_extrude 3 -dist_dm_distribute -petscpartitioner_type simple \
318d410b0cfSMatthew G. Knepley           -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical
319d410b0cfSMatthew G. Knepley 
320d410b0cfSMatthew G. Knepley   test:
321d410b0cfSMatthew G. Knepley     suffix: spheresurface_extruded_symmetric
322d410b0cfSMatthew G. Knepley     nsize : 4
323d410b0cfSMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_shape sphere -dm_extrude 3 -dm_plex_transform_extrude_symmetric -dist_dm_distribute -petscpartitioner_type simple \
324d410b0cfSMatthew G. Knepley           -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical
325d410b0cfSMatthew G. Knepley 
326c4762a1bSJed Brown   # Parallel simple partitioner tests
327c4762a1bSJed Brown   test:
328c4762a1bSJed Brown     suffix: part_simple_0
329c4762a1bSJed Brown     requires: triangle
330c4762a1bSJed Brown     nsize: 2
33130602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_interpolate 0 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail
332c4762a1bSJed Brown   test:
333c4762a1bSJed Brown     suffix: part_simple_1
334c4762a1bSJed Brown     requires: triangle
335c4762a1bSJed Brown     nsize: 8
33630602db0SMatthew G. Knepley     args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail
337c4762a1bSJed Brown 
338c4762a1bSJed Brown   # Parallel partitioner tests
339c4762a1bSJed Brown   test:
340c4762a1bSJed Brown     suffix: part_parmetis_0
341c4762a1bSJed Brown     requires: parmetis
342c4762a1bSJed Brown     nsize: 2
3435a107427SMatthew G. Knepley     args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type parmetis -dm_view -petscpartitioner_view -test_redistribute -dm_plex_csr_alg {{mat graph overlap}} -dm_pre_redist_view ::load_balance -dm_post_redist_view ::load_balance -petscpartitioner_view_graph
344c4762a1bSJed Brown   test:
345c4762a1bSJed Brown     suffix: part_ptscotch_0
346c4762a1bSJed Brown     requires: ptscotch
347c4762a1bSJed Brown     nsize: 2
3485a107427SMatthew G. Knepley     args: -dm_plex_simplex 0 -dist_dm_distribute -petscpartitioner_type ptscotch -petscpartitioner_view -petscpartitioner_ptscotch_strategy quality -test_redistribute -dm_plex_csr_alg {{mat graph overlap}} -dm_pre_redist_view ::load_balance -dm_post_redist_view ::load_balance -petscpartitioner_view_graph
349c4762a1bSJed Brown   test:
350c4762a1bSJed Brown     suffix: part_ptscotch_1
351c4762a1bSJed Brown     requires: ptscotch
352c4762a1bSJed Brown     nsize: 8
35330602db0SMatthew G. Knepley     args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type ptscotch -petscpartitioner_view -petscpartitioner_ptscotch_imbalance 0.1
354c4762a1bSJed Brown 
355c4762a1bSJed Brown   # CGNS reader tests 10-11 (need to find smaller test meshes)
356c4762a1bSJed Brown   test:
357c4762a1bSJed Brown     suffix: cgns_0
358c4762a1bSJed Brown     requires: cgns
35930602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/tut21.cgns -dm_view
360c4762a1bSJed Brown 
361e826b96eSMatthew G. Knepley   # ExodusII reader tests
362e826b96eSMatthew G. Knepley   testset:
363e826b96eSMatthew G. Knepley     args: -dm_plex_boundary_label boundary -dm_plex_check_all -dm_view
364e826b96eSMatthew G. Knepley     test:
365e826b96eSMatthew G. Knepley       suffix: exo_0
366e826b96eSMatthew G. Knepley       requires: exodusii
367e826b96eSMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/sevenside-quad.exo
368e826b96eSMatthew G. Knepley     test:
369e826b96eSMatthew G. Knepley       suffix: exo_1
370e826b96eSMatthew G. Knepley       requires: exodusii
371e826b96eSMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/sevenside-quad-15.exo
372e826b96eSMatthew G. Knepley     test:
373e826b96eSMatthew G. Knepley       suffix: exo_2
374e826b96eSMatthew G. Knepley       requires: exodusii
375e826b96eSMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/squaremotor-30.exo
376e826b96eSMatthew G. Knepley     test:
377e826b96eSMatthew G. Knepley       suffix: exo_3
378e826b96eSMatthew G. Knepley       requires: exodusii
379e826b96eSMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/blockcylinder-50.exo
380e826b96eSMatthew G. Knepley     test:
381e826b96eSMatthew G. Knepley       suffix: exo_4
382e826b96eSMatthew G. Knepley       requires: exodusii
383e826b96eSMatthew G. Knepley      args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/simpleblock-100.exo
384e826b96eSMatthew G. Knepley 
385c4762a1bSJed Brown   # Gmsh mesh reader tests
38630602db0SMatthew G. Knepley   testset:
38730602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_view
38830602db0SMatthew G. Knepley 
389c4762a1bSJed Brown     test:
390c4762a1bSJed Brown       suffix: gmsh_0
391c4762a1bSJed Brown       requires: !single
39230602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
393c4762a1bSJed Brown     test:
394c4762a1bSJed Brown       suffix: gmsh_1
395c4762a1bSJed Brown       requires: !single
39630602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh
397c4762a1bSJed Brown     test:
398c4762a1bSJed Brown       suffix: gmsh_2
399c4762a1bSJed Brown       requires: !single
40030602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh
401c4762a1bSJed Brown     test:
402c4762a1bSJed Brown       suffix: gmsh_3
403c4762a1bSJed Brown       nsize: 3
404c4762a1bSJed Brown       requires: !single
40530602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh -dist_dm_distribute -petscpartitioner_type simple
406c4762a1bSJed Brown     test:
407c4762a1bSJed Brown       suffix: gmsh_4
408c4762a1bSJed Brown       nsize: 3
409c4762a1bSJed Brown       requires: !single
41030602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh -dist_dm_distribute -petscpartitioner_type simple
411c4762a1bSJed Brown     test:
412c4762a1bSJed Brown       suffix: gmsh_5
413c4762a1bSJed Brown       requires: !single
41430602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_quad.msh
415c4762a1bSJed Brown     # TODO: it seems the mesh is not a valid gmsh (inverted cell)
416c4762a1bSJed Brown     test:
417c4762a1bSJed Brown       suffix: gmsh_6
418c4762a1bSJed Brown       requires: !single
41930602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin_physnames.msh -final_diagnostics 0
420c4762a1bSJed Brown     test:
421c4762a1bSJed Brown       suffix: gmsh_7
42230602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere_bin.msh -dm_view ::ascii_info_detail -dm_plex_check_all
423c4762a1bSJed Brown     test:
424c4762a1bSJed Brown       suffix: gmsh_8
42530602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere.msh -dm_view ::ascii_info_detail -dm_plex_check_all
426c4762a1bSJed Brown   testset:
42730602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic_bin.msh -dm_view ::ascii_info_detail -dm_plex_check_all
428c4762a1bSJed Brown     test:
429c4762a1bSJed Brown       suffix: gmsh_9
430c4762a1bSJed Brown     test:
431c4762a1bSJed Brown       suffix: gmsh_9_periodic_0
432c4762a1bSJed Brown       args: -dm_plex_gmsh_periodic 0
433c4762a1bSJed Brown   testset:
43430602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_view ::ascii_info_detail -dm_plex_check_all
435c4762a1bSJed Brown     test:
436c4762a1bSJed Brown       suffix: gmsh_10
437c4762a1bSJed Brown     test:
438c4762a1bSJed Brown       suffix: gmsh_10_periodic_0
439c4762a1bSJed Brown       args: -dm_plex_gmsh_periodic 0
440c4762a1bSJed Brown   testset:
44130602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_view ::ascii_info_detail -dm_plex_check_all -ref_dm_refine 1
442c4762a1bSJed Brown     test:
443c4762a1bSJed Brown       suffix: gmsh_11
444c4762a1bSJed Brown     test:
445c4762a1bSJed Brown       suffix: gmsh_11_periodic_0
446c4762a1bSJed Brown       args: -dm_plex_gmsh_periodic 0
447c4762a1bSJed Brown   # TODO: it seems the mesh is not a valid gmsh (inverted cell)
448c4762a1bSJed Brown   test:
449c4762a1bSJed Brown     suffix: gmsh_12
450c4762a1bSJed Brown     nsize: 4
451c4762a1bSJed Brown     requires: !single mpiio
45230602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin_physnames.msh -viewer_binary_mpiio -dist_dm_distribute -petscpartitioner_type simple -dm_view -final_diagnostics 0
453c4762a1bSJed Brown   test:
454c4762a1bSJed Brown     suffix: gmsh_13_hybs2t
455c4762a1bSJed Brown     nsize: 4
456012bc364SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh -dist_dm_distribute -petscpartitioner_type simple -dm_view -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox -dm_plex_check_all
457c4762a1bSJed Brown   test:
458c4762a1bSJed Brown     suffix: gmsh_14_ext
459c4762a1bSJed Brown     requires: !single
460d410b0cfSMatthew G. Knepley     args: -dm_coord_space 0 -dm_extrude 2 -dm_plex_transform_extrude_thickness 1.5 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh -dm_view -dm_plex_check_all
461c4762a1bSJed Brown   test:
462c4762a1bSJed Brown     suffix: gmsh_14_ext_s2t
463c4762a1bSJed Brown     requires: !single
464d410b0cfSMatthew G. Knepley     args: -dm_coord_space 0 -dm_extrude 2 -dm_plex_transform_extrude_thickness 1.5 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh -dm_view -dm_plex_check_all -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox
465c4762a1bSJed Brown   test:
466c4762a1bSJed Brown     suffix: gmsh_15_hyb3d
46730602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view -dm_plex_check_all
468c4762a1bSJed Brown   test:
469c4762a1bSJed Brown     suffix: gmsh_15_hyb3d_vtk
47030602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view vtk: -dm_plex_gmsh_hybrid -dm_plex_check_all
471c4762a1bSJed Brown   test:
472c4762a1bSJed Brown     suffix: gmsh_15_hyb3d_s2t
473012bc364SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view -dm_plex_check_all -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox
474c4762a1bSJed Brown   test:
475c4762a1bSJed Brown     suffix: gmsh_16_spheresurface
476c4762a1bSJed Brown     nsize : 4
47730602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3 -dm_plex_check_all -dm_view -dist_dm_distribute -petscpartitioner_type simple
478c4762a1bSJed Brown   test:
479c4762a1bSJed Brown     suffix: gmsh_16_spheresurface_s2t
480c4762a1bSJed Brown     nsize : 4
481012bc364SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3 -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox -dm_plex_check_all -dm_view -dist_dm_distribute -petscpartitioner_type simple
482c4762a1bSJed Brown   test:
483c4762a1bSJed Brown     suffix: gmsh_16_spheresurface_extruded
484c4762a1bSJed Brown     nsize : 4
485d410b0cfSMatthew G. Knepley     args: -dm_coord_space 0 -dm_extrude 3 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3 -dm_plex_check_all -dm_view -dist_dm_distribute -petscpartitioner_type simple
486c4762a1bSJed Brown   test:
487c4762a1bSJed Brown     suffix: gmsh_16_spheresurface_extruded_s2t
488c4762a1bSJed Brown     nsize : 4
489d410b0cfSMatthew G. Knepley     args: -dm_coord_space 0 -dm_extrude 3 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3 -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox -dm_plex_check_all -dm_view -dist_dm_distribute -petscpartitioner_type simple
490c4762a1bSJed Brown   test:
491c4762a1bSJed Brown     suffix: gmsh_17_hyb3d_interp_ascii
49230602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.msh -dm_view -dm_plex_check_all
493c4762a1bSJed Brown   test:
494c4762a1bSJed Brown     suffix: exodus_17_hyb3d_interp_ascii
495c4762a1bSJed Brown     requires: exodusii
49630602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.exo -dm_view -dm_plex_check_all
497c4762a1bSJed Brown 
498c4762a1bSJed Brown   # Legacy Gmsh v22/v40 ascii/binary reader tests
499c4762a1bSJed Brown   testset:
500c4762a1bSJed Brown     output_file: output/ex1_gmsh_3d_legacy.out
50130602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all
502c4762a1bSJed Brown     test:
503c4762a1bSJed Brown       suffix: gmsh_3d_ascii_v22
50430602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh2
505c4762a1bSJed Brown     test:
506c4762a1bSJed Brown       suffix: gmsh_3d_ascii_v40
50730602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh4
508c4762a1bSJed Brown     test:
509c4762a1bSJed Brown       suffix: gmsh_3d_binary_v22
51030602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh2
511c4762a1bSJed Brown     test:
512c4762a1bSJed Brown       suffix: gmsh_3d_binary_v40
513c4762a1bSJed Brown       requires: long64
51430602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh4
515c4762a1bSJed Brown 
516c4762a1bSJed Brown   # Gmsh v41 ascii/binary reader tests
517c4762a1bSJed Brown   testset: # 32bit mesh, sequential
51881a1af93SMatthew G. Knepley     args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices
519c4762a1bSJed Brown     output_file: output/ex1_gmsh_3d_32.out
520c4762a1bSJed Brown     test:
521c4762a1bSJed Brown       suffix: gmsh_3d_ascii_v41_32
52230602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh
523c4762a1bSJed Brown     test:
524c4762a1bSJed Brown       suffix: gmsh_3d_binary_v41_32
52530602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh
526c4762a1bSJed Brown     test:
527c4762a1bSJed Brown       suffix: gmsh_3d_binary_v41_32_mpiio
528dfd57a17SPierre Jolivet       requires: defined(PETSC_HAVE_MPIIO)
52930602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio
5308cd392daSMatthew G. Knepley   test:
5318cd392daSMatthew G. Knepley     suffix: gmsh_quad_8node
5328cd392daSMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-qua-8node.msh \
53381a1af93SMatthew G. Knepley           -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices
5348cd392daSMatthew G. Knepley   test:
5358cd392daSMatthew G. Knepley     suffix: gmsh_hex_20node
5368cd392daSMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-hex-20node.msh \
53781a1af93SMatthew G. Knepley           -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices
538c4762a1bSJed Brown   testset:  # 32bit mesh, parallel
53981a1af93SMatthew G. Knepley     args: -dm_coord_space 0 -dist_dm_distribute -petscpartitioner_type simple -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices
540c4762a1bSJed Brown     nsize: 2
541c4762a1bSJed Brown     output_file: output/ex1_gmsh_3d_32_np2.out
542c4762a1bSJed Brown     test:
543c4762a1bSJed Brown       suffix: gmsh_3d_ascii_v41_32_np2
54430602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh
545c4762a1bSJed Brown     test:
546c4762a1bSJed Brown       suffix: gmsh_3d_binary_v41_32_np2
54730602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh
548c4762a1bSJed Brown     test:
549c4762a1bSJed Brown       suffix: gmsh_3d_binary_v41_32_np2_mpiio
550dfd57a17SPierre Jolivet       requires: defined(PETSC_HAVE_MPIIO)
55130602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio
552c4762a1bSJed Brown   testset: # 64bit mesh, sequential
55381a1af93SMatthew G. Knepley     args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices
554c4762a1bSJed Brown     output_file: output/ex1_gmsh_3d_64.out
555c4762a1bSJed Brown     test:
556c4762a1bSJed Brown       suffix: gmsh_3d_ascii_v41_64
55730602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh
558c4762a1bSJed Brown     test:
559c4762a1bSJed Brown       suffix: gmsh_3d_binary_v41_64
56030602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh
561c4762a1bSJed Brown     test:
562c4762a1bSJed Brown       suffix: gmsh_3d_binary_v41_64_mpiio
563dfd57a17SPierre Jolivet       requires: defined(PETSC_HAVE_MPIIO)
56430602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio
565c4762a1bSJed Brown   testset:  # 64bit mesh, parallel
56681a1af93SMatthew G. Knepley     args: -dm_coord_space 0 -dist_dm_distribute -petscpartitioner_type simple -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices
567c4762a1bSJed Brown     nsize: 2
568c4762a1bSJed Brown     output_file: output/ex1_gmsh_3d_64_np2.out
569c4762a1bSJed Brown     test:
570c4762a1bSJed Brown       suffix: gmsh_3d_ascii_v41_64_np2
57130602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh
572c4762a1bSJed Brown     test:
573c4762a1bSJed Brown       suffix: gmsh_3d_binary_v41_64_np2
57430602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh
575c4762a1bSJed Brown     test:
576c4762a1bSJed Brown       suffix: gmsh_3d_binary_v41_64_np2_mpiio
577dfd57a17SPierre Jolivet       requires: defined(PETSC_HAVE_MPIIO)
57830602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio
579c4762a1bSJed Brown 
580c4762a1bSJed Brown   # Fluent mesh reader tests
581c4762a1bSJed Brown   # TODO: Geometry checks fail
582c4762a1bSJed Brown   test:
583c4762a1bSJed Brown     suffix: fluent_0
584c4762a1bSJed Brown     requires: !complex
58530602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dm_view -final_diagnostics 0
586c4762a1bSJed Brown   test:
587c4762a1bSJed Brown     suffix: fluent_1
588c4762a1bSJed Brown     nsize: 3
589c4762a1bSJed Brown     requires: !complex
59030602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dist_dm_distribute -petscpartitioner_type simple -dm_view -final_diagnostics 0
591c4762a1bSJed Brown   test:
592c4762a1bSJed Brown     suffix: fluent_2
593c4762a1bSJed Brown     requires: !complex
59430602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets_ascii.cas -dm_view -final_diagnostics 0
595c4762a1bSJed Brown   test:
596c4762a1bSJed Brown     suffix: fluent_3
597c4762a1bSJed Brown     requires: !complex
598c4762a1bSJed Brown     TODO: Fails on non-linux: fseek(), fileno() ? https://gitlab.com/petsc/petsc/merge_requests/2206#note_238166382
59930602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets.cas -dm_view -final_diagnostics 0
600c4762a1bSJed Brown 
601c4762a1bSJed Brown   # Med mesh reader tests, including parallel file reads
602c4762a1bSJed Brown   test:
603c4762a1bSJed Brown     suffix: med_0
604c4762a1bSJed Brown     requires: med
60530602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.med -dm_view
606c4762a1bSJed Brown   test:
607c4762a1bSJed Brown     suffix: med_1
608c4762a1bSJed Brown     requires: med
609c4762a1bSJed Brown     nsize: 3
61030602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.med -dist_dm_distribute -petscpartitioner_type simple -dm_view
611c4762a1bSJed Brown   test:
612c4762a1bSJed Brown     suffix: med_2
613c4762a1bSJed Brown     requires: med
61430602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cylinder.med -dm_view
615c4762a1bSJed Brown   test:
616c4762a1bSJed Brown     suffix: med_3
617c4762a1bSJed Brown     requires: med
618c4762a1bSJed Brown     TODO: MED
619c4762a1bSJed Brown     nsize: 3
62030602db0SMatthew G. Knepley     args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cylinder.med -dist_dm_distribute -petscpartitioner_type simple -dm_view
621c4762a1bSJed Brown 
622c4762a1bSJed Brown   # Test shape quality
623c4762a1bSJed Brown   test:
624c4762a1bSJed Brown     suffix: test_shape
625c4762a1bSJed Brown     requires: ctetgen
62630602db0SMatthew G. Knepley     args: -dm_plex_dim 3 -dim 3 -dm_refine_hierarchy 3 -dm_plex_check_all -dm_plex_check_cell_shape
627c4762a1bSJed Brown 
628c4762a1bSJed Brown   # Test simplex to tensor conversion
629c4762a1bSJed Brown   test:
630c4762a1bSJed Brown     suffix: s2t2
631c4762a1bSJed Brown     requires: triangle
632012bc364SMatthew G. Knepley     args: -dm_coord_space 0 -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox -dm_refine_volume_limit_pre 0.0625 -dm_view ascii::ascii_info_detail
633c4762a1bSJed Brown 
634c4762a1bSJed Brown   test:
635c4762a1bSJed Brown     suffix: s2t3
636c4762a1bSJed Brown     requires: ctetgen
637012bc364SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_dim 3 -dim 3 -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox -dm_refine_volume_limit_pre 0.0625 -dm_view ascii::ascii_info_detail
638c4762a1bSJed Brown 
63930602db0SMatthew G. Knepley   # Test cylinder
64030602db0SMatthew G. Knepley   testset:
64130602db0SMatthew G. Knepley     args: -dm_plex_shape cylinder -dm_plex_check_all -dm_view
642c4762a1bSJed Brown     test:
643c4762a1bSJed Brown       suffix: cylinder
64430602db0SMatthew G. Knepley       args: -ref_dm_refine 1
645c4762a1bSJed Brown     test:
646c4762a1bSJed Brown       suffix: cylinder_per
64761a622f3SMatthew G. Knepley       args: -dm_plex_cylinder_bd periodic -ref_dm_refine 1 -ref_dm_refine_remap 0
648c4762a1bSJed Brown     test:
649c4762a1bSJed Brown       suffix: cylinder_wedge
65061a622f3SMatthew G. Knepley       args: -dm_coord_space 0 -dm_plex_interpolate 0 -dm_plex_cell tensor_triangular_prism -dm_view vtk:
651c4762a1bSJed Brown     test:
652c4762a1bSJed Brown       suffix: cylinder_wedge_int
653c4762a1bSJed Brown       output_file: output/ex1_cylinder_wedge.out
65461a622f3SMatthew G. Knepley       args: -dm_coord_space 0 -dm_plex_cell tensor_triangular_prism -dm_view vtk:
655c4762a1bSJed Brown 
656c4762a1bSJed Brown   test:
657c4762a1bSJed Brown     suffix: box_2d
65830602db0SMatthew G. Knepley     args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view
659c4762a1bSJed Brown 
660c4762a1bSJed Brown   test:
661c4762a1bSJed Brown     suffix: box_2d_per
66230602db0SMatthew G. Knepley     args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view
663c4762a1bSJed Brown 
664c4762a1bSJed Brown   test:
665c4762a1bSJed Brown     suffix: box_2d_per_unint
66630602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_simplex 0 -dm_plex_interpolate 0 -dm_plex_box_faces 3,3 -dm_plex_box_faces 3,3 -dm_plex_check_all -dm_view ::ascii_info_detail
667c4762a1bSJed Brown 
668c4762a1bSJed Brown   test:
669c4762a1bSJed Brown     suffix: box_3d
67030602db0SMatthew G. Knepley     args: -dm_plex_dim 3 -dim 3 -dm_plex_simplex 0 -ref_dm_refine 3 -dm_plex_check_all -dm_view
671c4762a1bSJed Brown 
672c4762a1bSJed Brown   test:
673c4762a1bSJed Brown     requires: triangle
674c4762a1bSJed Brown     suffix: box_wedge
67561a622f3SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_dim 3 -dim 3 -dm_plex_simplex 0 -dm_plex_cell tensor_triangular_prism -dm_view vtk: -dm_plex_check_all
676c4762a1bSJed Brown 
677c4762a1bSJed Brown   testset:
678c4762a1bSJed Brown     requires: triangle
679012bc364SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_cell tensor_triangular_prism -dm_plex_box_faces 2,3,1 -dm_view -dm_plex_check_all -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox
680c4762a1bSJed Brown     test:
681c4762a1bSJed Brown       suffix: box_wedge_s2t
682c4762a1bSJed Brown     test:
683c4762a1bSJed Brown       nsize: 3
68430602db0SMatthew G. Knepley       args: -dist_dm_distribute -petscpartitioner_type simple
685c4762a1bSJed Brown       suffix: box_wedge_s2t_parallel
686c4762a1bSJed Brown 
687c4762a1bSJed Brown   # Test GLVis output
68830602db0SMatthew G. Knepley   testset:
68930602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_interpolate 0
690c4762a1bSJed Brown     test:
691c4762a1bSJed Brown       suffix: glvis_2d_tet
69230602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_plex_gmsh_periodic 0 -dm_view glvis:
693c4762a1bSJed Brown     test:
694c4762a1bSJed Brown       suffix: glvis_2d_tet_per
69530602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 0
696c4762a1bSJed Brown     test:
697c4762a1bSJed Brown       suffix: glvis_3d_tet
69830602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere_bin.msh -dm_plex_gmsh_periodic 0 -dm_view glvis:
69930602db0SMatthew G. Knepley   testset:
70030602db0SMatthew G. Knepley     args: -dm_coord_space 0
70130602db0SMatthew G. Knepley     test:
70230602db0SMatthew G. Knepley       suffix: glvis_2d_tet_per_mfem
70330602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -viewer_glvis_dm_plex_enable_boundary -viewer_glvis_dm_plex_enable_mfem -dm_view glvis:
70430602db0SMatthew G. Knepley     test:
70530602db0SMatthew G. Knepley       suffix: glvis_2d_quad
70630602db0SMatthew G. Knepley       args: -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -dm_view glvis:
70730602db0SMatthew G. Knepley     test:
70830602db0SMatthew G. Knepley       suffix: glvis_2d_quad_per
70930602db0SMatthew G. Knepley       args: -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -dm_plex_box_bd periodic,periodic -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary
71030602db0SMatthew G. Knepley     test:
71130602db0SMatthew G. Knepley       suffix: glvis_2d_quad_per_mfem
71230602db0SMatthew G. Knepley       args: -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -dm_plex_box_bd periodic,periodic -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary -viewer_glvis_dm_plex_enable_mfem
713c4762a1bSJed Brown     test:
714c4762a1bSJed Brown       suffix: glvis_3d_tet_per
71530602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere_bin.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary
716c4762a1bSJed Brown     test:
717c4762a1bSJed Brown       suffix: glvis_3d_tet_per_mfem
718c4762a1bSJed Brown       TODO: broken
71930602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere_bin.msh -viewer_glvis_dm_plex_enable_mfem -dm_view glvis:
720c4762a1bSJed Brown     test:
721c4762a1bSJed Brown       suffix: glvis_3d_hex
72230602db0SMatthew G. Knepley       args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 3,3,3 -dm_view glvis:
723c4762a1bSJed Brown     test:
724c4762a1bSJed Brown       suffix: glvis_3d_hex_per
72530602db0SMatthew G. Knepley       args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 3,3,3 -dm_plex_box_bd periodic,periodic,periodic -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 0
726c4762a1bSJed Brown     test:
727c4762a1bSJed Brown       suffix: glvis_3d_hex_per_mfem
72830602db0SMatthew G. Knepley       args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 3,3,3 -dm_plex_box_bd periodic,periodic,periodic -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary -viewer_glvis_dm_plex_enable_mfem
72930602db0SMatthew G. Knepley     test:
73030602db0SMatthew G. Knepley       suffix: glvis_2d_hyb
73130602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary
73230602db0SMatthew G. Knepley     test:
73330602db0SMatthew G. Knepley       suffix: glvis_3d_hyb
73430602db0SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary
73530602db0SMatthew G. Knepley     test:
73630602db0SMatthew G. Knepley       suffix: glvis_3d_hyb_s2t
737012bc364SMatthew G. Knepley       args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_3d_cube.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox -dm_plex_check_all
738c4762a1bSJed Brown 
739c4762a1bSJed Brown   # Test P4EST
740c4762a1bSJed Brown   testset:
741c4762a1bSJed Brown     requires: p4est
74230602db0SMatthew G. Knepley     args: -dm_coord_space 0 -dm_view -test_p4est_seq -conv_seq_2_dm_plex_check_all -conv_seq_1_dm_forest_minimum_refinement 1
743c4762a1bSJed Brown     test:
744c4762a1bSJed Brown       suffix: p4est_periodic
74530602db0SMatthew G. Knepley       args: -dm_plex_simplex 0 -dm_plex_box_bd periodic,periodic -dm_plex_box_faces 3,5 -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 2 -conv_seq_1_dm_p4est_refine_pattern hash
746c4762a1bSJed Brown     test:
747c4762a1bSJed Brown       suffix: p4est_periodic_3d
74830602db0SMatthew G. Knepley       args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_bd periodic,periodic,none -dm_plex_box_faces 3,5,4 -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 2 -conv_seq_1_dm_p4est_refine_pattern hash
749c4762a1bSJed Brown     test:
750c4762a1bSJed Brown       suffix: p4est_gmsh_periodic
75130602db0SMatthew G. Knepley       args: -dm_coord_space 0 -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh
752c4762a1bSJed Brown     test:
753c4762a1bSJed Brown       suffix: p4est_gmsh_surface
75430602db0SMatthew G. Knepley       args: -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3
755c4762a1bSJed Brown     test:
756c4762a1bSJed Brown       suffix: p4est_gmsh_surface_parallel
757c4762a1bSJed Brown       nsize: 2
75830602db0SMatthew G. Knepley       args: -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3 -petscpartitioner_type simple -dm_view ::load_balance
759c4762a1bSJed Brown     test:
760c4762a1bSJed Brown       suffix: p4est_hyb_2d
76130602db0SMatthew G. Knepley       args: -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh
762c4762a1bSJed Brown     test:
763c4762a1bSJed Brown       suffix: p4est_hyb_3d
76430602db0SMatthew G. Knepley       args: -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh
765c4762a1bSJed Brown     test:
766c4762a1bSJed Brown       requires: ctetgen
767c4762a1bSJed Brown       suffix: p4est_s2t_bugfaces_3d
76830602db0SMatthew G. Knepley       args: -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 0 -dm_plex_dim 3 -dm_plex_box_faces 1,1
769c4762a1bSJed Brown     test:
770c4762a1bSJed Brown       suffix: p4est_bug_overlapsf
771c4762a1bSJed Brown       nsize: 3
77230602db0SMatthew G. Knepley       args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 2,2,1 -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash -petscpartitioner_type simple
773c4762a1bSJed Brown     test:
774c4762a1bSJed Brown       suffix: p4est_redistribute
775c4762a1bSJed Brown       nsize: 3
7765a107427SMatthew G. Knepley       args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 2,2,1 -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash -petscpartitioner_type simple -test_redistribute -dm_plex_csr_alg {{mat graph overlap}} -dm_view ::load_balance
777c4762a1bSJed Brown     test:
778c4762a1bSJed Brown       suffix: p4est_gmsh_s2t_3d
77930602db0SMatthew G. Knepley       args: -conv_seq_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
780c4762a1bSJed Brown     test:
781c4762a1bSJed Brown       suffix: p4est_gmsh_s2t_3d_hash
78230602db0SMatthew G. Knepley       args: -conv_seq_1_dm_forest_initial_refinement 1 -conv_seq_1_dm_forest_maximum_refinement 2 -conv_seq_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
783c4762a1bSJed Brown     test:
784c4762a1bSJed Brown       requires: long_runtime
785c4762a1bSJed Brown       suffix: p4est_gmsh_periodic_3d
78630602db0SMatthew G. Knepley       args: -dm_coord_space 0 -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere.msh
787c4762a1bSJed Brown 
788c4762a1bSJed Brown   testset:
789c4762a1bSJed Brown     requires: p4est
790c4762a1bSJed Brown     nsize: 6
79130602db0SMatthew G. Knepley     args: -dm_coord_space 0 -test_p4est_par -conv_par_2_dm_plex_check_all -conv_par_1_dm_forest_minimum_refinement 1 -conv_par_1_dm_forest_partition_overlap 0 -dist_dm_distribute
792c4762a1bSJed Brown     test:
79354fcfd0cSMatthew G. Knepley       TODO: interface cones do not conform
794c4762a1bSJed Brown       suffix: p4est_par_periodic
79530602db0SMatthew G. Knepley       args: -dm_plex_simplex 0 -dm_plex_box_bd periodic,periodic -dm_plex_box_faces 3,5 -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 2 -conv_par_1_dm_p4est_refine_pattern hash
796c4762a1bSJed Brown     test:
79754fcfd0cSMatthew G. Knepley       TODO: interface cones do not conform
798c4762a1bSJed Brown       suffix: p4est_par_periodic_3d
79930602db0SMatthew G. Knepley       args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_bd periodic,periodic,periodic -dm_plex_box_faces 3,5,4 -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 2 -conv_par_1_dm_p4est_refine_pattern hash
800c4762a1bSJed Brown     test:
80154fcfd0cSMatthew G. Knepley       TODO: interface cones do not conform
802c4762a1bSJed Brown       suffix: p4est_par_gmsh_periodic
80330602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh
804c4762a1bSJed Brown     test:
805c4762a1bSJed Brown       suffix: p4est_par_gmsh_surface
80630602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3
807c4762a1bSJed Brown     test:
808c4762a1bSJed Brown       suffix: p4est_par_gmsh_s2t_3d
80930602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
810c4762a1bSJed Brown     test:
81154fcfd0cSMatthew G. Knepley       TODO: interface cones do not conform
812c4762a1bSJed Brown       suffix: p4est_par_gmsh_s2t_3d_hash
81330602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 1 -conv_par_1_dm_forest_maximum_refinement 2 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
814c4762a1bSJed Brown     test:
815c4762a1bSJed Brown       requires: long_runtime
816c4762a1bSJed Brown       suffix: p4est_par_gmsh_periodic_3d
81730602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere.msh
818c4762a1bSJed Brown 
819c4762a1bSJed Brown   testset:
820c4762a1bSJed Brown     requires: p4est
821c4762a1bSJed Brown     nsize: 6
82230602db0SMatthew G. Knepley     args: -dm_coord_space 0 -test_p4est_par -conv_par_2_dm_plex_check_all -conv_par_1_dm_forest_minimum_refinement 1 -conv_par_1_dm_forest_partition_overlap 1 -dist_dm_distribute -petscpartitioner_type simple
823c4762a1bSJed Brown     test:
824c4762a1bSJed Brown       suffix: p4est_par_ovl_periodic
82530602db0SMatthew G. Knepley       args: -dm_plex_simplex 0 -dm_plex_box_bd periodic,periodic -dm_plex_box_faces 3,5 -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 2 -conv_par_1_dm_p4est_refine_pattern hash
826c4762a1bSJed Brown     #TODO Mesh cell 201 is inverted, vol = 0. (FVM Volume. Is it correct? -> Diagnostics disabled)
827c4762a1bSJed Brown     test:
828c4762a1bSJed Brown       suffix: p4est_par_ovl_periodic_3d
82930602db0SMatthew G. Knepley       args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_bd periodic,periodic,none -dm_plex_box_faces 3,5,4 -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 2 -conv_par_1_dm_p4est_refine_pattern hash -final_diagnostics 0
830c4762a1bSJed Brown     test:
831c4762a1bSJed Brown       suffix: p4est_par_ovl_gmsh_periodic
83230602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh
833c4762a1bSJed Brown     test:
834c4762a1bSJed Brown       suffix: p4est_par_ovl_gmsh_surface
83530602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3
836c4762a1bSJed Brown     test:
837c4762a1bSJed Brown       suffix: p4est_par_ovl_gmsh_s2t_3d
83830602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
839c4762a1bSJed Brown     test:
840c4762a1bSJed Brown       suffix: p4est_par_ovl_gmsh_s2t_3d_hash
84130602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 1 -conv_par_1_dm_forest_maximum_refinement 2 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
842c4762a1bSJed Brown     test:
843c4762a1bSJed Brown       requires: long_runtime
844c4762a1bSJed Brown       suffix: p4est_par_ovl_gmsh_periodic_3d
84530602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere.msh
846c4762a1bSJed Brown     test:
847c4762a1bSJed Brown       suffix: p4est_par_ovl_hyb_2d
84830602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh
849c4762a1bSJed Brown     test:
850c4762a1bSJed Brown       suffix: p4est_par_ovl_hyb_3d
85130602db0SMatthew G. Knepley       args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh
852c4762a1bSJed Brown 
853c4762a1bSJed Brown   test:
854c4762a1bSJed Brown     TODO: broken
855c4762a1bSJed Brown     requires: p4est
856c4762a1bSJed Brown     nsize: 2
857c4762a1bSJed Brown     suffix: p4est_bug_labels_noovl
85830602db0SMatthew G. Knepley     args: -test_p4est_seq -dm_plex_check_all -dm_forest_minimum_refinement 0 -dm_forest_partition_overlap 1 -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -dm_forest_initial_refinement 0 -dm_forest_maximum_refinement 2 -dm_p4est_refine_pattern hash -dist_dm_distribute -petscpartitioner_type simple -dm_forest_print_label_error
859c4762a1bSJed Brown 
860c4762a1bSJed Brown   test:
861c4762a1bSJed Brown     requires: p4est
862c4762a1bSJed Brown     nsize: 2
863c4762a1bSJed Brown     suffix: p4est_bug_distribute_overlap
86430602db0SMatthew G. Knepley     args: -dm_coord_space 0 -test_p4est_seq -conv_seq_2_dm_plex_check_all -conv_seq_1_dm_forest_minimum_refinement 0 -conv_seq_1_dm_forest_partition_overlap 0 -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 2 -conv_seq_1_dm_p4est_refine_pattern hash -petscpartitioner_type simple -overlap 1 -dm_view ::load_balance
865c4762a1bSJed Brown     args: -dm_post_overlap_view
866c4762a1bSJed Brown 
867c4762a1bSJed Brown   test:
868595782ffSMatthew G. Knepley     suffix: ref_alfeld2d_0
869595782ffSMatthew G. Knepley     requires: triangle
870012bc364SMatthew G. Knepley     args: -dm_plex_box_faces 5,3 -dm_view -dm_plex_check_all -ref_dm_refine 1 -ref_dm_plex_transform_type refine_alfeld -final_diagnostics
871595782ffSMatthew G. Knepley   test:
872595782ffSMatthew G. Knepley     suffix: ref_alfeld3d_0
873595782ffSMatthew G. Knepley     requires: ctetgen
874012bc364SMatthew G. Knepley     args: -dm_plex_dim 3 -dm_plex_box_faces 5,1,1 -dm_view -dm_plex_check_all -ref_dm_refine 1 -ref_dm_plex_transform_type refine_alfeld -final_diagnostics
875595782ffSMatthew G. Knepley 
87609c713e7SStefano Zampini   # Boundary layer refiners
87709c713e7SStefano Zampini   test:
87809c713e7SStefano Zampini     suffix: ref_bl_1
879d410b0cfSMatthew G. Knepley     args: -dm_plex_dim 1 -dm_plex_simplex 0 -dm_plex_box_faces 5,1 -dm_view -dm_plex_check_all 0 -ref_dm_refine 1 -ref_dm_plex_transform_type refine_boundary_layer -dm_extrude 2 -final_diagnostics -ref_dm_plex_transform_bl_splits 3
88009c713e7SStefano Zampini   test:
88109c713e7SStefano Zampini     suffix: ref_bl_2_tri
88209c713e7SStefano Zampini     requires: triangle
8838c4475acSStefano Zampini     args: -dm_coord_space 0 -dm_plex_box_faces 5,3 -dm_view -dm_plex_check_all 0 -ref_dm_refine 1 -ref_dm_plex_transform_type refine_boundary_layer -dm_extrude 3 -final_diagnostics -ref_dm_plex_transform_bl_splits 4
88409c713e7SStefano Zampini   test:
88509c713e7SStefano Zampini     suffix: ref_bl_3_quad
886d410b0cfSMatthew G. Knepley     args: -dm_plex_simplex 0 -dm_plex_box_faces 5,1 -dm_view -dm_plex_check_all 0 -ref_dm_refine 1 -ref_dm_plex_transform_type refine_boundary_layer -dm_extrude 3 -final_diagnostics -ref_dm_plex_transform_bl_splits 4
88709c713e7SStefano Zampini   test:
88809c713e7SStefano Zampini     suffix: ref_bl_spheresurface_extruded
88909c713e7SStefano Zampini     nsize : 4
8908c4475acSStefano Zampini     args: -dm_coord_space 0 -dm_extrude 3 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3 -dm_plex_check_all -dm_view -dist_dm_distribute -petscpartitioner_type simple -final_diagnostics -ref_dm_refine 1 -ref_dm_plex_transform_type refine_boundary_layer -ref_dm_plex_transform_bl_splits 2
89109c713e7SStefano Zampini   test:
89209c713e7SStefano Zampini     suffix: ref_bl_3d_hyb
89309c713e7SStefano Zampini     nsize : 4
894012bc364SMatthew G. Knepley     args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_3d_cube.msh -dm_plex_check_all -dm_view -dist_dm_distribute -petscpartitioner_type simple -final_diagnostics -ref_dm_refine 1 -ref_dm_plex_transform_type refine_boundary_layer -ref_dm_plex_transform_bl_splits 4 -ref_dm_plex_transform_bl_height_factor 3.1
8950e278f6aSMatthew G. Knepley 
89630602db0SMatthew G. Knepley   testset:
89730602db0SMatthew G. Knepley     args: -dm_plex_shape sphere -dm_plex_check_all -dm_view
8980e278f6aSMatthew G. Knepley     test:
8990e278f6aSMatthew G. Knepley       suffix: sphere_0
90030602db0SMatthew G. Knepley       args:
9010e278f6aSMatthew G. Knepley     test:
9020e278f6aSMatthew G. Knepley       suffix: sphere_1
90330602db0SMatthew G. Knepley       args: -ref_dm_refine 2
9040e278f6aSMatthew G. Knepley     test:
90568317524SMatthew G. Knepley       suffix: sphere_2
90630602db0SMatthew G. Knepley       args: -dm_plex_simplex 0
90768317524SMatthew G. Knepley     test:
90868317524SMatthew G. Knepley       suffix: sphere_3
90930602db0SMatthew G. Knepley       args: -dm_plex_simplex 0 -ref_dm_refine 2
91068317524SMatthew G. Knepley 
91168317524SMatthew G. Knepley   test:
9120e278f6aSMatthew G. Knepley     suffix: ball_0
9130e278f6aSMatthew G. Knepley     requires: ctetgen
91430602db0SMatthew G. Knepley     args: -dm_plex_dim 3 -dm_plex_shape ball -dm_plex_check_all -dm_view
9150e278f6aSMatthew G. Knepley 
9160e278f6aSMatthew G. Knepley   test:
9170e278f6aSMatthew G. Knepley     suffix: ball_1
9180e278f6aSMatthew G. Knepley     requires: ctetgen
91930602db0SMatthew G. Knepley     args: -dm_plex_dim 3 -dm_plex_shape ball -bd_dm_refine 2 -dm_plex_check_all -dm_view
9200e278f6aSMatthew G. Knepley 
9213fb88a6bSJed Brown   test:
9223fb88a6bSJed Brown     suffix: schwarz_p_extrude
9233fb88a6bSJed Brown     args: -dm_plex_shape schwarz_p -dm_plex_tps_extent 1,1,1 -dm_plex_tps_layers 1 -dm_plex_tps_thickness .2 -dm_view
924c4762a1bSJed Brown TEST*/
925