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