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