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 323 test: 324 # This test needs a non-tensor prism so we can make a coordinate space 325 suffix: spheresurface_extruded 326 nsize : 4 327 args: -dm_plex_shape sphere -dm_extrude 3 -dm_plex_transform_extrude_use_tensor 0 \ 328 -dist_dm_distribute -petscpartitioner_type simple \ 329 -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical 330 331 test: 332 # This test needs a non-tensor prism so we can make a coordinate space 333 suffix: spheresurface_extruded_symmetric 334 nsize : 4 335 args: -dm_plex_shape sphere -dm_extrude 3 -dm_plex_transform_extrude_use_tensor 0 -dm_plex_transform_extrude_symmetric \ 336 -dist_dm_distribute -petscpartitioner_type simple \ 337 -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical 338 339 test: 340 # Test with a tensor prism which cannot have a coordinate space 341 suffix: spheresurface_extruded_nocoord 342 nsize : 4 343 args: -dm_coord_space 0 -dm_plex_shape sphere -dm_extrude 3 \ 344 -dist_dm_distribute -petscpartitioner_type simple \ 345 -dm_plex_check_all -dm_view ::ascii_info_detail -dm_plex_view_coord_system spherical 346 347 # Parallel simple partitioner tests 348 test: 349 suffix: part_simple_0 350 requires: triangle 351 nsize: 2 352 args: -dm_coord_space 0 -dm_plex_interpolate 0 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail 353 test: 354 suffix: part_simple_1 355 requires: triangle 356 nsize: 8 357 args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dist_partition_view -dm_view ascii::ascii_info_detail 358 359 # Parallel partitioner tests 360 test: 361 suffix: part_parmetis_0 362 requires: parmetis 363 nsize: 2 364 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 365 test: 366 suffix: part_ptscotch_0 367 requires: ptscotch 368 nsize: 2 369 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 370 test: 371 suffix: part_ptscotch_1 372 requires: ptscotch 373 nsize: 8 374 args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type ptscotch -petscpartitioner_view -petscpartitioner_ptscotch_imbalance 0.1 375 376 # CGNS reader tests 10-11 (need to find smaller test meshes) 377 test: 378 suffix: cgns_0 379 requires: datafilespath cgns 380 args: -dm_plex_filename ${DATAFILESPATH}/meshes/tut21.cgns -dm_view 381 382 # ExodusII reader tests 383 testset: 384 args: -dm_plex_boundary_label boundary -dm_plex_check_all -dm_view 385 test: 386 suffix: exo_0 387 requires: exodusii 388 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/sevenside-quad.exo 389 test: 390 suffix: exo_1 391 requires: exodusii 392 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/sevenside-quad-15.exo 393 test: 394 suffix: exo_2 395 requires: exodusii 396 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/squaremotor-30.exo 397 test: 398 suffix: exo_3 399 requires: exodusii 400 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/blockcylinder-50.exo 401 test: 402 suffix: exo_4 403 requires: exodusii 404 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/simpleblock-100.exo 405 test: 406 suffix: exo_1d_0 407 requires: exodusii 408 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/1d-2elems.e 409 410 # Gmsh mesh reader tests 411 testset: 412 args: -dm_coord_space 0 -dm_view 413 414 test: 415 suffix: gmsh_0 416 requires: !single 417 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 418 test: 419 suffix: gmsh_1 420 requires: !single 421 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh 422 test: 423 suffix: gmsh_1_box_label 424 requires: !single 425 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh -dm_plex_box_label 426 test: 427 suffix: gmsh_2 428 requires: !single 429 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh 430 test: 431 suffix: gmsh_3 432 nsize: 3 433 requires: !single 434 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.msh -dist_dm_distribute -petscpartitioner_type simple 435 test: 436 suffix: gmsh_4 437 nsize: 3 438 requires: !single 439 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin.msh -dist_dm_distribute -petscpartitioner_type simple 440 test: 441 suffix: gmsh_5 442 requires: !single 443 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_quad.msh 444 # TODO: it seems the mesh is not a valid gmsh (inverted cell) 445 test: 446 suffix: gmsh_6 447 requires: !single 448 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_bin_physnames.msh -final_diagnostics 0 449 test: 450 suffix: gmsh_7 451 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 452 test: 453 suffix: gmsh_8 454 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere.msh -dm_view ::ascii_info_detail -dm_plex_check_all 455 testset: 456 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 457 test: 458 suffix: gmsh_9 459 test: 460 suffix: gmsh_9_periodic_0 461 args: -dm_plex_gmsh_periodic 0 462 testset: 463 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 464 test: 465 suffix: gmsh_10 466 test: 467 suffix: gmsh_10_periodic_0 468 args: -dm_plex_gmsh_periodic 0 469 testset: 470 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 471 test: 472 suffix: gmsh_11 473 test: 474 suffix: gmsh_11_periodic_0 475 args: -dm_plex_gmsh_periodic 0 476 # TODO: it seems the mesh is not a valid gmsh (inverted cell) 477 test: 478 suffix: gmsh_12 479 nsize: 4 480 requires: !single mpiio 481 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 482 test: 483 suffix: gmsh_13_hybs2t 484 nsize: 4 485 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 486 test: 487 suffix: gmsh_14_ext 488 requires: !single 489 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 490 test: 491 suffix: gmsh_14_ext_s2t 492 requires: !single 493 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 494 test: 495 suffix: gmsh_15_hyb3d 496 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view -dm_plex_check_all 497 test: 498 suffix: gmsh_15_hyb3d_s2t 499 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 500 test: 501 suffix: gmsh_16_spheresurface 502 nsize : 4 503 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 504 test: 505 suffix: gmsh_16_spheresurface_s2t 506 nsize : 4 507 args: -dm_coord_space 0 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3 -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox -dm_plex_check_all -dm_view -dist_dm_distribute -petscpartitioner_type simple 508 test: 509 suffix: gmsh_16_spheresurface_extruded 510 nsize : 4 511 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 512 test: 513 suffix: gmsh_16_spheresurface_extruded_s2t 514 nsize : 4 515 args: -dm_coord_space 0 -dm_extrude 3 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3 -ref_dm_refine 1 -ref_dm_plex_transform_type refine_tobox -dm_plex_check_all -dm_view -dist_dm_distribute -petscpartitioner_type simple 516 test: 517 suffix: gmsh_17_hyb3d_interp_ascii 518 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.msh -dm_view -dm_plex_check_all 519 test: 520 suffix: exodus_17_hyb3d_interp_ascii 521 requires: exodusii 522 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_hexwedge.exo -dm_view -dm_plex_check_all 523 524 # Legacy Gmsh v22/v40 ascii/binary reader tests 525 testset: 526 output_file: output/ex1_gmsh_3d_legacy.out 527 args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all 528 test: 529 suffix: gmsh_3d_ascii_v22 530 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh2 531 test: 532 suffix: gmsh_3d_ascii_v40 533 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii.msh4 534 test: 535 suffix: gmsh_3d_binary_v22 536 # Could not remake binary to remove extra face labeling 537 output_file: output/ex1_gmsh_3d_legacy_v22_bin.out 538 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh2 539 test: 540 suffix: gmsh_3d_binary_v40 541 requires: long64 542 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh4 543 544 # Gmsh v41 ascii/binary reader tests 545 testset: # 32-bit mesh, sequential 546 args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices 547 output_file: output/ex1_gmsh_3d_32.out 548 test: 549 suffix: gmsh_3d_ascii_v41_32 550 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh 551 test: 552 suffix: gmsh_3d_binary_v41_32 553 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh 554 test: 555 suffix: gmsh_3d_binary_v41_32_mpiio 556 requires: defined(PETSC_HAVE_MPIIO) 557 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio 558 test: 559 suffix: gmsh_quad_8node 560 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-qua-8node.msh \ 561 -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices 562 test: 563 suffix: gmsh_hex_20node 564 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-hex-20node.msh \ 565 -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices 566 testset: # 32-bit mesh, parallel 567 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 568 nsize: 2 569 output_file: output/ex1_gmsh_3d_32_np2.out 570 test: 571 suffix: gmsh_3d_ascii_v41_32_np2 572 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh 573 test: 574 suffix: gmsh_3d_binary_v41_32_np2 575 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh 576 test: 577 suffix: gmsh_3d_binary_v41_32_np2_mpiio 578 requires: defined(PETSC_HAVE_MPIIO) 579 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio 580 testset: # 64-bit mesh, sequential 581 args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices 582 output_file: output/ex1_gmsh_3d_64.out 583 test: 584 suffix: gmsh_3d_ascii_v41_64 585 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh 586 test: 587 suffix: gmsh_3d_binary_v41_64 588 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh 589 test: 590 suffix: gmsh_3d_binary_v41_64_mpiio 591 requires: defined(PETSC_HAVE_MPIIO) 592 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio 593 testset: # 64-bit mesh, parallel 594 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 595 nsize: 2 596 output_file: output/ex1_gmsh_3d_64_np2.out 597 test: 598 suffix: gmsh_3d_ascii_v41_64_np2 599 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh 600 test: 601 suffix: gmsh_3d_binary_v41_64_np2 602 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh 603 test: 604 suffix: gmsh_3d_binary_v41_64_np2_mpiio 605 requires: defined(PETSC_HAVE_MPIIO) 606 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio 607 608 # Fluent mesh reader tests 609 test: 610 suffix: fluent_0 611 requires: !complex 612 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dm_view 613 test: 614 suffix: fluent_1 615 nsize: 3 616 requires: !complex 617 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dist_dm_distribute -petscpartitioner_type simple -dm_view 618 test: 619 suffix: fluent_2 620 requires: !complex 621 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets_ascii.cas -dm_view 622 test: 623 suffix: fluent_3 624 requires: !complex 625 TODO: Fails on non-linux: fseek(), fileno() ? https://gitlab.com/petsc/petsc/merge_requests/2206#note_238166382 626 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets.cas -dm_view -final_diagnostics 0 627 test: 628 suffix: fluent_4 629 requires: !complex defined(PETSC_USE_INFO) 630 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/testcase3D.cas -info :viewer -dm_view 631 test: 632 suffix: fluent_5 633 requires: !complex defined(PETSC_USE_INFO) 634 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/wedge_cylinder.cas -info :viewer -dm_view 635 636 # STL mesh reader tests 637 test: 638 suffix: stl_0 639 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube.stl -dm_view 640 641 # Shapefile reader tests 642 test: 643 suffix: shp_0 644 requires: datafilespath 645 args: -dm_plex_filename ${DATAFILESPATH}/meshes/NYState.shp -dm_view 646 647 # Test shape quality 648 test: 649 suffix: test_shape 650 requires: ctetgen 651 args: -dm_plex_dim 3 -dim 3 -dm_refine_hierarchy 3 -dm_plex_check_all -dm_plex_check_cell_shape 652 653 # Test simplex to tensor conversion 654 test: 655 suffix: s2t2 656 requires: triangle 657 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 658 659 test: 660 suffix: s2t3 661 requires: ctetgen 662 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 663 664 # Test cylinder 665 testset: 666 args: -dm_plex_shape cylinder -dm_plex_check_all -dm_view 667 test: 668 suffix: cylinder 669 args: -ref_dm_refine 1 670 test: 671 suffix: cylinder_per 672 args: -dm_plex_cylinder_bd periodic -ref_dm_refine 1 -ref_dm_refine_remap 0 673 674 test: 675 suffix: box_2d 676 args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view 677 678 test: 679 suffix: box_2d_per 680 args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view 681 682 test: 683 suffix: box_2d_per_unint 684 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 685 686 test: 687 suffix: box_3d 688 args: -dm_plex_dim 3 -dim 3 -dm_plex_simplex 0 -ref_dm_refine 3 -dm_plex_check_all -dm_view 689 690 test: 691 requires: triangle 692 suffix: box_wedge 693 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 694 695 testset: 696 requires: triangle 697 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 698 test: 699 suffix: box_wedge_s2t 700 test: 701 nsize: 3 702 args: -dist_dm_distribute -petscpartitioner_type simple 703 suffix: box_wedge_s2t_parallel 704 705 # Test GLVis output 706 testset: 707 args: -dm_coord_space 0 -dm_plex_interpolate 0 708 test: 709 suffix: glvis_2d_tet 710 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_plex_gmsh_periodic 0 -dm_view glvis: 711 test: 712 suffix: glvis_2d_tet_per 713 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 0 714 test: 715 suffix: glvis_3d_tet 716 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere_bin.msh -dm_plex_gmsh_periodic 0 -dm_view glvis: 717 testset: 718 args: -dm_coord_space 0 719 test: 720 suffix: glvis_2d_tet_per_mfem 721 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: 722 test: 723 suffix: glvis_2d_quad 724 args: -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -dm_view glvis: 725 test: 726 suffix: glvis_2d_quad_per 727 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 728 test: 729 suffix: glvis_2d_quad_per_shift 730 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 731 test: 732 suffix: glvis_2d_quad_per_mfem 733 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 734 test: 735 suffix: glvis_3d_tet_per 736 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 737 test: 738 suffix: glvis_3d_tet_per_mfem 739 TODO: broken 740 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: 741 test: 742 suffix: glvis_3d_hex 743 args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 3,3,3 -dm_view glvis: 744 test: 745 suffix: glvis_3d_hex_per 746 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 747 test: 748 suffix: glvis_3d_hex_per_mfem 749 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 750 test: 751 suffix: glvis_2d_hyb 752 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 753 test: 754 suffix: glvis_3d_hyb 755 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 756 test: 757 suffix: glvis_3d_hyb_s2t 758 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 759 760 # Test P4EST 761 testset: 762 requires: p4est 763 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 764 test: 765 suffix: p4est_periodic 766 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 767 test: 768 suffix: p4est_periodic_3d 769 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 770 test: 771 suffix: p4est_gmsh_periodic 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/square_periodic.msh 773 test: 774 suffix: p4est_gmsh_surface 775 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 776 test: 777 suffix: p4est_gmsh_surface_parallel 778 nsize: 2 779 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 780 test: 781 suffix: p4est_hyb_2d 782 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 783 test: 784 suffix: p4est_hyb_3d 785 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 786 test: 787 requires: ctetgen 788 suffix: p4est_s2t_bugfaces_3d 789 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 790 test: 791 suffix: p4est_bug_overlapsf 792 nsize: 3 793 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 794 test: 795 suffix: p4est_redistribute 796 nsize: 3 797 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 798 test: 799 suffix: p4est_gmsh_s2t_3d 800 args: -conv_seq_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 801 test: 802 suffix: p4est_gmsh_s2t_3d_hash 803 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 804 test: 805 requires: long_runtime 806 suffix: p4est_gmsh_periodic_3d 807 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 808 809 testset: 810 requires: p4est 811 nsize: 6 812 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 813 test: 814 TODO: interface cones do not conform 815 suffix: p4est_par_periodic 816 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 817 test: 818 TODO: interface cones do not conform 819 suffix: p4est_par_periodic_3d 820 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 821 test: 822 TODO: interface cones do not conform 823 suffix: p4est_par_gmsh_periodic 824 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 825 test: 826 suffix: p4est_par_gmsh_surface 827 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 828 test: 829 suffix: p4est_par_gmsh_s2t_3d 830 args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 831 test: 832 TODO: interface cones do not conform 833 suffix: p4est_par_gmsh_s2t_3d_hash 834 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 835 test: 836 requires: long_runtime 837 suffix: p4est_par_gmsh_periodic_3d 838 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 839 840 testset: 841 requires: p4est 842 nsize: 6 843 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 844 test: 845 suffix: p4est_par_ovl_periodic 846 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 847 # Problem for -dm_plex_box_faces 3,5,4 -conv_par_1_dm_forest_maximum_refinement 2 848 test: 849 suffix: p4est_par_ovl_periodic_3d 850 args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_bd periodic,periodic,none \ 851 -dm_plex_box_faces 3,5,2 \ 852 -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 \ 853 -conv_par_1_dm_p4est_refine_pattern hash 854 test: 855 suffix: p4est_par_ovl_gmsh_periodic 856 args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh 857 test: 858 suffix: p4est_par_ovl_gmsh_surface 859 args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/surfacesphere_bin.msh -dm_plex_gmsh_spacedim 3 860 test: 861 suffix: p4est_par_ovl_gmsh_s2t_3d 862 args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 863 test: 864 suffix: p4est_par_ovl_gmsh_s2t_3d_hash 865 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 866 test: 867 requires: long_runtime 868 suffix: p4est_par_ovl_gmsh_periodic_3d 869 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 870 test: 871 suffix: p4est_par_ovl_hyb_2d 872 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 873 # -conv_par_1_dm_forest_maximum_refinement 1 was too expensive 874 test: 875 suffix: p4est_par_ovl_hyb_3d 876 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 877 878 test: 879 TODO: broken 880 requires: p4est 881 nsize: 2 882 suffix: p4est_bug_labels_noovl 883 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 884 885 test: 886 requires: p4est 887 nsize: 2 888 suffix: p4est_bug_distribute_overlap 889 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 890 args: -dm_post_overlap_view 891 892 test: 893 suffix: ref_alfeld2d_0 894 requires: triangle 895 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 896 test: 897 suffix: ref_alfeld3d_0 898 requires: ctetgen 899 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 900 901 # Boundary layer refiners 902 test: 903 suffix: ref_bl_1 904 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 905 test: 906 suffix: ref_bl_2_tri 907 requires: triangle 908 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 909 test: 910 suffix: ref_bl_3_quad 911 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 912 test: 913 suffix: ref_bl_spheresurface_extruded 914 nsize : 4 915 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 916 test: 917 suffix: ref_bl_3d_hyb 918 nsize : 4 919 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 920 921 testset: 922 args: -dm_plex_shape sphere -dm_plex_check_all -dm_view 923 test: 924 suffix: sphere_0 925 args: 926 test: 927 suffix: sphere_1 928 args: -ref_dm_refine 2 929 test: 930 suffix: sphere_2 931 args: -dm_plex_simplex 0 932 test: 933 suffix: sphere_3 934 args: -dm_plex_simplex 0 -ref_dm_refine 2 935 test: 936 suffix: sphere_4 937 args: -dm_plex_dim 1 -ref_dm_refine 2 938 939 testset: 940 args: -dm_plex_shape ball -dm_plex_check_all -dm_view 941 942 test: 943 suffix: ball_0 944 requires: ctetgen 945 args: -dm_plex_dim 3 946 947 test: 948 suffix: ball_1 949 requires: ctetgen 950 args: -dm_plex_dim 3 -bd_dm_refine 2 951 952 test: 953 suffix: ball_2 954 requires: triangle 955 args: -dm_plex_dim 2 -bd_dm_refine 2 956 957 test: 958 suffix: schwarz_p_extrude 959 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 960 961 test: 962 suffix: schwarz_p_refine 963 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 964 965 test: 966 suffix: pyr_mixed_0 967 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/pyr_tet.msh -dm_plex_check_all -dm_view 968 969 test: 970 suffix: hypercubic_0 971 args: -dm_plex_dim 2 -dm_plex_shape hypercubic -dm_plex_box_faces 3,3 -dm_plex_check_all \ 972 -dm_view -dm_plex_print_adj 3 973 974 test: 975 suffix: hypercubic_0_par 976 nsize: 4 977 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 \ 978 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf 979 980 test: 981 suffix: hypercubic_1 982 args: -dm_plex_dim 3 -dm_plex_shape hypercubic -dm_plex_box_faces 3,3,3 -dm_plex_check_all \ 983 -dm_view -dm_plex_print_adj 3 984 985 test: 986 suffix: hypercubic_1_par 987 requires: !quad 988 nsize: 8 989 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 \ 990 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf 991 992 test: 993 suffix: hypercubic_1_par_ov_3 994 requires: !quad 995 nsize: 8 996 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 \ 997 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf 998 999 test: 1000 suffix: hypercubic_2 1001 args: -dm_plex_dim 4 -dm_plex_shape hypercubic -dm_plex_box_faces 3,3,3,3 -dm_view -dm_plex_print_adj 3 \ 1002 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf -final_diagnostics 0 1003 1004 test: 1005 suffix: hypercubic_2_par 1006 requires: !quad 1007 nsize: 16 1008 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 \ 1009 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf 1010 1011 test: 1012 suffix: hypercubic_3 1013 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 \ 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_4 1018 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 \ 1019 -dm_plex_check_symmetry -dm_plex_check_skeleton -dm_plex_check_faces -dm_plex_check_pointsf -final_diagnostics 0 1020 1021 test: 1022 suffix: crisscross 1023 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} 1024 1025 TEST*/ 1026