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