1 static char help[] = "Tests various DMPlex routines to construct, refine and distribute a mesh.\n\n"; 2 3 #include <petscdmplex.h> 4 #include <petscdmplextransform.h> 5 #include <petscsf.h> 6 7 enum { 8 STAGE_LOAD, 9 STAGE_DISTRIBUTE, 10 STAGE_REFINE, 11 STAGE_OVERLAP 12 }; 13 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; 25 26 PetscErrorCode ProcessOptions(MPI_Comm comm, AppCtx *options) 27 { 28 PetscFunctionBegin; 29 options->dim = 2; 30 options->overlap = 0; 31 options->testp4est[0] = PETSC_FALSE; 32 options->testp4est[1] = PETSC_FALSE; 33 options->redistribute = PETSC_FALSE; 34 options->final_ref = PETSC_FALSE; 35 options->final_diagnostics = PETSC_TRUE; 36 37 PetscOptionsBegin(comm, "", "Meshing Problem Options", "DMPLEX"); 38 PetscCall(PetscOptionsRangeInt("-dim", "The topological mesh dimension", "ex1.c", options->dim, &options->dim, NULL, 1, 3)); 39 PetscCall(PetscOptionsBoundedInt("-overlap", "The cell overlap for partitioning", "ex1.c", options->overlap, &options->overlap, NULL, 0)); 40 PetscCall(PetscOptionsBool("-test_p4est_seq", "Test p4est with sequential base DM", "ex1.c", options->testp4est[0], &options->testp4est[0], NULL)); 41 PetscCall(PetscOptionsBool("-test_p4est_par", "Test p4est with parallel base DM", "ex1.c", options->testp4est[1], &options->testp4est[1], NULL)); 42 PetscCall(PetscOptionsBool("-test_redistribute", "Test redistribution", "ex1.c", options->redistribute, &options->redistribute, NULL)); 43 PetscCall(PetscOptionsBool("-final_ref", "Run uniform refinement on the final mesh", "ex1.c", options->final_ref, &options->final_ref, NULL)); 44 PetscCall(PetscOptionsBool("-final_diagnostics", "Run diagnostics on the final mesh", "ex1.c", options->final_diagnostics, &options->final_diagnostics, NULL)); 45 PetscOptionsEnd(); 46 47 PetscCall(PetscLogEventRegister("CreateMesh", DM_CLASSID, &options->createMeshEvent)); 48 PetscCall(PetscLogStageRegister("MeshLoad", &options->stages[STAGE_LOAD])); 49 PetscCall(PetscLogStageRegister("MeshDistribute", &options->stages[STAGE_DISTRIBUTE])); 50 PetscCall(PetscLogStageRegister("MeshRefine", &options->stages[STAGE_REFINE])); 51 PetscCall(PetscLogStageRegister("MeshOverlap", &options->stages[STAGE_OVERLAP])); 52 PetscFunctionReturn(PETSC_SUCCESS); 53 } 54 55 PetscErrorCode CreateMesh(MPI_Comm comm, AppCtx *user, DM *dm) 56 { 57 PetscInt dim = user->dim; 58 PetscBool testp4est_seq = user->testp4est[0]; 59 PetscBool testp4est_par = user->testp4est[1]; 60 PetscMPIInt rank, size; 61 62 PetscFunctionBegin; 63 PetscCall(PetscLogEventBegin(user->createMeshEvent, 0, 0, 0, 0)); 64 PetscCallMPI(MPI_Comm_rank(comm, &rank)); 65 PetscCallMPI(MPI_Comm_size(comm, &size)); 66 PetscCall(PetscLogStagePush(user->stages[STAGE_LOAD])); 67 PetscCall(DMCreate(comm, dm)); 68 PetscCall(DMSetType(*dm, DMPLEX)); 69 PetscCall(DMPlexDistributeSetDefault(*dm, PETSC_FALSE)); 70 PetscCall(DMSetFromOptions(*dm)); 71 PetscCall(DMLocalizeCoordinates(*dm)); 72 73 PetscCall(DMViewFromOptions(*dm, NULL, "-init_dm_view")); 74 PetscCall(DMGetDimension(*dm, &dim)); 75 76 if (testp4est_seq) { 77 PetscCheck(PetscDefined(HAVE_P4EST), PETSC_COMM_WORLD, PETSC_ERR_SUP, "Reconfigure PETSc with --download-p4est"); 78 DM dmConv = NULL; 79 80 PetscCall(DMPlexCheck(*dm)); 81 PetscCall(DMPlexSetRefinementUniform(*dm, PETSC_TRUE)); 82 PetscCall(DMPlexSetTransformType(*dm, DMPLEXREFINETOBOX)); 83 PetscCall(DMRefine(*dm, PETSC_COMM_WORLD, &dmConv)); 84 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, NULL)); 85 if (dmConv) { 86 PetscCall(DMDestroy(dm)); 87 *dm = dmConv; 88 } 89 PetscCall(DMViewFromOptions(*dm, NULL, "-initref_dm_view")); 90 PetscCall(DMPlexCheck(*dm)); 91 92 /* For topologically periodic meshes, we first localize coordinates, 93 and then remove any information related with the 94 automatic computation of localized vertices. 95 This way, refinement operations and conversions to p4est 96 will preserve the shape of the domain in physical space */ 97 PetscCall(DMSetPeriodicity(*dm, NULL, NULL, NULL)); 98 99 PetscCall(DMConvert(*dm, dim == 2 ? DMP4EST : DMP8EST, &dmConv)); 100 if (dmConv) { 101 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)dmConv, "conv_seq_1_")); 102 PetscCall(DMSetFromOptions(dmConv)); 103 PetscCall(DMDestroy(dm)); 104 *dm = dmConv; 105 } 106 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, "conv_seq_1_")); 107 PetscCall(DMSetUp(*dm)); 108 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view")); 109 PetscCall(DMConvert(*dm, DMPLEX, &dmConv)); 110 if (dmConv) { 111 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)dmConv, "conv_seq_2_")); 112 PetscCall(DMPlexDistributeSetDefault(dmConv, PETSC_FALSE)); 113 PetscCall(DMSetFromOptions(dmConv)); 114 PetscCall(DMDestroy(dm)); 115 *dm = dmConv; 116 } 117 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, "conv_seq_2_")); 118 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view")); 119 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, NULL)); 120 } 121 122 PetscCall(PetscLogStagePop()); 123 if (!testp4est_seq) { 124 PetscCall(PetscLogStagePush(user->stages[STAGE_DISTRIBUTE])); 125 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_pre_dist_view")); 126 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, "dist_")); 127 PetscCall(DMSetFromOptions(*dm)); 128 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, NULL)); 129 PetscCall(PetscLogStagePop()); 130 PetscCall(DMViewFromOptions(*dm, NULL, "-distributed_dm_view")); 131 } 132 PetscCall(PetscLogStagePush(user->stages[STAGE_REFINE])); 133 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, "ref_")); 134 PetscCall(DMSetFromOptions(*dm)); 135 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, NULL)); 136 PetscCall(PetscLogStagePop()); 137 138 if (testp4est_par) { 139 PetscCheck(PetscDefined(HAVE_P4EST), PETSC_COMM_WORLD, PETSC_ERR_SUP, "Reconfigure PETSc with --download-p4est"); 140 DM dmConv = NULL; 141 142 PetscCall(DMPlexCheck(*dm)); 143 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_tobox_view")); 144 PetscCall(DMPlexSetRefinementUniform(*dm, PETSC_TRUE)); 145 PetscCall(DMPlexSetTransformType(*dm, DMPLEXREFINETOBOX)); 146 PetscCall(DMRefine(*dm, PETSC_COMM_WORLD, &dmConv)); 147 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, NULL)); 148 if (dmConv) { 149 PetscCall(DMDestroy(dm)); 150 *dm = dmConv; 151 } 152 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_tobox_view")); 153 PetscCall(DMPlexCheck(*dm)); 154 155 PetscCall(DMConvert(*dm, dim == 2 ? DMP4EST : DMP8EST, &dmConv)); 156 if (dmConv) { 157 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)dmConv, "conv_par_1_")); 158 PetscCall(DMSetFromOptions(dmConv)); 159 PetscCall(DMDestroy(dm)); 160 *dm = dmConv; 161 } 162 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, "conv_par_1_")); 163 PetscCall(DMSetUp(*dm)); 164 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view")); 165 PetscCall(DMConvert(*dm, DMPLEX, &dmConv)); 166 if (dmConv) { 167 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)dmConv, "conv_par_2_")); 168 PetscCall(DMPlexDistributeSetDefault(dmConv, PETSC_FALSE)); 169 PetscCall(DMSetFromOptions(dmConv)); 170 PetscCall(DMDestroy(dm)); 171 *dm = dmConv; 172 } 173 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, "conv_par_2_")); 174 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view")); 175 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)*dm, NULL)); 176 } 177 178 /* test redistribution of an already distributed mesh */ 179 if (user->redistribute) { 180 DM distributedMesh; 181 PetscSF sf; 182 PetscInt nranks; 183 184 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_pre_redist_view")); 185 PetscCall(DMPlexDistribute(*dm, 0, NULL, &distributedMesh)); 186 if (distributedMesh) { 187 PetscCall(DMGetPointSF(distributedMesh, &sf)); 188 PetscCall(PetscSFSetUp(sf)); 189 PetscCall(DMGetNeighbors(distributedMesh, &nranks, NULL)); 190 PetscCallMPI(MPIU_Allreduce(MPI_IN_PLACE, &nranks, 1, MPIU_INT, MPI_MIN, PetscObjectComm((PetscObject)*dm))); 191 PetscCall(PetscViewerASCIIPrintf(PETSC_VIEWER_STDOUT_(PetscObjectComm((PetscObject)*dm)), "Minimum number of neighbors: %" PetscInt_FMT "\n", nranks)); 192 PetscCall(DMDestroy(dm)); 193 *dm = distributedMesh; 194 } 195 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_post_redist_view")); 196 } 197 198 if (user->overlap) { 199 DM overlapMesh = NULL; 200 201 /* Add the overlap to refined mesh */ 202 PetscCall(PetscLogStagePush(user->stages[STAGE_OVERLAP])); 203 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_pre_overlap_view")); 204 PetscCall(DMPlexDistributeOverlap(*dm, user->overlap, NULL, &overlapMesh)); 205 if (overlapMesh) { 206 PetscInt overlap; 207 PetscCall(DMPlexGetOverlap(overlapMesh, &overlap)); 208 PetscCall(PetscViewerASCIIPrintf(PETSC_VIEWER_STDOUT_WORLD, "Overlap: %" PetscInt_FMT "\n", overlap)); 209 PetscCall(DMDestroy(dm)); 210 *dm = overlapMesh; 211 } 212 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_post_overlap_view")); 213 PetscCall(PetscLogStagePop()); 214 } 215 if (user->final_ref) { 216 DM refinedMesh = NULL; 217 218 PetscCall(DMPlexSetRefinementUniform(*dm, PETSC_TRUE)); 219 PetscCall(DMRefine(*dm, comm, &refinedMesh)); 220 if (refinedMesh) { 221 PetscCall(DMDestroy(dm)); 222 *dm = refinedMesh; 223 } 224 } 225 226 PetscCall(PetscObjectSetName((PetscObject)*dm, "Generated Mesh")); 227 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view")); 228 if (user->final_diagnostics) PetscCall(DMPlexCheck(*dm)); 229 PetscCall(PetscLogEventEnd(user->createMeshEvent, 0, 0, 0, 0)); 230 PetscFunctionReturn(PETSC_SUCCESS); 231 } 232 233 int main(int argc, char **argv) 234 { 235 DM dm; 236 AppCtx user; 237 238 PetscFunctionBeginUser; 239 PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 240 PetscCall(ProcessOptions(PETSC_COMM_WORLD, &user)); 241 PetscCall(CreateMesh(PETSC_COMM_WORLD, &user, &dm)); 242 PetscCall(DMDestroy(&dm)); 243 PetscCall(PetscFinalize()); 244 return 0; 245 } 246 247 /*TEST 248 249 # CTetGen 0-1 250 test: 251 suffix: 0 252 requires: ctetgen 253 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 254 test: 255 suffix: 1 256 requires: ctetgen 257 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 258 259 # 2D LaTex and ASCII output 2-9 260 test: 261 suffix: 2 262 requires: triangle 263 args: -dm_plex_interpolate 0 -dm_view ascii::ascii_latex 264 test: 265 suffix: 3 266 requires: triangle 267 args: -ref_dm_refine 1 -dm_view ascii::ascii_info_detail 268 test: 269 suffix: 4 270 requires: triangle 271 nsize: 2 272 args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_info_detail 273 test: 274 suffix: 5 275 requires: triangle 276 nsize: 2 277 args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex 278 test: 279 suffix: 6 280 args: -dm_coord_space 0 -dm_plex_simplex 0 -dm_view ascii::ascii_info_detail 281 test: 282 suffix: 7 283 args: -dm_coord_space 0 -dm_plex_simplex 0 -ref_dm_refine 1 -dm_view ascii::ascii_info_detail 284 test: 285 suffix: 8 286 nsize: 2 287 args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex 288 test: 289 suffix: box_2d_latex_xper 290 nsize: 1 291 args: -dm_plex_simplex 0 -dm_plex_box_faces 5,5 -dm_plex_box_bd periodic,none \ 292 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex -dm_plex_view_edges 0 293 294 # 1D ASCII output 295 testset: 296 args: -dm_coord_space 0 -dm_plex_dim 1 -dm_view ascii::ascii_info_detail -dm_plex_check_all 297 test: 298 suffix: 1d_0 299 args: 300 test: 301 suffix: 1d_1 302 args: -ref_dm_refine 2 303 test: 304 suffix: 1d_2 305 args: -dm_plex_box_faces 5 -dm_plex_box_bd periodic 306 307 # Parallel refinement tests with overlap 308 test: 309 suffix: refine_overlap_1d 310 nsize: 2 311 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 312 test: 313 suffix: refine_overlap_2d 314 requires: triangle 315 nsize: {{2 8}separate output} 316 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 317 318 # Parallel extrusion tests 319 test: 320 suffix: 1d_extruded 321 args: -dm_plex_dim 1 -dm_plex_box_faces 5 -dm_extrude 3 -dm_plex_check_all -dm_view draw 322 output_file: output/empty.out 323 324 test: 325 # This test needs a non-tensor prism so we can make a coordinate space 326 suffix: spheresurface_extruded 327 nsize : 4 328 args: -dm_plex_shape sphere -dm_extrude 3 -dm_plex_transform_extrude_use_tensor 0 \ 329 -dist_dm_distribute -petscpartitioner_type simple \ 330 -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical 331 332 test: 333 # This test needs a non-tensor prism so we can make a coordinate space 334 suffix: spheresurface_extruded_symmetric 335 nsize : 4 336 args: -dm_plex_shape sphere -dm_extrude 3 -dm_plex_transform_extrude_use_tensor 0 -dm_plex_transform_extrude_symmetric \ 337 -dist_dm_distribute -petscpartitioner_type simple \ 338 -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical 339 340 test: 341 # Test with a tensor prism which cannot have a coordinate space 342 suffix: spheresurface_extruded_nocoord 343 nsize : 4 344 args: -dm_coord_space 0 -dm_plex_shape sphere -dm_extrude 3 \ 345 -dist_dm_distribute -petscpartitioner_type simple \ 346 -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical 347 348 # Parallel simple partitioner tests 349 test: 350 suffix: part_simple_0 351 requires: triangle 352 nsize: 2 353 args: -dm_coord_space 0 -dm_plex_interpolate 0 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail 354 test: 355 suffix: part_simple_1 356 requires: triangle 357 nsize: 8 358 args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail 359 360 # Parallel partitioner tests 361 test: 362 suffix: part_parmetis_0 363 requires: parmetis 364 nsize: 2 365 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 366 test: 367 suffix: part_ptscotch_0 368 requires: ptscotch 369 nsize: 2 370 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 371 test: 372 suffix: part_ptscotch_1 373 requires: ptscotch 374 nsize: 8 375 args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type ptscotch -petscpartitioner_view -petscpartitioner_ptscotch_imbalance 0.1 376 377 # CGNS reader tests 10-11 (need to find smaller test meshes) 378 test: 379 suffix: cgns_0 380 requires: datafilespath cgns 381 args: -dm_plex_filename ${DATAFILESPATH}/meshes/tut21.cgns -dm_view 382 383 # ExodusII reader tests 384 testset: 385 args: -dm_plex_boundary_label boundary -dm_plex_check_all -dm_view 386 test: 387 suffix: exo_0 388 requires: exodusii 389 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/sevenside-quad.exo 390 test: 391 suffix: exo_1 392 requires: exodusii 393 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/sevenside-quad-15.exo 394 test: 395 suffix: exo_2 396 requires: exodusii 397 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/squaremotor-30.exo 398 test: 399 suffix: exo_3 400 requires: exodusii 401 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/blockcylinder-50.exo 402 test: 403 suffix: exo_4 404 requires: exodusii 405 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/simpleblock-100.exo 406 test: 407 suffix: exo_1d_0 408 requires: exodusii 409 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/1d-2elems.e 410 411 # Gmsh mesh reader tests 412 testset: 413 args: -dm_coord_space 0 -dm_view 414 415 test: 416 suffix: gmsh_0 417 requires: !single 418 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 419 test: 420 suffix: gmsh_1 421 requires: !single 422 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh 423 test: 424 suffix: gmsh_1_box_label 425 requires: !single 426 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh -dm_plex_box_label 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_s2t 500 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 501 test: 502 suffix: gmsh_16_spheresurface 503 nsize : 4 504 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 505 test: 506 suffix: gmsh_16_spheresurface_s2t 507 nsize : 4 508 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 509 test: 510 suffix: gmsh_16_spheresurface_extruded 511 nsize : 4 512 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 513 test: 514 suffix: gmsh_16_spheresurface_extruded_s2t 515 nsize : 4 516 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 517 test: 518 suffix: gmsh_17_hyb3d_interp_ascii 519 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.msh -dm_view -dm_plex_check_all 520 test: 521 suffix: exodus_17_hyb3d_interp_ascii 522 requires: exodusii 523 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.exo -dm_view -dm_plex_check_all 524 525 # Legacy Gmsh v22/v40 ascii/binary reader tests 526 testset: 527 output_file: output/ex1_gmsh_3d_legacy.out 528 args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all 529 test: 530 suffix: gmsh_3d_ascii_v22 531 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh2 532 test: 533 suffix: gmsh_3d_ascii_v40 534 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh4 535 test: 536 suffix: gmsh_3d_binary_v22 537 # Could not remake binary to remove extra face labeling 538 output_file: output/ex1_gmsh_3d_legacy_v22_bin.out 539 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh2 540 test: 541 suffix: gmsh_3d_binary_v40 542 requires: long64 543 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh4 544 545 # Gmsh v41 ascii/binary reader tests 546 testset: # 32-bit mesh, sequential 547 args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices 548 output_file: output/ex1_gmsh_3d_32.out 549 test: 550 suffix: gmsh_3d_ascii_v41_32 551 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh 552 test: 553 suffix: gmsh_3d_binary_v41_32 554 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh 555 test: 556 suffix: gmsh_3d_binary_v41_32_mpiio 557 requires: defined(PETSC_HAVE_MPIIO) 558 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio 559 test: 560 suffix: gmsh_quad_8node 561 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-qua-8node.msh \ 562 -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices 563 test: 564 suffix: gmsh_hex_20node 565 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-hex-20node.msh \ 566 -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices 567 testset: # 32-bit mesh, parallel 568 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 569 nsize: 2 570 output_file: output/ex1_gmsh_3d_32_np2.out 571 test: 572 suffix: gmsh_3d_ascii_v41_32_np2 573 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh 574 test: 575 suffix: gmsh_3d_binary_v41_32_np2 576 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh 577 test: 578 suffix: gmsh_3d_binary_v41_32_np2_mpiio 579 requires: defined(PETSC_HAVE_MPIIO) 580 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio 581 testset: # 64-bit mesh, sequential 582 args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices 583 output_file: output/ex1_gmsh_3d_64.out 584 test: 585 suffix: gmsh_3d_ascii_v41_64 586 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh 587 test: 588 suffix: gmsh_3d_binary_v41_64 589 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh 590 test: 591 suffix: gmsh_3d_binary_v41_64_mpiio 592 requires: defined(PETSC_HAVE_MPIIO) 593 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio 594 testset: # 64-bit mesh, parallel 595 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 596 nsize: 2 597 output_file: output/ex1_gmsh_3d_64_np2.out 598 test: 599 suffix: gmsh_3d_ascii_v41_64_np2 600 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh 601 test: 602 suffix: gmsh_3d_binary_v41_64_np2 603 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh 604 test: 605 suffix: gmsh_3d_binary_v41_64_np2_mpiio 606 requires: defined(PETSC_HAVE_MPIIO) 607 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio 608 609 # Fluent mesh reader tests 610 test: 611 suffix: fluent_0 612 requires: !complex 613 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dm_view 614 test: 615 suffix: fluent_1 616 nsize: 3 617 requires: !complex 618 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dist_dm_distribute -petscpartitioner_type simple -dm_view 619 test: 620 suffix: fluent_2 621 requires: !complex 622 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets_ascii.cas -dm_view 623 test: 624 suffix: fluent_3 625 requires: !complex 626 TODO: Fails on non-linux: fseek(), fileno() ? https://gitlab.com/petsc/petsc/merge_requests/2206#note_238166382 627 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets.cas -dm_view -final_diagnostics 0 628 test: 629 suffix: fluent_4 630 requires: !complex defined(PETSC_USE_INFO) 631 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/testcase3D.cas -info :viewer -dm_view 632 test: 633 suffix: fluent_5 634 requires: !complex defined(PETSC_USE_INFO) 635 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/wedge_cylinder.cas -info :viewer -dm_view 636 637 # STL mesh reader tests 638 test: 639 suffix: stl_0 640 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube.stl -dm_view 641 642 # Shapefile reader tests 643 test: 644 suffix: shp_0 645 requires: datafilespath 646 args: -dm_plex_filename ${DATAFILESPATH}/meshes/NYState.shp -dm_view 647 648 # Test shape quality 649 test: 650 suffix: test_shape 651 requires: ctetgen 652 args: -dm_plex_dim 3 -dim 3 -dm_refine_hierarchy 3 -dm_plex_check_all -dm_plex_check_cell_shape 653 654 # Test simplex to tensor conversion 655 test: 656 suffix: s2t2 657 requires: triangle 658 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 659 660 test: 661 suffix: s2t3 662 requires: ctetgen 663 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 664 665 # Test cylinder 666 testset: 667 args: -dm_plex_shape cylinder -dm_plex_check_all -dm_view 668 test: 669 suffix: cylinder 670 args: -ref_dm_refine 1 671 test: 672 suffix: cylinder_per 673 args: -dm_plex_cylinder_bd periodic -ref_dm_refine 1 -ref_dm_refine_remap 0 674 675 test: 676 suffix: box_2d 677 args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view 678 679 test: 680 suffix: box_2d_per 681 args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view 682 683 test: 684 suffix: box_2d_per_unint 685 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 686 687 test: 688 suffix: box_3d 689 args: -dm_plex_dim 3 -dim 3 -dm_plex_simplex 0 -ref_dm_refine 3 -dm_plex_check_all -dm_view 690 691 test: 692 requires: triangle 693 suffix: box_wedge 694 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 695 696 testset: 697 requires: triangle 698 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 699 test: 700 suffix: box_wedge_s2t 701 test: 702 nsize: 3 703 args: -dist_dm_distribute -petscpartitioner_type simple 704 suffix: box_wedge_s2t_parallel 705 706 # Test GLVis output 707 testset: 708 args: -dm_coord_space 0 -dm_plex_interpolate 0 709 test: 710 suffix: glvis_2d_tet 711 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_plex_gmsh_periodic 0 -dm_view glvis: 712 test: 713 suffix: glvis_2d_tet_per 714 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 0 715 test: 716 suffix: glvis_3d_tet 717 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere_bin.msh -dm_plex_gmsh_periodic 0 -dm_view glvis: 718 testset: 719 args: -dm_coord_space 0 720 test: 721 suffix: glvis_2d_tet_per_mfem 722 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: 723 test: 724 suffix: glvis_2d_quad 725 args: -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -dm_view glvis: 726 test: 727 suffix: glvis_2d_quad_per 728 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 729 test: 730 suffix: glvis_2d_quad_per_shift 731 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 732 test: 733 suffix: glvis_2d_quad_per_mfem 734 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 735 test: 736 suffix: glvis_3d_tet_per 737 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 738 test: 739 suffix: glvis_3d_tet_per_mfem 740 TODO: broken 741 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: 742 test: 743 suffix: glvis_3d_hex 744 args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 3,3,3 -dm_view glvis: 745 test: 746 suffix: glvis_3d_hex_per 747 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 748 test: 749 suffix: glvis_3d_hex_per_mfem 750 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 751 test: 752 suffix: glvis_2d_hyb 753 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 754 test: 755 suffix: glvis_3d_hyb 756 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 757 test: 758 suffix: glvis_3d_hyb_s2t 759 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 760 761 # Test P4EST 762 testset: 763 requires: p4est 764 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 765 test: 766 suffix: p4est_periodic 767 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 768 test: 769 suffix: p4est_periodic_3d 770 args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_bd periodic,periodic,none -dm_plex_box_faces 3,3,2 -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash 771 test: 772 suffix: p4est_gmsh_periodic 773 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 774 test: 775 suffix: p4est_gmsh_surface 776 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 777 test: 778 suffix: p4est_gmsh_surface_parallel 779 nsize: 2 780 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 781 test: 782 suffix: p4est_hyb_2d 783 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 784 test: 785 suffix: p4est_hyb_3d 786 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 787 test: 788 requires: ctetgen 789 suffix: p4est_s2t_bugfaces_3d 790 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 791 test: 792 suffix: p4est_bug_overlapsf 793 nsize: 3 794 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 795 test: 796 suffix: p4est_redistribute 797 nsize: 3 798 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 799 test: 800 suffix: p4est_gmsh_s2t_3d 801 args: -conv_seq_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 802 test: 803 suffix: p4est_gmsh_s2t_3d_hash 804 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 805 test: 806 requires: long_runtime 807 suffix: p4est_gmsh_periodic_3d 808 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 809 810 testset: 811 requires: p4est 812 nsize: 6 813 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 814 test: 815 TODO: interface cones do not conform 816 suffix: p4est_par_periodic 817 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 818 test: 819 TODO: interface cones do not conform 820 suffix: p4est_par_periodic_3d 821 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 822 test: 823 TODO: interface cones do not conform 824 suffix: p4est_par_gmsh_periodic 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/square_periodic.msh 826 test: 827 suffix: p4est_par_gmsh_surface 828 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 829 output_file: output/empty.out 830 test: 831 suffix: p4est_par_gmsh_s2t_3d 832 args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 833 output_file: output/empty.out 834 test: 835 TODO: interface cones do not conform 836 suffix: p4est_par_gmsh_s2t_3d_hash 837 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 838 test: 839 requires: long_runtime 840 suffix: p4est_par_gmsh_periodic_3d 841 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 842 843 testset: 844 requires: p4est 845 nsize: 6 846 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 847 test: 848 suffix: p4est_par_ovl_periodic 849 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 850 output_file: output/empty.out 851 # Problem for -dm_plex_box_faces 3,5,4 -conv_par_1_dm_forest_maximum_refinement 2 852 test: 853 suffix: p4est_par_ovl_periodic_3d 854 args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_bd periodic,periodic,none \ 855 -dm_plex_box_faces 3,5,2 \ 856 -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 \ 857 -conv_par_1_dm_p4est_refine_pattern hash 858 output_file: output/empty.out 859 test: 860 suffix: p4est_par_ovl_gmsh_periodic 861 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 862 output_file: output/empty.out 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 output_file: output/empty.out 867 test: 868 suffix: p4est_par_ovl_gmsh_s2t_3d 869 args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 870 output_file: output/empty.out 871 test: 872 suffix: p4est_par_ovl_gmsh_s2t_3d_hash 873 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 874 output_file: output/empty.out 875 test: 876 requires: long_runtime 877 suffix: p4est_par_ovl_gmsh_periodic_3d 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/mesh-3d-box-innersphere.msh 879 output_file: output/empty.out 880 test: 881 suffix: p4est_par_ovl_hyb_2d 882 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 883 output_file: output/empty.out 884 # -conv_par_1_dm_forest_maximum_refinement 1 was too expensive 885 test: 886 suffix: p4est_par_ovl_hyb_3d 887 args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 0 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh 888 output_file: output/empty.out 889 890 test: 891 TODO: broken 892 requires: p4est 893 nsize: 2 894 suffix: p4est_bug_labels_noovl 895 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 896 897 test: 898 requires: p4est 899 nsize: 2 900 suffix: p4est_bug_distribute_overlap 901 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 902 args: -dm_post_overlap_view 903 904 test: 905 suffix: ref_alfeld2d_0 906 requires: triangle 907 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 908 test: 909 suffix: ref_alfeld3d_0 910 requires: ctetgen 911 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 912 913 # Boundary layer refiners 914 test: 915 suffix: ref_bl_1 916 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 917 test: 918 suffix: ref_bl_2_tri 919 requires: triangle 920 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 921 test: 922 suffix: ref_bl_3_quad 923 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 924 test: 925 suffix: ref_bl_spheresurface_extruded 926 nsize : 4 927 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 928 test: 929 suffix: ref_bl_3d_hyb 930 nsize : 4 931 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 932 933 testset: 934 args: -dm_plex_shape sphere -dm_plex_check_all -dm_view 935 test: 936 suffix: sphere_0 937 args: 938 test: 939 suffix: sphere_1 940 args: -ref_dm_refine 2 941 test: 942 suffix: sphere_2 943 args: -dm_plex_simplex 0 944 test: 945 suffix: sphere_3 946 args: -dm_plex_simplex 0 -ref_dm_refine 2 947 test: 948 suffix: sphere_4 949 args: -dm_plex_dim 1 -ref_dm_refine 2 950 951 testset: 952 args: -dm_plex_shape ball -dm_plex_check_all -dm_view 953 954 test: 955 suffix: ball_0 956 requires: ctetgen 957 args: -dm_plex_dim 3 958 959 test: 960 suffix: ball_1 961 requires: ctetgen 962 args: -dm_plex_dim 3 -bd_dm_refine 2 963 964 test: 965 suffix: ball_2 966 requires: triangle 967 args: -dm_plex_dim 2 -bd_dm_refine 2 968 969 test: 970 suffix: schwarz_p_extrude 971 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 972 973 test: 974 suffix: schwarz_p_refine 975 args: -dm_plex_shape schwarz_p -dm_plex_tps_extent 1,1,1 -dm_plex_tps_refine 1 -dm_plex_tps_layers 1 -dm_plex_tps_thickness .2 -dm_view 976 977 test: 978 suffix: pyr_mixed_0 979 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/pyr_tet.msh -dm_plex_check_all -dm_view 980 981 test: 982 suffix: hypercubic_0 983 args: -dm_plex_dim 2 -dm_plex_shape hypercubic -dm_plex_box_faces 3,3 -dm_plex_check_all \ 984 -dm_view -dm_plex_print_adj 3 985 986 test: 987 suffix: hypercubic_0_par 988 nsize: 4 989 args: -dm_plex_dim 2 -dm_plex_shape hypercubic -dm_plex_box_faces 4,4 -dm_view -dm_plex_print_adj 3 -final_diagnostics 0 \ 990 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf 991 992 test: 993 suffix: hypercubic_1 994 args: -dm_plex_dim 3 -dm_plex_shape hypercubic -dm_plex_box_faces 3,3,3 -dm_plex_check_all \ 995 -dm_view -dm_plex_print_adj 3 996 997 test: 998 suffix: hypercubic_1_par 999 requires: !quad 1000 nsize: 8 1001 args: -dm_plex_dim 3 -dm_plex_shape hypercubic -dm_plex_box_faces 4,4,4 -dm_view -dm_plex_print_adj 3 -final_diagnostics 0 \ 1002 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf 1003 1004 test: 1005 suffix: hypercubic_1_par_ov_3 1006 requires: !quad 1007 nsize: 8 1008 args: -dm_plex_dim 3 -dm_plex_shape hypercubic -dm_plex_box_faces 6,6,6 -dm_distribute_overlap 3 -dm_view -dm_plex_print_adj 3 -final_diagnostics 0 \ 1009 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf 1010 1011 test: 1012 suffix: hypercubic_2 1013 args: -dm_plex_dim 4 -dm_plex_shape hypercubic -dm_plex_box_faces 3,3,3,3 -dm_view -dm_plex_print_adj 3 \ 1014 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf -final_diagnostics 0 1015 1016 test: 1017 suffix: hypercubic_2_par 1018 requires: !quad 1019 nsize: 16 1020 args: -dm_plex_dim 4 -dm_plex_shape hypercubic -dm_plex_box_faces 4,4,4,4 -dm_view -dm_plex_print_adj 3 -final_diagnostics 0 \ 1021 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf 1022 1023 test: 1024 suffix: hypercubic_3 1025 args: -dm_plex_dim 5 -dm_plex_shape hypercubic -dm_plex_box_faces 3,3,3,3,3 -dm_view -dm_plex_print_adj 3 \ 1026 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf -final_diagnostics 0 1027 1028 test: 1029 suffix: hypercubic_4 1030 args: -dm_plex_dim 6 -dm_plex_shape hypercubic -dm_plex_box_faces 3,3,3,3,3,3 -dm_view -dm_plex_print_adj 3 \ 1031 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf -final_diagnostics 0 1032 1033 test: 1034 suffix: crisscross 1035 args: -dm_plex_box_crisscross -dm_plex_box_faces 4,8 -dm_plex_check_all -final_diagnostics -dm_view ::ascii_info_detail -dm_plex_box_lower -1,-2 -dm_plex_box_upper 1,2 -dm_plex_box_bd {{none,none periodic,none none,periodic periodic,periodic}separate output} 1036 1037 TEST*/ 1038