Actual source code: ex1.c
1: static char help[] = "Tests various DMPlex routines to construct, refine and distribute a mesh.\n\n";
3: #include <petscdmplex.h>
4: #include <petscdmplextransform.h>
5: #include <petscsf.h>
7: enum {STAGE_LOAD, STAGE_DISTRIBUTE, STAGE_REFINE, STAGE_OVERLAP};
9: typedef struct {
10: PetscLogEvent createMeshEvent;
11: PetscLogStage stages[4];
12: /* Domain and mesh definition */
13: PetscInt dim; /* The topological mesh dimension */
14: PetscInt overlap; /* The cell overlap to use during partitioning */
15: PetscBool testp4est[2];
16: PetscBool redistribute;
17: PetscBool final_ref; /* Run refinement at the end */
18: PetscBool final_diagnostics; /* Run diagnostics on the final mesh */
19: } AppCtx;
21: PetscErrorCode ProcessOptions(MPI_Comm comm, AppCtx *options)
22: {
25: options->dim = 2;
26: options->overlap = 0;
27: options->testp4est[0] = PETSC_FALSE;
28: options->testp4est[1] = PETSC_FALSE;
29: options->redistribute = PETSC_FALSE;
30: options->final_ref = PETSC_FALSE;
31: options->final_diagnostics = PETSC_TRUE;
33: PetscOptionsBegin(comm, "", "Meshing Problem Options", "DMPLEX");
34: PetscOptionsRangeInt("-dim", "The topological mesh dimension", "ex1.c", options->dim, &options->dim, NULL,1,3);
35: PetscOptionsBoundedInt("-overlap", "The cell overlap for partitioning", "ex1.c", options->overlap, &options->overlap, NULL,0);
36: PetscOptionsBool("-test_p4est_seq", "Test p4est with sequential base DM", "ex1.c", options->testp4est[0], &options->testp4est[0], NULL);
37: PetscOptionsBool("-test_p4est_par", "Test p4est with parallel base DM", "ex1.c", options->testp4est[1], &options->testp4est[1], NULL);
38: PetscOptionsBool("-test_redistribute", "Test redistribution", "ex1.c", options->redistribute, &options->redistribute, NULL);
39: PetscOptionsBool("-final_ref", "Run uniform refinement on the final mesh", "ex1.c", options->final_ref, &options->final_ref, NULL);
40: PetscOptionsBool("-final_diagnostics", "Run diagnostics on the final mesh", "ex1.c", options->final_diagnostics, &options->final_diagnostics, NULL);
41: PetscOptionsEnd();
43: PetscLogEventRegister("CreateMesh", DM_CLASSID, &options->createMeshEvent);
44: PetscLogStageRegister("MeshLoad", &options->stages[STAGE_LOAD]);
45: PetscLogStageRegister("MeshDistribute", &options->stages[STAGE_DISTRIBUTE]);
46: PetscLogStageRegister("MeshRefine", &options->stages[STAGE_REFINE]);
47: PetscLogStageRegister("MeshOverlap", &options->stages[STAGE_OVERLAP]);
48: return 0;
49: }
51: PetscErrorCode CreateMesh(MPI_Comm comm, AppCtx *user, DM *dm)
52: {
53: PetscInt dim = user->dim;
54: PetscBool testp4est_seq = user->testp4est[0];
55: PetscBool testp4est_par = user->testp4est[1];
56: PetscMPIInt rank, size;
57: PetscBool periodic;
59: PetscLogEventBegin(user->createMeshEvent,0,0,0,0);
60: MPI_Comm_rank(comm, &rank);
61: MPI_Comm_size(comm, &size);
62: PetscLogStagePush(user->stages[STAGE_LOAD]);
63: DMCreate(comm, dm);
64: DMSetType(*dm, DMPLEX);
65: DMPlexDistributeSetDefault(*dm, PETSC_FALSE);
66: DMSetFromOptions(*dm);
68: /* For topologically periodic meshes, we first localize coordinates,
69: and then remove any information related with the
70: automatic computation of localized vertices.
71: This way, refinement operations and conversions to p4est
72: will preserve the shape of the domain in physical space */
73: DMLocalizeCoordinates(*dm);
74: DMGetPeriodicity(*dm, &periodic, NULL, NULL, NULL);
75: if (periodic) DMSetPeriodicity(*dm, PETSC_TRUE, NULL, NULL, NULL);
77: DMViewFromOptions(*dm,NULL,"-init_dm_view");
78: DMGetDimension(*dm, &dim);
80: if (testp4est_seq) {
81: #if defined(PETSC_HAVE_P4EST)
82: DM dmConv = NULL;
84: DMPlexCheckSymmetry(*dm);
85: DMPlexCheckSkeleton(*dm, 0);
86: DMPlexCheckFaces(*dm, 0);
87: DMPlexCheckGeometry(*dm);
88: DMPlexCheckPointSF(*dm);
89: DMPlexCheckInterfaceCones(*dm);
90: DMPlexSetRefinementUniform(*dm, PETSC_TRUE);
91: DMPlexSetTransformType(*dm, DMPLEXREFINETOBOX);
92: DMRefine(*dm, PETSC_COMM_WORLD, &dmConv);
93: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
94: if (dmConv) {
95: DMDestroy(dm);
96: *dm = dmConv;
97: }
98: DMViewFromOptions(*dm,NULL,"-initref_dm_view");
99: DMPlexCheckSymmetry(*dm);
100: DMPlexCheckSkeleton(*dm, 0);
101: DMPlexCheckFaces(*dm, 0);
102: DMPlexCheckGeometry(*dm);
103: DMPlexCheckPointSF(*dm);
104: DMPlexCheckInterfaceCones(*dm);
106: DMConvert(*dm,dim == 2 ? DMP4EST : DMP8EST,&dmConv);
107: if (dmConv) {
108: PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_seq_1_");
109: DMSetFromOptions(dmConv);
110: DMDestroy(dm);
111: *dm = dmConv;
112: }
113: PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_seq_1_");
114: DMSetUp(*dm);
115: DMViewFromOptions(*dm, NULL, "-dm_view");
116: DMConvert(*dm,DMPLEX,&dmConv);
117: if (dmConv) {
118: PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_seq_2_");
119: DMPlexDistributeSetDefault(dmConv, PETSC_FALSE);
120: DMSetFromOptions(dmConv);
121: DMDestroy(dm);
122: *dm = dmConv;
123: }
124: PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_seq_2_");
125: DMViewFromOptions(*dm, NULL, "-dm_view");
126: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
127: #else
128: SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_SUP,"Recompile with --download-p4est");
129: #endif
130: }
132: PetscLogStagePop();
133: if (!testp4est_seq) {
134: PetscLogStagePush(user->stages[STAGE_DISTRIBUTE]);
135: DMViewFromOptions(*dm, NULL, "-dm_pre_dist_view");
136: PetscObjectSetOptionsPrefix((PetscObject) *dm, "dist_");
137: DMSetFromOptions(*dm);
138: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
139: PetscLogStagePop();
140: DMViewFromOptions(*dm, NULL, "-distributed_dm_view");
141: }
142: PetscLogStagePush(user->stages[STAGE_REFINE]);
143: PetscObjectSetOptionsPrefix((PetscObject) *dm, "ref_");
144: DMSetFromOptions(*dm);
145: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
146: PetscLogStagePop();
148: if (testp4est_par) {
149: #if defined(PETSC_HAVE_P4EST)
150: DM dmConv = NULL;
152: DMViewFromOptions(*dm, NULL, "-dm_tobox_view");
153: DMPlexSetRefinementUniform(*dm, PETSC_TRUE);
154: DMPlexSetTransformType(*dm, DMPLEXREFINETOBOX);
155: DMRefine(*dm, PETSC_COMM_WORLD, &dmConv);
156: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
157: if (dmConv) {
158: DMDestroy(dm);
159: *dm = dmConv;
160: }
161: DMViewFromOptions(*dm, NULL, "-dm_tobox_view");
162: DMPlexCheckSymmetry(*dm);
163: DMPlexCheckSkeleton(*dm, 0);
164: DMPlexCheckFaces(*dm, 0);
165: DMPlexCheckGeometry(*dm);
166: DMPlexCheckPointSF(*dm);
167: DMPlexCheckInterfaceCones(*dm);
169: DMConvert(*dm,dim == 2 ? DMP4EST : DMP8EST,&dmConv);
170: if (dmConv) {
171: PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_par_1_");
172: DMSetFromOptions(dmConv);
173: DMDestroy(dm);
174: *dm = dmConv;
175: }
176: PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_par_1_");
177: DMSetUp(*dm);
178: DMViewFromOptions(*dm, NULL, "-dm_view");
179: DMConvert(*dm, DMPLEX, &dmConv);
180: if (dmConv) {
181: PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_par_2_");
182: DMPlexDistributeSetDefault(dmConv, PETSC_FALSE);
183: DMSetFromOptions(dmConv);
184: DMDestroy(dm);
185: *dm = dmConv;
186: }
187: PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_par_2_");
188: DMViewFromOptions(*dm, NULL, "-dm_view");
189: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
190: #else
191: SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_SUP,"Recompile with --download-p4est");
192: #endif
193: }
195: /* test redistribution of an already distributed mesh */
196: if (user->redistribute) {
197: DM distributedMesh;
198: PetscSF sf;
199: PetscInt nranks;
201: DMViewFromOptions(*dm, NULL, "-dm_pre_redist_view");
202: DMPlexDistribute(*dm, 0, NULL, &distributedMesh);
203: if (distributedMesh) {
204: DMGetPointSF(distributedMesh, &sf);
205: PetscSFSetUp(sf);
206: DMGetNeighbors(distributedMesh, &nranks, NULL);
207: MPI_Allreduce(MPI_IN_PLACE, &nranks, 1, MPIU_INT, MPI_MIN, PetscObjectComm((PetscObject)*dm));
208: PetscViewerASCIIPrintf(PETSC_VIEWER_STDOUT_(PetscObjectComm((PetscObject)*dm)), "Minimum number of neighbors: %D\n", nranks);
209: DMDestroy(dm);
210: *dm = distributedMesh;
211: }
212: DMViewFromOptions(*dm, NULL, "-dm_post_redist_view");
213: }
215: if (user->overlap) {
216: DM overlapMesh = NULL;
218: /* Add the overlap to refined mesh */
219: PetscLogStagePush(user->stages[STAGE_OVERLAP]);
220: DMViewFromOptions(*dm, NULL, "-dm_pre_overlap_view");
221: DMPlexDistributeOverlap(*dm, user->overlap, NULL, &overlapMesh);
222: if (overlapMesh) {
223: PetscInt overlap;
224: DMPlexGetOverlap(overlapMesh, &overlap);
225: PetscViewerASCIIPrintf(PETSC_VIEWER_STDOUT_WORLD, "Overlap: %D\n", overlap);
226: DMDestroy(dm);
227: *dm = overlapMesh;
228: }
229: DMViewFromOptions(*dm, NULL, "-dm_post_overlap_view");
230: PetscLogStagePop();
231: }
232: if (user->final_ref) {
233: DM refinedMesh = NULL;
235: DMPlexSetRefinementUniform(*dm, PETSC_TRUE);
236: DMRefine(*dm, comm, &refinedMesh);
237: if (refinedMesh) {
238: DMDestroy(dm);
239: *dm = refinedMesh;
240: }
241: }
243: PetscObjectSetName((PetscObject) *dm, "Generated Mesh");
244: DMViewFromOptions(*dm, NULL, "-dm_view");
245: if (user->final_diagnostics) {
246: DMPlexInterpolatedFlag interpolated;
247: PetscInt dim, depth;
249: DMGetDimension(*dm, &dim);
250: DMPlexGetDepth(*dm, &depth);
251: DMPlexIsInterpolatedCollective(*dm, &interpolated);
253: DMPlexCheckSymmetry(*dm);
254: if (interpolated == DMPLEX_INTERPOLATED_FULL) {
255: DMPlexCheckFaces(*dm, 0);
256: }
257: DMPlexCheckSkeleton(*dm, 0);
258: DMPlexCheckGeometry(*dm);
259: }
260: PetscLogEventEnd(user->createMeshEvent,0,0,0,0);
261: return 0;
262: }
264: int main(int argc, char **argv)
265: {
266: DM dm;
267: AppCtx user;
269: PetscInitialize(&argc, &argv, NULL, help);
270: ProcessOptions(PETSC_COMM_WORLD, &user);
271: CreateMesh(PETSC_COMM_WORLD, &user, &dm);
272: DMDestroy(&dm);
273: PetscFinalize();
274: return 0;
275: }
277: /*TEST
279: # CTetGen 0-1
280: test:
281: suffix: 0
282: requires: ctetgen
283: 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
284: test:
285: suffix: 1
286: requires: ctetgen
287: 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
289: # 2D LaTex and ASCII output 2-9
290: test:
291: suffix: 2
292: requires: triangle
293: args: -dm_plex_interpolate 0 -dm_view ascii::ascii_latex
294: test:
295: suffix: 3
296: requires: triangle
297: args: -ref_dm_refine 1 -dm_view ascii::ascii_info_detail
298: test:
299: suffix: 4
300: requires: triangle
301: nsize: 2
302: args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_info_detail
303: test:
304: suffix: 5
305: requires: triangle
306: nsize: 2
307: args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex
308: test:
309: suffix: 6
310: args: -dm_coord_space 0 -dm_plex_simplex 0 -dm_view ascii::ascii_info_detail
311: test:
312: suffix: 7
313: args: -dm_coord_space 0 -dm_plex_simplex 0 -ref_dm_refine 1 -dm_view ascii::ascii_info_detail
314: test:
315: suffix: 8
316: nsize: 2
317: args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex
319: # 1D ASCII output
320: testset:
321: args: -dm_coord_space 0 -dm_plex_dim 1 -dm_view ascii::ascii_info_detail -dm_plex_check_all
322: test:
323: suffix: 1d_0
324: args:
325: test:
326: suffix: 1d_1
327: args: -ref_dm_refine 2
328: test:
329: suffix: 1d_2
330: args: -dm_plex_box_faces 5 -dm_plex_box_bd periodic
332: # Parallel refinement tests with overlap
333: test:
334: suffix: refine_overlap_1d
335: nsize: 2
336: 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
337: test:
338: suffix: refine_overlap_2d
339: requires: triangle
340: nsize: {{2 8}separate output}
341: 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
343: # Parallel extrusion tests
344: test:
345: suffix: spheresurface_extruded
346: nsize : 4
347: args: -dm_coord_space 0 -dm_plex_shape sphere -dm_extrude 3 -dist_dm_distribute -petscpartitioner_type simple \
348: -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical
350: test:
351: suffix: spheresurface_extruded_symmetric
352: nsize : 4
353: args: -dm_coord_space 0 -dm_plex_shape sphere -dm_extrude 3 -dm_plex_transform_extrude_symmetric -dist_dm_distribute -petscpartitioner_type simple \
354: -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical
356: # Parallel simple partitioner tests
357: test:
358: suffix: part_simple_0
359: requires: triangle
360: nsize: 2
361: args: -dm_coord_space 0 -dm_plex_interpolate 0 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail
362: test:
363: suffix: part_simple_1
364: requires: triangle
365: nsize: 8
366: args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail
368: # Parallel partitioner tests
369: test:
370: suffix: part_parmetis_0
371: requires: parmetis
372: nsize: 2
373: 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
374: test:
375: suffix: part_ptscotch_0
376: requires: ptscotch
377: nsize: 2
378: 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
379: test:
380: suffix: part_ptscotch_1
381: requires: ptscotch
382: nsize: 8
383: args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type ptscotch -petscpartitioner_view -petscpartitioner_ptscotch_imbalance 0.1
385: # CGNS reader tests 10-11 (need to find smaller test meshes)
386: test:
387: suffix: cgns_0
388: requires: cgns
389: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/tut21.cgns -dm_view
391: # ExodusII reader tests
392: testset:
393: args: -dm_plex_boundary_label boundary -dm_plex_check_all -dm_view
394: test:
395: suffix: exo_0
396: requires: exodusii
397: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/sevenside-quad.exo
398: test:
399: suffix: exo_1
400: requires: exodusii
401: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/sevenside-quad-15.exo
402: test:
403: suffix: exo_2
404: requires: exodusii
405: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/squaremotor-30.exo
406: test:
407: suffix: exo_3
408: requires: exodusii
409: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/blockcylinder-50.exo
410: test:
411: suffix: exo_4
412: requires: exodusii
413: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/simpleblock-100.exo
415: # Gmsh mesh reader tests
416: testset:
417: args: -dm_coord_space 0 -dm_view
419: test:
420: suffix: gmsh_0
421: requires: !single
422: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
423: test:
424: suffix: gmsh_1
425: requires: !single
426: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh
427: test:
428: suffix: gmsh_2
429: requires: !single
430: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh
431: test:
432: suffix: gmsh_3
433: nsize: 3
434: requires: !single
435: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh -dist_dm_distribute -petscpartitioner_type simple
436: test:
437: suffix: gmsh_4
438: nsize: 3
439: requires: !single
440: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh -dist_dm_distribute -petscpartitioner_type simple
441: test:
442: suffix: gmsh_5
443: requires: !single
444: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_quad.msh
445: # TODO: it seems the mesh is not a valid gmsh (inverted cell)
446: test:
447: suffix: gmsh_6
448: requires: !single
449: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin_physnames.msh -final_diagnostics 0
450: test:
451: suffix: gmsh_7
452: 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
453: test:
454: suffix: gmsh_8
455: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere.msh -dm_view ::ascii_info_detail -dm_plex_check_all
456: testset:
457: 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
458: test:
459: suffix: gmsh_9
460: test:
461: suffix: gmsh_9_periodic_0
462: args: -dm_plex_gmsh_periodic 0
463: testset:
464: 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
465: test:
466: suffix: gmsh_10
467: test:
468: suffix: gmsh_10_periodic_0
469: args: -dm_plex_gmsh_periodic 0
470: testset:
471: 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
472: test:
473: suffix: gmsh_11
474: test:
475: suffix: gmsh_11_periodic_0
476: args: -dm_plex_gmsh_periodic 0
477: # TODO: it seems the mesh is not a valid gmsh (inverted cell)
478: test:
479: suffix: gmsh_12
480: nsize: 4
481: requires: !single mpiio
482: 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
483: test:
484: suffix: gmsh_13_hybs2t
485: nsize: 4
486: 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
487: test:
488: suffix: gmsh_14_ext
489: requires: !single
490: 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
491: test:
492: suffix: gmsh_14_ext_s2t
493: requires: !single
494: 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
495: test:
496: suffix: gmsh_15_hyb3d
497: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view -dm_plex_check_all
498: test:
499: suffix: gmsh_15_hyb3d_vtk
500: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view vtk: -dm_plex_gmsh_hybrid -dm_plex_check_all
501: test:
502: suffix: gmsh_15_hyb3d_s2t
503: 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
504: test:
505: suffix: gmsh_16_spheresurface
506: nsize : 4
507: 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
508: test:
509: suffix: gmsh_16_spheresurface_s2t
510: nsize : 4
511: 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
512: test:
513: suffix: gmsh_16_spheresurface_extruded
514: nsize : 4
515: 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
516: test:
517: suffix: gmsh_16_spheresurface_extruded_s2t
518: nsize : 4
519: 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
520: test:
521: suffix: gmsh_17_hyb3d_interp_ascii
522: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.msh -dm_view -dm_plex_check_all
523: test:
524: suffix: exodus_17_hyb3d_interp_ascii
525: requires: exodusii
526: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.exo -dm_view -dm_plex_check_all
528: # Legacy Gmsh v22/v40 ascii/binary reader tests
529: testset:
530: output_file: output/ex1_gmsh_3d_legacy.out
531: args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all
532: test:
533: suffix: gmsh_3d_ascii_v22
534: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh2
535: test:
536: suffix: gmsh_3d_ascii_v40
537: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh4
538: test:
539: suffix: gmsh_3d_binary_v22
540: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh2
541: test:
542: suffix: gmsh_3d_binary_v40
543: requires: long64
544: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh4
546: # Gmsh v41 ascii/binary reader tests
547: testset: # 32bit mesh, sequential
548: args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices
549: output_file: output/ex1_gmsh_3d_32.out
550: test:
551: suffix: gmsh_3d_ascii_v41_32
552: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh
553: test:
554: suffix: gmsh_3d_binary_v41_32
555: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh
556: test:
557: suffix: gmsh_3d_binary_v41_32_mpiio
558: requires: defined(PETSC_HAVE_MPIIO)
559: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio
560: test:
561: suffix: gmsh_quad_8node
562: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-qua-8node.msh \
563: -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices
564: test:
565: suffix: gmsh_hex_20node
566: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-hex-20node.msh \
567: -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices
568: testset: # 32bit mesh, parallel
569: 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
570: nsize: 2
571: output_file: output/ex1_gmsh_3d_32_np2.out
572: test:
573: suffix: gmsh_3d_ascii_v41_32_np2
574: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh
575: test:
576: suffix: gmsh_3d_binary_v41_32_np2
577: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh
578: test:
579: suffix: gmsh_3d_binary_v41_32_np2_mpiio
580: requires: defined(PETSC_HAVE_MPIIO)
581: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio
582: testset: # 64bit mesh, sequential
583: args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices
584: output_file: output/ex1_gmsh_3d_64.out
585: test:
586: suffix: gmsh_3d_ascii_v41_64
587: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh
588: test:
589: suffix: gmsh_3d_binary_v41_64
590: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh
591: test:
592: suffix: gmsh_3d_binary_v41_64_mpiio
593: requires: defined(PETSC_HAVE_MPIIO)
594: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio
595: testset: # 64bit mesh, parallel
596: 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
597: nsize: 2
598: output_file: output/ex1_gmsh_3d_64_np2.out
599: test:
600: suffix: gmsh_3d_ascii_v41_64_np2
601: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh
602: test:
603: suffix: gmsh_3d_binary_v41_64_np2
604: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh
605: test:
606: suffix: gmsh_3d_binary_v41_64_np2_mpiio
607: requires: defined(PETSC_HAVE_MPIIO)
608: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio
610: # Fluent mesh reader tests
611: # TODO: Geometry checks fail
612: test:
613: suffix: fluent_0
614: requires: !complex
615: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dm_view -final_diagnostics 0
616: test:
617: suffix: fluent_1
618: nsize: 3
619: requires: !complex
620: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dist_dm_distribute -petscpartitioner_type simple -dm_view -final_diagnostics 0
621: test:
622: suffix: fluent_2
623: requires: !complex
624: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets_ascii.cas -dm_view -final_diagnostics 0
625: test:
626: suffix: fluent_3
627: requires: !complex
628: TODO: Fails on non-linux: fseek(), fileno() ? https://gitlab.com/petsc/petsc/merge_requests/2206#note_238166382
629: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets.cas -dm_view -final_diagnostics 0
631: # Med mesh reader tests, including parallel file reads
632: test:
633: suffix: med_0
634: requires: med
635: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.med -dm_view
636: test:
637: suffix: med_1
638: requires: med
639: nsize: 3
640: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.med -dist_dm_distribute -petscpartitioner_type simple -dm_view
641: test:
642: suffix: med_2
643: requires: med
644: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cylinder.med -dm_view
645: test:
646: suffix: med_3
647: requires: med
648: TODO: MED
649: nsize: 3
650: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cylinder.med -dist_dm_distribute -petscpartitioner_type simple -dm_view
652: # Test shape quality
653: test:
654: suffix: test_shape
655: requires: ctetgen
656: args: -dm_plex_dim 3 -dim 3 -dm_refine_hierarchy 3 -dm_plex_check_all -dm_plex_check_cell_shape
658: # Test simplex to tensor conversion
659: test:
660: suffix: s2t2
661: requires: triangle
662: 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
664: test:
665: suffix: s2t3
666: requires: ctetgen
667: 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
669: # Test cylinder
670: testset:
671: args: -dm_plex_shape cylinder -dm_plex_check_all -dm_view
672: test:
673: suffix: cylinder
674: args: -ref_dm_refine 1
675: test:
676: suffix: cylinder_per
677: args: -dm_plex_cylinder_bd periodic -ref_dm_refine 1 -ref_dm_refine_remap 0
678: test:
679: suffix: cylinder_wedge
680: args: -dm_coord_space 0 -dm_plex_interpolate 0 -dm_plex_cell tensor_triangular_prism -dm_view vtk:
681: test:
682: suffix: cylinder_wedge_int
683: output_file: output/ex1_cylinder_wedge.out
684: args: -dm_coord_space 0 -dm_plex_cell tensor_triangular_prism -dm_view vtk:
686: test:
687: suffix: box_2d
688: args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view
690: test:
691: suffix: box_2d_per
692: args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view
694: test:
695: suffix: box_2d_per_unint
696: 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
698: test:
699: suffix: box_3d
700: args: -dm_plex_dim 3 -dim 3 -dm_plex_simplex 0 -ref_dm_refine 3 -dm_plex_check_all -dm_view
702: test:
703: requires: triangle
704: suffix: box_wedge
705: 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
707: testset:
708: requires: triangle
709: 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
710: test:
711: suffix: box_wedge_s2t
712: test:
713: nsize: 3
714: args: -dist_dm_distribute -petscpartitioner_type simple
715: suffix: box_wedge_s2t_parallel
717: # Test GLVis output
718: testset:
719: args: -dm_coord_space 0 -dm_plex_interpolate 0
720: test:
721: suffix: glvis_2d_tet
722: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_plex_gmsh_periodic 0 -dm_view glvis:
723: test:
724: suffix: glvis_2d_tet_per
725: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 0
726: test:
727: suffix: glvis_3d_tet
728: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere_bin.msh -dm_plex_gmsh_periodic 0 -dm_view glvis:
729: testset:
730: args: -dm_coord_space 0
731: test:
732: suffix: glvis_2d_tet_per_mfem
733: 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:
734: test:
735: suffix: glvis_2d_quad
736: args: -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -dm_view glvis:
737: test:
738: suffix: glvis_2d_quad_per
739: 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
740: test:
741: suffix: glvis_2d_quad_per_mfem
742: 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
743: test:
744: suffix: glvis_3d_tet_per
745: 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
746: test:
747: suffix: glvis_3d_tet_per_mfem
748: TODO: broken
749: 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:
750: test:
751: suffix: glvis_3d_hex
752: args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 3,3,3 -dm_view glvis:
753: test:
754: suffix: glvis_3d_hex_per
755: 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
756: test:
757: suffix: glvis_3d_hex_per_mfem
758: 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
759: test:
760: suffix: glvis_2d_hyb
761: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary
762: test:
763: suffix: glvis_3d_hyb
764: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary
765: test:
766: suffix: glvis_3d_hyb_s2t
767: 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
769: # Test P4EST
770: testset:
771: requires: p4est
772: 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
773: test:
774: suffix: p4est_periodic
775: 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
776: test:
777: suffix: p4est_periodic_3d
778: 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
779: test:
780: suffix: p4est_gmsh_periodic
781: 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
782: test:
783: suffix: p4est_gmsh_surface
784: 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
785: test:
786: suffix: p4est_gmsh_surface_parallel
787: nsize: 2
788: 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
789: test:
790: suffix: p4est_hyb_2d
791: 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
792: test:
793: suffix: p4est_hyb_3d
794: 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
795: test:
796: requires: ctetgen
797: suffix: p4est_s2t_bugfaces_3d
798: 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
799: test:
800: suffix: p4est_bug_overlapsf
801: nsize: 3
802: 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
803: test:
804: suffix: p4est_redistribute
805: nsize: 3
806: 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
807: test:
808: suffix: p4est_gmsh_s2t_3d
809: args: -conv_seq_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
810: test:
811: suffix: p4est_gmsh_s2t_3d_hash
812: 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
813: test:
814: requires: long_runtime
815: suffix: p4est_gmsh_periodic_3d
816: 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
818: testset:
819: requires: p4est
820: nsize: 6
821: 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
822: test:
823: TODO: interface cones do not conform
824: suffix: p4est_par_periodic
825: 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
826: test:
827: TODO: interface cones do not conform
828: suffix: p4est_par_periodic_3d
829: 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
830: test:
831: TODO: interface cones do not conform
832: suffix: p4est_par_gmsh_periodic
833: 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
834: test:
835: suffix: p4est_par_gmsh_surface
836: 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
837: test:
838: suffix: p4est_par_gmsh_s2t_3d
839: args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
840: test:
841: TODO: interface cones do not conform
842: suffix: p4est_par_gmsh_s2t_3d_hash
843: 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
844: test:
845: requires: long_runtime
846: suffix: p4est_par_gmsh_periodic_3d
847: 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
849: testset:
850: requires: p4est
851: nsize: 6
852: 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
853: test:
854: suffix: p4est_par_ovl_periodic
855: 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
856: #TODO Mesh cell 201 is inverted, vol = 0. (FVM Volume. Is it correct? -> Diagnostics disabled)
857: test:
858: suffix: p4est_par_ovl_periodic_3d
859: 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
860: test:
861: suffix: p4est_par_ovl_gmsh_periodic
862: 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
863: test:
864: suffix: p4est_par_ovl_gmsh_surface
865: 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
866: test:
867: suffix: p4est_par_ovl_gmsh_s2t_3d
868: args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
869: test:
870: suffix: p4est_par_ovl_gmsh_s2t_3d_hash
871: 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
872: test:
873: requires: long_runtime
874: suffix: p4est_par_ovl_gmsh_periodic_3d
875: 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
876: test:
877: suffix: p4est_par_ovl_hyb_2d
878: 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
879: test:
880: suffix: p4est_par_ovl_hyb_3d
881: 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
883: test:
884: TODO: broken
885: requires: p4est
886: nsize: 2
887: suffix: p4est_bug_labels_noovl
888: 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
890: test:
891: requires: p4est
892: nsize: 2
893: suffix: p4est_bug_distribute_overlap
894: 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
895: args: -dm_post_overlap_view
897: test:
898: suffix: ref_alfeld2d_0
899: requires: triangle
900: 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
901: test:
902: suffix: ref_alfeld3d_0
903: requires: ctetgen
904: 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
906: # Boundary layer refiners
907: test:
908: suffix: ref_bl_1
909: 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
910: test:
911: suffix: ref_bl_2_tri
912: requires: triangle
913: 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
914: test:
915: suffix: ref_bl_3_quad
916: 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
917: test:
918: suffix: ref_bl_spheresurface_extruded
919: nsize : 4
920: 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
921: test:
922: suffix: ref_bl_3d_hyb
923: nsize : 4
924: 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
926: testset:
927: args: -dm_plex_shape sphere -dm_plex_check_all -dm_view
928: test:
929: suffix: sphere_0
930: args:
931: test:
932: suffix: sphere_1
933: args: -ref_dm_refine 2
934: test:
935: suffix: sphere_2
936: args: -dm_plex_simplex 0
937: test:
938: suffix: sphere_3
939: args: -dm_plex_simplex 0 -ref_dm_refine 2
941: test:
942: suffix: ball_0
943: requires: ctetgen
944: args: -dm_plex_dim 3 -dm_plex_shape ball -dm_plex_check_all -dm_view
946: test:
947: suffix: ball_1
948: requires: ctetgen
949: args: -dm_plex_dim 3 -dm_plex_shape ball -bd_dm_refine 2 -dm_plex_check_all -dm_view
951: test:
952: suffix: schwarz_p_extrude
953: 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
954: TEST*/