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