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