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 #if defined(PETSC_HAVE_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 #else 116 SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_SUP,"Recompile with --download-p4est"); 117 #endif 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 #if defined(PETSC_HAVE_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 #else 175 SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_SUP,"Recompile with --download-p4est"); 176 #endif 177 } 178 179 /* test redistribution of an already distributed mesh */ 180 if (user->redistribute) { 181 DM distributedMesh; 182 PetscSF sf; 183 PetscInt nranks; 184 185 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_pre_redist_view")); 186 PetscCall(DMPlexDistribute(*dm, 0, NULL, &distributedMesh)); 187 if (distributedMesh) { 188 PetscCall(DMGetPointSF(distributedMesh, &sf)); 189 PetscCall(PetscSFSetUp(sf)); 190 PetscCall(DMGetNeighbors(distributedMesh, &nranks, NULL)); 191 PetscCallMPI(MPI_Allreduce(MPI_IN_PLACE, &nranks, 1, MPIU_INT, MPI_MIN, PetscObjectComm((PetscObject)*dm))); 192 PetscCall(PetscViewerASCIIPrintf(PETSC_VIEWER_STDOUT_(PetscObjectComm((PetscObject)*dm)), "Minimum number of neighbors: %" PetscInt_FMT "\n", nranks)); 193 PetscCall(DMDestroy(dm)); 194 *dm = distributedMesh; 195 } 196 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_post_redist_view")); 197 } 198 199 if (user->overlap) { 200 DM overlapMesh = NULL; 201 202 /* Add the overlap to refined mesh */ 203 PetscCall(PetscLogStagePush(user->stages[STAGE_OVERLAP])); 204 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_pre_overlap_view")); 205 PetscCall(DMPlexDistributeOverlap(*dm, user->overlap, NULL, &overlapMesh)); 206 if (overlapMesh) { 207 PetscInt overlap; 208 PetscCall(DMPlexGetOverlap(overlapMesh, &overlap)); 209 PetscCall(PetscViewerASCIIPrintf(PETSC_VIEWER_STDOUT_WORLD, "Overlap: %" PetscInt_FMT "\n", overlap)); 210 PetscCall(DMDestroy(dm)); 211 *dm = overlapMesh; 212 } 213 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_post_overlap_view")); 214 PetscCall(PetscLogStagePop()); 215 } 216 if (user->final_ref) { 217 DM refinedMesh = NULL; 218 219 PetscCall(DMPlexSetRefinementUniform(*dm, PETSC_TRUE)); 220 PetscCall(DMRefine(*dm, comm, &refinedMesh)); 221 if (refinedMesh) { 222 PetscCall(DMDestroy(dm)); 223 *dm = refinedMesh; 224 } 225 } 226 227 PetscCall(PetscObjectSetName((PetscObject) *dm, "Generated Mesh")); 228 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view")); 229 if (user->final_diagnostics) PetscCall(DMPlexCheck(*dm)); 230 PetscCall(PetscLogEventEnd(user->createMeshEvent,0,0,0,0)); 231 PetscFunctionReturn(0); 232 } 233 234 int main(int argc, char **argv) 235 { 236 DM dm; 237 AppCtx user; 238 239 PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 240 PetscCall(ProcessOptions(PETSC_COMM_WORLD, &user)); 241 PetscCall(CreateMesh(PETSC_COMM_WORLD, &user, &dm)); 242 PetscCall(DMDestroy(&dm)); 243 PetscCall(PetscFinalize()); 244 return 0; 245 } 246 247 /*TEST 248 249 # CTetGen 0-1 250 test: 251 suffix: 0 252 requires: ctetgen 253 args: -dm_coord_space 0 -dm_plex_dim 3 -dim 3 -dm_plex_interpolate 0 -ctetgen_verbose 4 -dm_view ascii::ascii_info_detail -info :~sys 254 test: 255 suffix: 1 256 requires: ctetgen 257 args: -dm_coord_space 0 -dm_plex_dim 3 -dim 3 -dm_plex_interpolate 0 -ctetgen_verbose 4 -dm_refine_volume_limit_pre 0.0625 -dm_view ascii::ascii_info_detail -info :~sys 258 259 # 2D LaTex and ASCII output 2-9 260 test: 261 suffix: 2 262 requires: triangle 263 args: -dm_plex_interpolate 0 -dm_view ascii::ascii_latex 264 test: 265 suffix: 3 266 requires: triangle 267 args: -ref_dm_refine 1 -dm_view ascii::ascii_info_detail 268 test: 269 suffix: 4 270 requires: triangle 271 nsize: 2 272 args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_info_detail 273 test: 274 suffix: 5 275 requires: triangle 276 nsize: 2 277 args: -dm_coord_space 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex 278 test: 279 suffix: 6 280 args: -dm_coord_space 0 -dm_plex_simplex 0 -dm_view ascii::ascii_info_detail 281 test: 282 suffix: 7 283 args: -dm_coord_space 0 -dm_plex_simplex 0 -ref_dm_refine 1 -dm_view ascii::ascii_info_detail 284 test: 285 suffix: 8 286 nsize: 2 287 args: -dm_plex_simplex 0 -ref_dm_refine 1 -dist_dm_distribute -petscpartitioner_type simple -dm_view ascii::ascii_latex 288 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 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh2 511 test: 512 suffix: gmsh_3d_binary_v40 513 requires: long64 514 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary.msh4 515 516 # Gmsh v41 ascii/binary reader tests 517 testset: # 32bit mesh, sequential 518 args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices 519 output_file: output/ex1_gmsh_3d_32.out 520 test: 521 suffix: gmsh_3d_ascii_v41_32 522 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh 523 test: 524 suffix: gmsh_3d_binary_v41_32 525 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh 526 test: 527 suffix: gmsh_3d_binary_v41_32_mpiio 528 requires: defined(PETSC_HAVE_MPIIO) 529 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio 530 test: 531 suffix: gmsh_quad_8node 532 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-qua-8node.msh \ 533 -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices 534 test: 535 suffix: gmsh_hex_20node 536 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-hex-20node.msh \ 537 -dm_view -dm_plex_check_all -dm_plex_gmsh_mark_vertices 538 testset: # 32bit mesh, parallel 539 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 540 nsize: 2 541 output_file: output/ex1_gmsh_3d_32_np2.out 542 test: 543 suffix: gmsh_3d_ascii_v41_32_np2 544 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-32.msh 545 test: 546 suffix: gmsh_3d_binary_v41_32_np2 547 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh 548 test: 549 suffix: gmsh_3d_binary_v41_32_np2_mpiio 550 requires: defined(PETSC_HAVE_MPIIO) 551 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-32.msh -viewer_binary_mpiio 552 testset: # 64bit mesh, sequential 553 args: -dm_coord_space 0 -dm_view ::ascii_info_detail -dm_plex_check_all -dm_plex_gmsh_mark_vertices 554 output_file: output/ex1_gmsh_3d_64.out 555 test: 556 suffix: gmsh_3d_ascii_v41_64 557 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh 558 test: 559 suffix: gmsh_3d_binary_v41_64 560 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh 561 test: 562 suffix: gmsh_3d_binary_v41_64_mpiio 563 requires: defined(PETSC_HAVE_MPIIO) 564 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio 565 testset: # 64bit mesh, parallel 566 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 567 nsize: 2 568 output_file: output/ex1_gmsh_3d_64_np2.out 569 test: 570 suffix: gmsh_3d_ascii_v41_64_np2 571 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-ascii-64.msh 572 test: 573 suffix: gmsh_3d_binary_v41_64_np2 574 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh 575 test: 576 suffix: gmsh_3d_binary_v41_64_np2_mpiio 577 requires: defined(PETSC_HAVE_MPIIO) 578 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/gmsh-3d-binary-64.msh -viewer_binary_mpiio 579 580 # Fluent mesh reader tests 581 # TODO: Geometry checks fail 582 test: 583 suffix: fluent_0 584 requires: !complex 585 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dm_view -final_diagnostics 0 586 test: 587 suffix: fluent_1 588 nsize: 3 589 requires: !complex 590 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.cas -dist_dm_distribute -petscpartitioner_type simple -dm_view -final_diagnostics 0 591 test: 592 suffix: fluent_2 593 requires: !complex 594 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets_ascii.cas -dm_view -final_diagnostics 0 595 test: 596 suffix: fluent_3 597 requires: !complex 598 TODO: Fails on non-linux: fseek(), fileno() ? https://gitlab.com/petsc/petsc/merge_requests/2206#note_238166382 599 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cube_5tets.cas -dm_view -final_diagnostics 0 600 601 # Med mesh reader tests, including parallel file reads 602 test: 603 suffix: med_0 604 requires: med 605 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.med -dm_view 606 test: 607 suffix: med_1 608 requires: med 609 nsize: 3 610 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square.med -dist_dm_distribute -petscpartitioner_type simple -dm_view 611 test: 612 suffix: med_2 613 requires: med 614 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cylinder.med -dm_view 615 test: 616 suffix: med_3 617 requires: med 618 TODO: MED 619 nsize: 3 620 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/cylinder.med -dist_dm_distribute -petscpartitioner_type simple -dm_view 621 622 # Test shape quality 623 test: 624 suffix: test_shape 625 requires: ctetgen 626 args: -dm_plex_dim 3 -dim 3 -dm_refine_hierarchy 3 -dm_plex_check_all -dm_plex_check_cell_shape 627 628 # Test simplex to tensor conversion 629 test: 630 suffix: s2t2 631 requires: triangle 632 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 633 634 test: 635 suffix: s2t3 636 requires: ctetgen 637 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 638 639 # Test cylinder 640 testset: 641 args: -dm_plex_shape cylinder -dm_plex_check_all -dm_view 642 test: 643 suffix: cylinder 644 args: -ref_dm_refine 1 645 test: 646 suffix: cylinder_per 647 args: -dm_plex_cylinder_bd periodic -ref_dm_refine 1 -ref_dm_refine_remap 0 648 test: 649 suffix: cylinder_wedge 650 args: -dm_coord_space 0 -dm_plex_interpolate 0 -dm_plex_cell tensor_triangular_prism -dm_view vtk: 651 test: 652 suffix: cylinder_wedge_int 653 output_file: output/ex1_cylinder_wedge.out 654 args: -dm_coord_space 0 -dm_plex_cell tensor_triangular_prism -dm_view vtk: 655 656 test: 657 suffix: box_2d 658 args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view 659 660 test: 661 suffix: box_2d_per 662 args: -dm_plex_simplex 0 -ref_dm_refine 2 -dm_plex_check_all -dm_view 663 664 test: 665 suffix: box_2d_per_unint 666 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 667 668 test: 669 suffix: box_3d 670 args: -dm_plex_dim 3 -dim 3 -dm_plex_simplex 0 -ref_dm_refine 3 -dm_plex_check_all -dm_view 671 672 test: 673 requires: triangle 674 suffix: box_wedge 675 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 676 677 testset: 678 requires: triangle 679 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 680 test: 681 suffix: box_wedge_s2t 682 test: 683 nsize: 3 684 args: -dist_dm_distribute -petscpartitioner_type simple 685 suffix: box_wedge_s2t_parallel 686 687 # Test GLVis output 688 testset: 689 args: -dm_coord_space 0 -dm_plex_interpolate 0 690 test: 691 suffix: glvis_2d_tet 692 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_plex_gmsh_periodic 0 -dm_view glvis: 693 test: 694 suffix: glvis_2d_tet_per 695 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/square_periodic.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 0 696 test: 697 suffix: glvis_3d_tet 698 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere_bin.msh -dm_plex_gmsh_periodic 0 -dm_view glvis: 699 testset: 700 args: -dm_coord_space 0 701 test: 702 suffix: glvis_2d_tet_per_mfem 703 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: 704 test: 705 suffix: glvis_2d_quad 706 args: -dm_plex_simplex 0 -dm_plex_box_faces 3,3 -dm_view glvis: 707 test: 708 suffix: glvis_2d_quad_per 709 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 710 test: 711 suffix: glvis_2d_quad_per_shift 712 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 713 test: 714 suffix: glvis_2d_quad_per_mfem 715 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 716 test: 717 suffix: glvis_3d_tet_per 718 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 719 test: 720 suffix: glvis_3d_tet_per_mfem 721 TODO: broken 722 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: 723 test: 724 suffix: glvis_3d_hex 725 args: -dm_plex_dim 3 -dm_plex_simplex 0 -dm_plex_box_faces 3,3,3 -dm_view glvis: 726 test: 727 suffix: glvis_3d_hex_per 728 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 729 test: 730 suffix: glvis_3d_hex_per_mfem 731 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 732 test: 733 suffix: glvis_2d_hyb 734 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 735 test: 736 suffix: glvis_3d_hyb 737 args: -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_tetwedge.msh -dm_view glvis: -viewer_glvis_dm_plex_enable_boundary 738 test: 739 suffix: glvis_3d_hyb_s2t 740 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 741 742 # Test P4EST 743 testset: 744 requires: p4est 745 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 746 test: 747 suffix: p4est_periodic 748 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 749 test: 750 suffix: p4est_periodic_3d 751 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 752 test: 753 suffix: p4est_gmsh_periodic 754 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 755 test: 756 suffix: p4est_gmsh_surface 757 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 758 test: 759 suffix: p4est_gmsh_surface_parallel 760 nsize: 2 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 -petscpartitioner_type simple -dm_view ::load_balance 762 test: 763 suffix: p4est_hyb_2d 764 args: -conv_seq_1_dm_forest_initial_refinement 0 -conv_seq_1_dm_forest_maximum_refinement 1 -conv_seq_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/hybrid_triquad.msh 765 test: 766 suffix: p4est_hyb_3d 767 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 768 test: 769 requires: ctetgen 770 suffix: p4est_s2t_bugfaces_3d 771 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 772 test: 773 suffix: p4est_bug_overlapsf 774 nsize: 3 775 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 776 test: 777 suffix: p4est_redistribute 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 -test_redistribute -dm_plex_csr_alg {{mat graph overlap}} -dm_view ::load_balance 780 test: 781 suffix: p4est_gmsh_s2t_3d 782 args: -conv_seq_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 783 test: 784 suffix: p4est_gmsh_s2t_3d_hash 785 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 786 test: 787 requires: long_runtime 788 suffix: p4est_gmsh_periodic_3d 789 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 790 791 testset: 792 requires: p4est 793 nsize: 6 794 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 795 test: 796 TODO: interface cones do not conform 797 suffix: p4est_par_periodic 798 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 799 test: 800 TODO: interface cones do not conform 801 suffix: p4est_par_periodic_3d 802 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 803 test: 804 TODO: interface cones do not conform 805 suffix: p4est_par_gmsh_periodic 806 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 807 test: 808 suffix: p4est_par_gmsh_surface 809 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 810 test: 811 suffix: p4est_par_gmsh_s2t_3d 812 args: -conv_par_1_dm_forest_initial_refinement 1 -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/doublet-tet.msh 813 test: 814 TODO: interface cones do not conform 815 suffix: p4est_par_gmsh_s2t_3d_hash 816 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 817 test: 818 requires: long_runtime 819 suffix: p4est_par_gmsh_periodic_3d 820 args: -conv_par_1_dm_forest_initial_refinement 0 -conv_par_1_dm_forest_maximum_refinement 1 -conv_par_1_dm_p4est_refine_pattern hash -dm_plex_filename ${wPETSC_DIR}/share/petsc/datafiles/meshes/mesh-3d-box-innersphere.msh 821 822 testset: 823 requires: p4est 824 nsize: 6 825 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 826 test: 827 suffix: p4est_par_ovl_periodic 828 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 829 #TODO Mesh cell 201 is inverted, vol = 0. (FVM Volume. Is it correct? -> Diagnostics disabled) 830 test: 831 suffix: p4est_par_ovl_periodic_3d 832 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 833 test: 834 suffix: p4est_par_ovl_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_ovl_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_ovl_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 suffix: p4est_par_ovl_gmsh_s2t_3d_hash 844 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 845 test: 846 requires: long_runtime 847 suffix: p4est_par_ovl_gmsh_periodic_3d 848 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 849 test: 850 suffix: p4est_par_ovl_hyb_2d 851 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 852 test: 853 suffix: p4est_par_ovl_hyb_3d 854 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 855 856 test: 857 TODO: broken 858 requires: p4est 859 nsize: 2 860 suffix: p4est_bug_labels_noovl 861 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 862 863 test: 864 requires: p4est 865 nsize: 2 866 suffix: p4est_bug_distribute_overlap 867 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 868 args: -dm_post_overlap_view 869 870 test: 871 suffix: ref_alfeld2d_0 872 requires: triangle 873 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 874 test: 875 suffix: ref_alfeld3d_0 876 requires: ctetgen 877 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 878 879 # Boundary layer refiners 880 test: 881 suffix: ref_bl_1 882 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 883 test: 884 suffix: ref_bl_2_tri 885 requires: triangle 886 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 887 test: 888 suffix: ref_bl_3_quad 889 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 890 test: 891 suffix: ref_bl_spheresurface_extruded 892 nsize : 4 893 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 894 test: 895 suffix: ref_bl_3d_hyb 896 nsize : 4 897 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 898 899 testset: 900 args: -dm_plex_shape sphere -dm_plex_check_all -dm_view 901 test: 902 suffix: sphere_0 903 args: 904 test: 905 suffix: sphere_1 906 args: -ref_dm_refine 2 907 test: 908 suffix: sphere_2 909 args: -dm_plex_simplex 0 910 test: 911 suffix: sphere_3 912 args: -dm_plex_simplex 0 -ref_dm_refine 2 913 914 test: 915 suffix: ball_0 916 requires: ctetgen 917 args: -dm_plex_dim 3 -dm_plex_shape ball -dm_plex_check_all -dm_view 918 919 test: 920 suffix: ball_1 921 requires: ctetgen 922 args: -dm_plex_dim 3 -dm_plex_shape ball -bd_dm_refine 2 -dm_plex_check_all -dm_view 923 924 test: 925 suffix: schwarz_p_extrude 926 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 927 TEST*/ 928