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