1412e9a14SMatthew G. Knepley static const char help[] = "Tests for regular refinement"; 2412e9a14SMatthew G. Knepley 3412e9a14SMatthew G. Knepley #include <petscdmplex.h> 4412e9a14SMatthew G. Knepley #include <petscsf.h> 5412e9a14SMatthew G. Knepley 6412e9a14SMatthew G. Knepley #include <petsc/private/dmpleximpl.h> 7412e9a14SMatthew G. Knepley 8*30602db0SMatthew G. Knepley static PetscErrorCode CreateMesh(MPI_Comm comm, DM *dm) 9412e9a14SMatthew G. Knepley { 10412e9a14SMatthew G. Knepley PetscErrorCode ierr; 11412e9a14SMatthew G. Knepley 12412e9a14SMatthew G. Knepley PetscFunctionBegin; 13*30602db0SMatthew G. Knepley ierr = DMCreate(comm, dm);CHKERRQ(ierr); 14*30602db0SMatthew G. Knepley ierr = DMSetType(*dm, DMPLEX);CHKERRQ(ierr); 15412e9a14SMatthew G. Knepley ierr = DMSetFromOptions(*dm);CHKERRQ(ierr); 16412e9a14SMatthew G. Knepley ierr = DMViewFromOptions(*dm, NULL, "-dm_view");CHKERRQ(ierr); 17412e9a14SMatthew G. Knepley PetscFunctionReturn(0); 18412e9a14SMatthew G. Knepley } 19412e9a14SMatthew G. Knepley 20412e9a14SMatthew G. Knepley int main(int argc, char **argv) 21412e9a14SMatthew G. Knepley { 22412e9a14SMatthew G. Knepley DM dm; 23412e9a14SMatthew G. Knepley PetscErrorCode ierr; 24412e9a14SMatthew G. Knepley 25412e9a14SMatthew G. Knepley ierr = PetscInitialize(&argc, &argv, NULL, help); if (ierr) return ierr; 26*30602db0SMatthew G. Knepley ierr = CreateMesh(PETSC_COMM_WORLD, &dm);CHKERRQ(ierr); 27412e9a14SMatthew G. Knepley ierr = DMDestroy(&dm);CHKERRQ(ierr); 28412e9a14SMatthew G. Knepley ierr = PetscFinalize(); 29412e9a14SMatthew G. Knepley return ierr; 30412e9a14SMatthew G. Knepley } 31412e9a14SMatthew G. Knepley 32412e9a14SMatthew G. Knepley /*TEST 33412e9a14SMatthew G. Knepley test: 34412e9a14SMatthew G. Knepley suffix: ref_tri 35*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell triangle -dm_refine 2 -dm_plex_check_all 36412e9a14SMatthew G. Knepley 37412e9a14SMatthew G. Knepley test: 38412e9a14SMatthew G. Knepley suffix: box_tri 3954fcfd0cSMatthew G. Knepley requires: triangle 40412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 41*30602db0SMatthew G. Knepley args: -dm_distribute -dm_plex_box_faces 3,3 -dm_refine 2 -dm_plex_check_all 42412e9a14SMatthew G. Knepley 43412e9a14SMatthew G. Knepley test: 44412e9a14SMatthew G. Knepley suffix: ref_quad 45*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell quadrilateral -dm_refine 2 -dm_plex_check_all 46412e9a14SMatthew G. Knepley 47412e9a14SMatthew G. Knepley test: 48412e9a14SMatthew G. Knepley suffix: box_quad 49412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 50*30602db0SMatthew G. Knepley args: -dm_distribute -dm_plex_box_faces 3,3 -dm_plex_simplex 0 -dm_refine 2 -dm_plex_check_all 51412e9a14SMatthew G. Knepley 52412e9a14SMatthew G. Knepley test: 53412e9a14SMatthew G. Knepley suffix: ref_tet 54*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tetrahedron -dm_refine 2 -dm_plex_check_all 55412e9a14SMatthew G. Knepley 56412e9a14SMatthew G. Knepley test: 57412e9a14SMatthew G. Knepley suffix: box_tet 5854fcfd0cSMatthew G. Knepley requires: ctetgen 59412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 60*30602db0SMatthew G. Knepley args: -dm_distribute -dm_plex_dim 3 -dm_plex_box_faces 3,3,3 -dm_refine 2 -dm_plex_check_all 61412e9a14SMatthew G. Knepley 62412e9a14SMatthew G. Knepley test: 63412e9a14SMatthew G. Knepley suffix: ref_hex 64*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell hexahedron -dm_refine 2 -dm_plex_check_all 65412e9a14SMatthew G. Knepley 66412e9a14SMatthew G. Knepley test: 67412e9a14SMatthew G. Knepley suffix: box_hex 68412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 69*30602db0SMatthew G. Knepley args: -dm_distribute -dm_plex_dim 3 -dm_plex_box_faces 3,3,3 -dm_plex_simplex 0 -dm_refine 2 -dm_plex_check_all 70412e9a14SMatthew G. Knepley 71412e9a14SMatthew G. Knepley test: 72412e9a14SMatthew G. Knepley suffix: ref_trip 73*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell triangular_prism -dm_refine 2 -dm_plex_check_all 74412e9a14SMatthew G. Knepley 75412e9a14SMatthew G. Knepley test: 76412e9a14SMatthew G. Knepley suffix: ref_tquad 77*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tensor_quad -dm_refine 2 -dm_plex_check_all 78412e9a14SMatthew G. Knepley 79412e9a14SMatthew G. Knepley test: 80412e9a14SMatthew G. Knepley suffix: ref_ttrip 81*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tensor_triangular_prism -dm_refine 2 -dm_plex_check_all 82412e9a14SMatthew G. Knepley 83412e9a14SMatthew G. Knepley test: 84412e9a14SMatthew G. Knepley suffix: ref_tquadp 85*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tensor_quadrilateral_prism -dm_refine 2 -dm_plex_check_all 86412e9a14SMatthew G. Knepley 87412e9a14SMatthew G. Knepley test: 8896ca5757SLisandro Dalcin suffix: ref_tri_tobox 89*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell triangle -dm_plex_cell_refiner tobox -dm_coord_space 0 -dm_refine 2 -dm_plex_check_all 90412e9a14SMatthew G. Knepley 91412e9a14SMatthew G. Knepley test: 9296ca5757SLisandro Dalcin suffix: box_tri_tobox 9354fcfd0cSMatthew G. Knepley requires: triangle 94412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 95*30602db0SMatthew G. Knepley args: -dm_distribute -dm_plex_box_faces 3,3 -dm_plex_cell_refiner tobox -dm_coord_space 0 -dm_refine 2 -dm_plex_check_all 96412e9a14SMatthew G. Knepley 97412e9a14SMatthew G. Knepley test: 9896ca5757SLisandro Dalcin suffix: ref_tet_tobox 99*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tetrahedron -dm_plex_cell_refiner tobox -dm_coord_space 0 -dm_refine 2 -dm_plex_check_all 100412e9a14SMatthew G. Knepley 101412e9a14SMatthew G. Knepley test: 10296ca5757SLisandro Dalcin suffix: box_tet_tobox 10354fcfd0cSMatthew G. Knepley requires: ctetgen 104412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 105*30602db0SMatthew G. Knepley args: -dm_distribute -dm_plex_dim 3 -dm_plex_box_faces 3,3,3 -dm_plex_cell_refiner tobox -dm_coord_space 0 -dm_refine 2 -dm_plex_check_all 106412e9a14SMatthew G. Knepley 107412e9a14SMatthew G. Knepley test: 10896ca5757SLisandro Dalcin suffix: ref_trip_tobox 109*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell triangular_prism -dm_plex_cell_refiner tobox -dm_coord_space 0 -dm_refine 2 -dm_plex_check_all 110412e9a14SMatthew G. Knepley 111412e9a14SMatthew G. Knepley test: 11296ca5757SLisandro Dalcin suffix: ref_ttrip_tobox 113*30602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tensor_triangular_prism -dm_plex_cell_refiner tobox -dm_coord_space 0 -dm_refine 2 -dm_plex_check_all 114412e9a14SMatthew G. Knepley 115412e9a14SMatthew G. Knepley TEST*/ 116