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: {
26: options->dim = 2;
27: options->overlap = 0;
28: options->testp4est[0] = PETSC_FALSE;
29: options->testp4est[1] = PETSC_FALSE;
30: options->redistribute = PETSC_FALSE;
31: options->final_ref = PETSC_FALSE;
32: options->final_diagnostics = PETSC_TRUE;
34: PetscOptionsBegin(comm, "", "Meshing Problem Options", "DMPLEX");
35: PetscOptionsRangeInt("-dim", "The topological mesh dimension", "ex1.c", options->dim, &options->dim, NULL,1,3);
36: PetscOptionsBoundedInt("-overlap", "The cell overlap for partitioning", "ex1.c", options->overlap, &options->overlap, NULL,0);
37: PetscOptionsBool("-test_p4est_seq", "Test p4est with sequential base DM", "ex1.c", options->testp4est[0], &options->testp4est[0], NULL);
38: PetscOptionsBool("-test_p4est_par", "Test p4est with parallel base DM", "ex1.c", options->testp4est[1], &options->testp4est[1], NULL);
39: PetscOptionsBool("-test_redistribute", "Test redistribution", "ex1.c", options->redistribute, &options->redistribute, NULL);
40: PetscOptionsBool("-final_ref", "Run uniform refinement on the final mesh", "ex1.c", options->final_ref, &options->final_ref, NULL);
41: PetscOptionsBool("-final_diagnostics", "Run diagnostics on the final mesh", "ex1.c", options->final_diagnostics, &options->final_diagnostics, NULL);
42: PetscOptionsEnd();
44: PetscLogEventRegister("CreateMesh", DM_CLASSID, &options->createMeshEvent);
45: PetscLogStageRegister("MeshLoad", &options->stages[STAGE_LOAD]);
46: PetscLogStageRegister("MeshDistribute", &options->stages[STAGE_DISTRIBUTE]);
47: PetscLogStageRegister("MeshRefine", &options->stages[STAGE_REFINE]);
48: PetscLogStageRegister("MeshOverlap", &options->stages[STAGE_OVERLAP]);
49: return(0);
50: }
52: PetscErrorCode CreateMesh(MPI_Comm comm, AppCtx *user, DM *dm)
53: {
54: PetscInt dim = user->dim;
55: PetscBool testp4est_seq = user->testp4est[0];
56: PetscBool testp4est_par = user->testp4est[1];
57: PetscMPIInt rank, size;
58: PetscBool periodic;
62: PetscLogEventBegin(user->createMeshEvent,0,0,0,0);
63: MPI_Comm_rank(comm, &rank);
64: MPI_Comm_size(comm, &size);
65: PetscLogStagePush(user->stages[STAGE_LOAD]);
66: DMCreate(comm, dm);
67: DMSetType(*dm, DMPLEX);
68: DMSetFromOptions(*dm);
70: /* For topologically periodic meshes, we first localize coordinates,
71: and then remove any information related with the
72: automatic computation of localized vertices.
73: This way, refinement operations and conversions to p4est
74: will preserve the shape of the domain in physical space */
75: DMLocalizeCoordinates(*dm);
76: DMGetPeriodicity(*dm, &periodic, NULL, NULL, NULL);
77: if (periodic) {DMSetPeriodicity(*dm, PETSC_TRUE, NULL, NULL, NULL);}
79: DMViewFromOptions(*dm,NULL,"-init_dm_view");
80: DMGetDimension(*dm, &dim);
82: if (testp4est_seq) {
83: #if defined(PETSC_HAVE_P4EST)
84: DM dmConv = NULL;
86: DMPlexCheckSymmetry(*dm);
87: DMPlexCheckSkeleton(*dm, 0);
88: DMPlexCheckFaces(*dm, 0);
89: DMPlexCheckGeometry(*dm);
90: DMPlexCheckPointSF(*dm);
91: DMPlexCheckInterfaceCones(*dm);
92: DMPlexSetRefinementUniform(*dm, PETSC_TRUE);
93: DMPlexSetTransformType(*dm, DMPLEXREFINETOBOX);
94: DMRefine(*dm, PETSC_COMM_WORLD, &dmConv);
95: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
96: if (dmConv) {
97: DMDestroy(dm);
98: *dm = dmConv;
99: }
100: DMViewFromOptions(*dm,NULL,"-initref_dm_view");
101: DMPlexCheckSymmetry(*dm);
102: DMPlexCheckSkeleton(*dm, 0);
103: DMPlexCheckFaces(*dm, 0);
104: DMPlexCheckGeometry(*dm);
105: DMPlexCheckPointSF(*dm);
106: DMPlexCheckInterfaceCones(*dm);
108: DMConvert(*dm,dim == 2 ? DMP4EST : DMP8EST,&dmConv);
109: if (dmConv) {
110: PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_seq_1_");
111: DMSetFromOptions(dmConv);
112: DMDestroy(dm);
113: *dm = dmConv;
114: }
115: PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_seq_1_");
116: DMSetUp(*dm);
117: DMViewFromOptions(*dm, NULL, "-dm_view");
118: DMConvert(*dm,DMPLEX,&dmConv);
119: if (dmConv) {
120: PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_seq_2_");
121: DMSetFromOptions(dmConv);
122: DMDestroy(dm);
123: *dm = dmConv;
124: }
125: PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_seq_2_");
126: DMViewFromOptions(*dm, NULL, "-dm_view");
127: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
128: #else
129: SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_SUP,"Recompile with --download-p4est");
130: #endif
131: }
133: PetscLogStagePop();
134: if (!testp4est_seq) {
135: PetscLogStagePush(user->stages[STAGE_DISTRIBUTE]);
136: DMViewFromOptions(*dm, NULL, "-dm_pre_dist_view");
137: PetscObjectSetOptionsPrefix((PetscObject) *dm, "dist_");
138: DMSetFromOptions(*dm);
139: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
140: PetscLogStagePop();
141: DMViewFromOptions(*dm, NULL, "-distributed_dm_view");
142: }
143: PetscLogStagePush(user->stages[STAGE_REFINE]);
144: PetscObjectSetOptionsPrefix((PetscObject) *dm, "ref_");
145: DMSetFromOptions(*dm);
146: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
147: PetscLogStagePop();
149: if (testp4est_par) {
150: #if defined(PETSC_HAVE_P4EST)
151: DM dmConv = NULL;
153: DMViewFromOptions(*dm, NULL, "-dm_tobox_view");
154: DMPlexSetRefinementUniform(*dm, PETSC_TRUE);
155: DMPlexSetTransformType(*dm, DMPLEXREFINETOBOX);
156: DMRefine(*dm, PETSC_COMM_WORLD, &dmConv);
157: PetscObjectSetOptionsPrefix((PetscObject) *dm, NULL);
158: if (dmConv) {
159: DMDestroy(dm);
160: *dm = dmConv;
161: }
162: DMViewFromOptions(*dm, NULL, "-dm_tobox_view");
163: DMPlexCheckSymmetry(*dm);
164: DMPlexCheckSkeleton(*dm, 0);
165: DMPlexCheckFaces(*dm, 0);
166: DMPlexCheckGeometry(*dm);
167: DMPlexCheckPointSF(*dm);
168: DMPlexCheckInterfaceCones(*dm);
170: DMConvert(*dm,dim == 2 ? DMP4EST : DMP8EST,&dmConv);
171: if (dmConv) {
172: PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_par_1_");
173: DMSetFromOptions(dmConv);
174: DMDestroy(dm);
175: *dm = dmConv;
176: }
177: PetscObjectSetOptionsPrefix((PetscObject) *dm, "conv_par_1_");
178: DMSetUp(*dm);
179: DMViewFromOptions(*dm, NULL, "-dm_view");
180: DMConvert(*dm, DMPLEX, &dmConv);
181: if (dmConv) {
182: PetscObjectSetOptionsPrefix((PetscObject) dmConv, "conv_par_2_");
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;
270: PetscInitialize(&argc, &argv, NULL, help);if (ierr) return ierr;
271: ProcessOptions(PETSC_COMM_WORLD, &user);
272: CreateMesh(PETSC_COMM_WORLD, &user, &dm);
273: DMDestroy(&dm);
274: PetscFinalize();
275: return ierr;
276: }
278: /*TEST
280: # CTetGen 0-1
281: test:
282: suffix: 0
283: requires: ctetgen
284: 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
285: test:
286: suffix: 1
287: requires: ctetgen
288: 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
290: # 2D LaTex and ASCII output 2-9
291: test:
292: suffix: 2
293: requires: triangle
294: args: -dm_plex_interpolate 0 -dm_view ascii::ascii_latex
295: test:
296: suffix: 3
297: requires: triangle
298: args: -ref_dm_refine 1 -dm_view ascii::ascii_info_detail
299: test:
300: suffix: 4
301: requires: triangle
302: nsize: 2
303: args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_info_detail
304: test:
305: suffix: 5
306: requires: triangle
307: nsize: 2
308: args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex
309: test:
310: suffix: 6
311: args: -dm_coord_space 0 -dm_plex_simplex 0 -dm_view ascii::ascii_info_detail
312: test:
313: suffix: 7
314: args: -dm_coord_space 0 -dm_plex_simplex 0 -ref_dm_refine 1 -dm_view ascii::ascii_info_detail
315: test:
316: suffix: 8
317: nsize: 2
318: args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex
320: # 1D ASCII output
321: testset:
322: args: -dm_coord_space 0 -dm_plex_dim 1 -dm_view ascii::ascii_info_detail -dm_plex_check_all
323: test:
324: suffix: 1d_0
325: args:
326: test:
327: suffix: 1d_1
328: args: -ref_dm_refine 2
329: test:
330: suffix: 1d_2
331: args: -dm_plex_box_faces 5 -dm_plex_box_bd periodic
333: # Parallel refinement tests with overlap
334: test:
335: suffix: refine_overlap_1d
336: nsize: 2
337: 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
338: test:
339: suffix: refine_overlap_2d
340: requires: triangle
341: nsize: {{2 8}separate output}
342: 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
344: # Parallel simple partitioner tests
345: test:
346: suffix: part_simple_0
347: requires: triangle
348: nsize: 2
349: args: -dm_coord_space 0 -dm_plex_interpolate 0 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail
350: test:
351: suffix: part_simple_1
352: requires: triangle
353: nsize: 8
354: args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail
356: # Parallel partitioner tests
357: test:
358: suffix: part_parmetis_0
359: requires: parmetis
360: nsize: 2
361: args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type parmetis -dm_view -petscpartitioner_view -test_redistribute -dm_plex_csr_via_mat {{0 1}} -dm_pre_redist_view ::load_balance -dm_post_redist_view ::load_balance -petscpartitioner_view_graph
362: test:
363: suffix: part_ptscotch_0
364: requires: ptscotch
365: nsize: 2
366: args: -dm_plex_simplex 0 -dist_dm_distribute -petscpartitioner_type ptscotch -petscpartitioner_view -petscpartitioner_ptscotch_strategy quality -test_redistribute -dm_plex_csr_via_mat {{0 1}} -dm_pre_redist_view ::load_balance -dm_post_redist_view ::load_balance -petscpartitioner_view_graph
367: test:
368: suffix: part_ptscotch_1
369: requires: ptscotch
370: nsize: 8
371: args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type ptscotch -petscpartitioner_view -petscpartitioner_ptscotch_imbalance 0.1
373: # CGNS reader tests 10-11 (need to find smaller test meshes)
374: test:
375: suffix: cgns_0
376: requires: cgns
377: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/tut21.cgns -dm_view
379: # Gmsh mesh reader tests
380: testset:
381: args: -dm_coord_space 0 -dm_view
383: test:
384: suffix: gmsh_0
385: requires: !single
386: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
387: test:
388: suffix: gmsh_1
389: requires: !single
390: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh
391: test:
392: suffix: gmsh_2
393: requires: !single
394: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh
395: test:
396: suffix: gmsh_3
397: nsize: 3
398: requires: !single
399: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh -dist_dm_distribute -petscpartitioner_type simple
400: test:
401: suffix: gmsh_4
402: nsize: 3
403: requires: !single
404: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh -dist_dm_distribute -petscpartitioner_type simple
405: test:
406: suffix: gmsh_5
407: requires: !single
408: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_quad.msh
409: # TODO: it seems the mesh is not a valid gmsh (inverted cell)
410: test:
411: suffix: gmsh_6
412: requires: !single
413: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin_physnames.msh -final_diagnostics 0
414: test:
415: suffix: gmsh_7
416: 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
417: test:
418: suffix: gmsh_8
419: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere.msh -dm_view ::ascii_info_detail -dm_plex_check_all
420: testset:
421: 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
422: test:
423: suffix: gmsh_9
424: test:
425: suffix: gmsh_9_periodic_0
426: args: -dm_plex_gmsh_periodic 0
427: testset:
428: 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
429: test:
430: suffix: gmsh_10
431: test:
432: suffix: gmsh_10_periodic_0
433: args: -dm_plex_gmsh_periodic 0
434: testset:
435: 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
436: test:
437: suffix: gmsh_11
438: test:
439: suffix: gmsh_11_periodic_0
440: args: -dm_plex_gmsh_periodic 0
441: # TODO: it seems the mesh is not a valid gmsh (inverted cell)
442: test:
443: suffix: gmsh_12
444: nsize: 4
445: requires: !single mpiio
446: 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
447: test:
448: suffix: gmsh_13_hybs2t
449: nsize: 4
450: 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
451: test:
452: suffix: gmsh_14_ext
453: requires: !single
454: args: -dm_coord_space 0 -dm_extrude_layers 2 -dm_extrude_thickness 1.5 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh -dm_view -dm_plex_check_all
455: test:
456: suffix: gmsh_14_ext_s2t
457: requires: !single
458: args: -dm_coord_space 0 -dm_extrude_layers 2 -dm_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
459: test:
460: suffix: gmsh_15_hyb3d
461: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view -dm_plex_check_all
462: test:
463: suffix: gmsh_15_hyb3d_vtk
464: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view vtk: -dm_plex_gmsh_hybrid -dm_plex_check_all
465: test:
466: suffix: gmsh_15_hyb3d_s2t
467: 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
468: test:
469: suffix: gmsh_16_spheresurface
470: nsize : 4
471: 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
472: test:
473: suffix: gmsh_16_spheresurface_s2t
474: nsize : 4
475: 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
476: test:
477: suffix: gmsh_16_spheresurface_extruded
478: nsize : 4
479: args: -dm_coord_space 0 -dm_extrude_layers 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
480: test:
481: suffix: gmsh_16_spheresurface_extruded_s2t
482: nsize : 4
483: args: -dm_coord_space 0 -dm_extrude_layers 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
484: test:
485: suffix: gmsh_17_hyb3d_interp_ascii
486: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.msh -dm_view -dm_plex_check_all
487: test:
488: suffix: exodus_17_hyb3d_interp_ascii
489: requires: exodusii
490: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.exo -dm_view -dm_plex_check_all
492: # Legacy Gmsh v22/v40 ascii/binary reader tests
493: testset:
494: output_file: output/ex1_gmsh_3d_legacy.out
495: args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all
496: test:
497: suffix: gmsh_3d_ascii_v22
498: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh2
499: test:
500: suffix: gmsh_3d_ascii_v40
501: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh4
502: test:
503: suffix: gmsh_3d_binary_v22
504: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh2
505: test:
506: suffix: gmsh_3d_binary_v40
507: requires: long64
508: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh4
510: # Gmsh v41 ascii/binary reader tests
511: testset: # 32bit mesh, sequential
512: args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all
513: output_file: output/ex1_gmsh_3d_32.out
514: test:
515: suffix: gmsh_3d_ascii_v41_32
516: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh
517: test:
518: suffix: gmsh_3d_binary_v41_32
519: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh
520: test:
521: suffix: gmsh_3d_binary_v41_32_mpiio
522: requires: defined(PETSC_HAVE_MPIIO)
523: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio
524: testset: # 32bit mesh, parallel
525: args: -dm_coord_space 0 -dist_dm_distribute -petscpartitioner_type simple -dm_view ::ascii_info_detail -dm_plex_check_all
526: nsize: 2
527: output_file: output/ex1_gmsh_3d_32_np2.out
528: test:
529: suffix: gmsh_3d_ascii_v41_32_np2
530: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh
531: test:
532: suffix: gmsh_3d_binary_v41_32_np2
533: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh
534: test:
535: suffix: gmsh_3d_binary_v41_32_np2_mpiio
536: requires: defined(PETSC_HAVE_MPIIO)
537: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio
538: testset: # 64bit mesh, sequential
539: args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all
540: output_file: output/ex1_gmsh_3d_64.out
541: test:
542: suffix: gmsh_3d_ascii_v41_64
543: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh
544: test:
545: suffix: gmsh_3d_binary_v41_64
546: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh
547: test:
548: suffix: gmsh_3d_binary_v41_64_mpiio
549: requires: defined(PETSC_HAVE_MPIIO)
550: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio
551: testset: # 64bit mesh, parallel
552: args: -dm_coord_space 0 -dist_dm_distribute -petscpartitioner_type simple -dm_view ::ascii_info_detail -dm_plex_check_all
553: nsize: 2
554: output_file: output/ex1_gmsh_3d_64_np2.out
555: test:
556: suffix: gmsh_3d_ascii_v41_64_np2
557: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh
558: test:
559: suffix: gmsh_3d_binary_v41_64_np2
560: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh
561: test:
562: suffix: gmsh_3d_binary_v41_64_np2_mpiio
563: requires: defined(PETSC_HAVE_MPIIO)
564: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio
566: # Fluent mesh reader tests
567: # TODO: Geometry checks fail
568: test:
569: suffix: fluent_0
570: requires: !complex
571: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dm_view -final_diagnostics 0
572: test:
573: suffix: fluent_1
574: nsize: 3
575: requires: !complex
576: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dist_dm_distribute -petscpartitioner_type simple -dm_view -final_diagnostics 0
577: test:
578: suffix: fluent_2
579: requires: !complex
580: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets_ascii.cas -dm_view -final_diagnostics 0
581: test:
582: suffix: fluent_3
583: requires: !complex
584: TODO: Fails on non-linux: fseek(), fileno() ? https://gitlab.com/petsc/petsc/merge_requests/2206#note_238166382
585: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets.cas -dm_view -final_diagnostics 0
587: # Med mesh reader tests, including parallel file reads
588: test:
589: suffix: med_0
590: requires: med
591: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.med -dm_view
592: test:
593: suffix: med_1
594: requires: med
595: nsize: 3
596: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.med -dist_dm_distribute -petscpartitioner_type simple -dm_view
597: test:
598: suffix: med_2
599: requires: med
600: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cylinder.med -dm_view
601: test:
602: suffix: med_3
603: requires: med
604: TODO: MED
605: nsize: 3
606: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cylinder.med -dist_dm_distribute -petscpartitioner_type simple -dm_view
608: # Test shape quality
609: test:
610: suffix: test_shape
611: requires: ctetgen
612: args: -dm_plex_dim 3 -dim 3 -dm_refine_hierarchy 3 -dm_plex_check_all -dm_plex_check_cell_shape
614: # Test simplex to tensor conversion
615: test:
616: suffix: s2t2
617: requires: triangle
618: 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
620: test:
621: suffix: s2t3
622: requires: ctetgen
623: 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
625: # Test cylinder
626: testset:
627: args: -dm_plex_shape cylinder -dm_plex_check_all -dm_view
628: test:
629: suffix: cylinder
630: args: -ref_dm_refine 1
631: test:
632: suffix: cylinder_per
633: args: -dm_plex_cylinder_bd periodic -ref_dm_refine 1 -ref_dm_refine_remap 0
634: test:
635: suffix: cylinder_wedge
636: args: -dm_coord_space 0 -dm_plex_interpolate 0 -dm_plex_cell tensor_triangular_prism -dm_view vtk:
637: test:
638: suffix: cylinder_wedge_int
639: output_file: output/ex1_cylinder_wedge.out
640: args: -dm_coord_space 0 -dm_plex_cell tensor_triangular_prism -dm_view vtk:
642: test:
643: suffix: box_2d
644: args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view
646: test:
647: suffix: box_2d_per
648: args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view
650: test:
651: suffix: box_2d_per_unint
652: 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
654: test:
655: suffix: box_3d
656: args: -dm_plex_dim 3 -dim 3 -dm_plex_simplex 0 -ref_dm_refine 3 -dm_plex_check_all -dm_view
658: test:
659: requires: triangle
660: suffix: box_wedge
661: 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
663: testset:
664: requires: triangle
665: 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
666: test:
667: suffix: box_wedge_s2t
668: test:
669: nsize: 3
670: args: -dist_dm_distribute -petscpartitioner_type simple
671: suffix: box_wedge_s2t_parallel
673: # Test GLVis output
674: testset:
675: args: -dm_coord_space 0 -dm_plex_interpolate 0
676: test:
677: suffix: glvis_2d_tet
678: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_plex_gmsh_periodic 0 -dm_view glvis:
679: test:
680: suffix: glvis_2d_tet_per
681: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 0
682: test:
683: suffix: glvis_3d_tet
684: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere_bin.msh -dm_plex_gmsh_periodic 0 -dm_view glvis:
685: testset:
686: args: -dm_coord_space 0
687: test:
688: suffix: glvis_2d_tet_per_mfem
689: 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:
690: test:
691: suffix: glvis_2d_quad
692: args: -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -dm_view glvis:
693: test:
694: suffix: glvis_2d_quad_per
695: 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
696: test:
697: suffix: glvis_2d_quad_per_mfem
698: 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
699: test:
700: suffix: glvis_3d_tet_per
701: 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
702: test:
703: suffix: glvis_3d_tet_per_mfem
704: TODO: broken
705: 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:
706: test:
707: suffix: glvis_3d_hex
708: args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 3,3,3 -dm_view glvis:
709: test:
710: suffix: glvis_3d_hex_per
711: 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
712: test:
713: suffix: glvis_3d_hex_per_mfem
714: 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
715: test:
716: suffix: glvis_2d_hyb
717: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary
718: test:
719: suffix: glvis_3d_hyb
720: args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary
721: test:
722: suffix: glvis_3d_hyb_s2t
723: 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
725: # Test P4EST
726: testset:
727: requires: p4est
728: 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
729: test:
730: suffix: p4est_periodic
731: 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
732: test:
733: suffix: p4est_periodic_3d
734: 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
735: test:
736: suffix: p4est_gmsh_periodic
737: 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
738: test:
739: suffix: p4est_gmsh_surface
740: 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
741: test:
742: suffix: p4est_gmsh_surface_parallel
743: nsize: 2
744: 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
745: test:
746: suffix: p4est_hyb_2d
747: 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
748: test:
749: suffix: p4est_hyb_3d
750: 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
751: test:
752: requires: ctetgen
753: suffix: p4est_s2t_bugfaces_3d
754: 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
755: test:
756: suffix: p4est_bug_overlapsf
757: nsize: 3
758: 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
759: test:
760: suffix: p4est_redistribute
761: nsize: 3
762: 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_via_mat {{0 1}} -dm_view ::load_balance
763: test:
764: suffix: p4est_gmsh_s2t_3d
765: args: -conv_seq_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
766: test:
767: suffix: p4est_gmsh_s2t_3d_hash
768: 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
769: test:
770: requires: long_runtime
771: suffix: p4est_gmsh_periodic_3d
772: 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
774: testset:
775: requires: p4est
776: nsize: 6
777: 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
778: test:
779: TODO: interface cones do not conform
780: suffix: p4est_par_periodic
781: 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
782: test:
783: TODO: interface cones do not conform
784: suffix: p4est_par_periodic_3d
785: 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
786: test:
787: TODO: interface cones do not conform
788: suffix: p4est_par_gmsh_periodic
789: 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
790: test:
791: suffix: p4est_par_gmsh_surface
792: 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
793: test:
794: suffix: p4est_par_gmsh_s2t_3d
795: args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
796: test:
797: TODO: interface cones do not conform
798: suffix: p4est_par_gmsh_s2t_3d_hash
799: 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
800: test:
801: requires: long_runtime
802: suffix: p4est_par_gmsh_periodic_3d
803: 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
805: testset:
806: requires: p4est
807: nsize: 6
808: 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
809: test:
810: suffix: p4est_par_ovl_periodic
811: 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
812: #TODO Mesh cell 201 is inverted, vol = 0. (FVM Volume. Is it correct? -> Diagnostics disabled)
813: test:
814: suffix: p4est_par_ovl_periodic_3d
815: 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
816: test:
817: suffix: p4est_par_ovl_gmsh_periodic
818: 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
819: test:
820: suffix: p4est_par_ovl_gmsh_surface
821: 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
822: test:
823: suffix: p4est_par_ovl_gmsh_s2t_3d
824: args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh
825: test:
826: suffix: p4est_par_ovl_gmsh_s2t_3d_hash
827: 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
828: test:
829: requires: long_runtime
830: suffix: p4est_par_ovl_gmsh_periodic_3d
831: 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
832: test:
833: suffix: p4est_par_ovl_hyb_2d
834: 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
835: test:
836: suffix: p4est_par_ovl_hyb_3d
837: 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
839: test:
840: TODO: broken
841: requires: p4est
842: nsize: 2
843: suffix: p4est_bug_labels_noovl
844: 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
846: test:
847: requires: p4est
848: nsize: 2
849: suffix: p4est_bug_distribute_overlap
850: 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
851: args: -dm_post_overlap_view
853: test:
854: suffix: ref_alfeld2d_0
855: requires: triangle
856: 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
857: test:
858: suffix: ref_alfeld3d_0
859: requires: ctetgen
860: 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
862: # Boundary layer refiners
863: test:
864: suffix: ref_bl_1
865: 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_layers 2 -final_diagnostics -ref_dm_plex_transform_bl_splits 3 -dm_extrude_column_first {{0 1}}
866: test:
867: suffix: ref_bl_2_tri
868: requires: triangle
869: args: -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_layers 3 -final_diagnostics -ref_dm_plex_transform_bl_splits 4 -dm_extrude_column_first {{0 1}}
870: test:
871: suffix: ref_bl_3_quad
872: 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_layers 3 -final_diagnostics -ref_dm_plex_transform_bl_splits 4 -dm_extrude_column_first {{0 1}}
873: test:
874: suffix: ref_bl_spheresurface_extruded
875: nsize : 4
876: args: -dm_extrude_layers 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 -dm_extrude_column_first {{0 1}separate output} -final_diagnostics -ref_dm_refine 1 -ref_dm_plex_transform_type refine_boundary_layer -ref_dm_plex_transform_bl_splits 2
877: test:
878: suffix: ref_bl_3d_hyb
879: nsize : 4
880: 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
882: testset:
883: args: -dm_plex_shape sphere -dm_plex_check_all -dm_view
884: test:
885: suffix: sphere_0
886: args:
887: test:
888: suffix: sphere_1
889: args: -ref_dm_refine 2
890: test:
891: suffix: sphere_2
892: args: -dm_plex_simplex 0
893: test:
894: suffix: sphere_3
895: args: -dm_plex_simplex 0 -ref_dm_refine 2
897: test:
898: suffix: ball_0
899: requires: ctetgen
900: args: -dm_plex_dim 3 -dm_plex_shape ball -dm_plex_check_all -dm_view
902: test:
903: suffix: ball_1
904: requires: ctetgen
905: args: -dm_plex_dim 3 -dm_plex_shape ball -bd_dm_refine 2 -dm_plex_check_all -dm_view
907: TEST*/