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