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