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