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