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