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