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