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