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