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 830602db0SMatthew 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; 1330602db0SMatthew G. Knepley ierr = DMCreate(comm, dm);CHKERRQ(ierr); 1430602db0SMatthew 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; 2630602db0SMatthew 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: 34*012bc364SMatthew G. Knepley suffix: ref_seg 35*012bc364SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell segment -dm_refine 1 -dm_plex_check_all 36*012bc364SMatthew G. Knepley 37*012bc364SMatthew G. Knepley test: 38412e9a14SMatthew G. Knepley suffix: ref_tri 3930602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell triangle -dm_refine 2 -dm_plex_check_all 40412e9a14SMatthew G. Knepley 41412e9a14SMatthew G. Knepley test: 42412e9a14SMatthew G. Knepley suffix: box_tri 4354fcfd0cSMatthew G. Knepley requires: triangle 44412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 4530602db0SMatthew G. Knepley args: -dm_distribute -dm_plex_box_faces 3,3 -dm_refine 2 -dm_plex_check_all 46412e9a14SMatthew G. Knepley 47412e9a14SMatthew G. Knepley test: 48412e9a14SMatthew G. Knepley suffix: ref_quad 4930602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell quadrilateral -dm_refine 2 -dm_plex_check_all 50412e9a14SMatthew G. Knepley 51412e9a14SMatthew G. Knepley test: 52412e9a14SMatthew G. Knepley suffix: box_quad 53412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 5430602db0SMatthew G. Knepley args: -dm_distribute -dm_plex_box_faces 3,3 -dm_plex_simplex 0 -dm_refine 2 -dm_plex_check_all 55412e9a14SMatthew G. Knepley 56412e9a14SMatthew G. Knepley test: 57412e9a14SMatthew G. Knepley suffix: ref_tet 5830602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tetrahedron -dm_refine 2 -dm_plex_check_all 59412e9a14SMatthew G. Knepley 60412e9a14SMatthew G. Knepley test: 61412e9a14SMatthew G. Knepley suffix: box_tet 6254fcfd0cSMatthew G. Knepley requires: ctetgen 63412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 6430602db0SMatthew G. Knepley args: -dm_distribute -dm_plex_dim 3 -dm_plex_box_faces 3,3,3 -dm_refine 2 -dm_plex_check_all 65412e9a14SMatthew G. Knepley 66412e9a14SMatthew G. Knepley test: 67412e9a14SMatthew G. Knepley suffix: ref_hex 6830602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell hexahedron -dm_refine 2 -dm_plex_check_all 69412e9a14SMatthew G. Knepley 70412e9a14SMatthew G. Knepley test: 71412e9a14SMatthew G. Knepley suffix: box_hex 72412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 7330602db0SMatthew 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 74412e9a14SMatthew G. Knepley 75412e9a14SMatthew G. Knepley test: 76412e9a14SMatthew G. Knepley suffix: ref_trip 7730602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell triangular_prism -dm_refine 2 -dm_plex_check_all 78412e9a14SMatthew G. Knepley 79412e9a14SMatthew G. Knepley test: 80412e9a14SMatthew G. Knepley suffix: ref_tquad 8130602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tensor_quad -dm_refine 2 -dm_plex_check_all 82412e9a14SMatthew G. Knepley 83412e9a14SMatthew G. Knepley test: 84412e9a14SMatthew G. Knepley suffix: ref_ttrip 8530602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tensor_triangular_prism -dm_refine 2 -dm_plex_check_all 86412e9a14SMatthew G. Knepley 87412e9a14SMatthew G. Knepley test: 88412e9a14SMatthew G. Knepley suffix: ref_tquadp 8930602db0SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tensor_quadrilateral_prism -dm_refine 2 -dm_plex_check_all 90412e9a14SMatthew G. Knepley 91412e9a14SMatthew G. Knepley test: 92*012bc364SMatthew G. Knepley suffix: ref_pyramid 93*012bc364SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell pyramid -dm_refine 2 -dm_plex_check_all 94*012bc364SMatthew G. Knepley 95*012bc364SMatthew G. Knepley testset: 96*012bc364SMatthew G. Knepley args: -dm_coord_space 0 -dm_plex_transform_type refine_tobox -dm_plex_check_all 97*012bc364SMatthew G. Knepley 98*012bc364SMatthew G. Knepley test: 9996ca5757SLisandro Dalcin suffix: ref_tri_tobox 100*012bc364SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell triangle -dm_refine 2 101412e9a14SMatthew G. Knepley 102412e9a14SMatthew G. Knepley test: 10396ca5757SLisandro Dalcin suffix: box_tri_tobox 10454fcfd0cSMatthew G. Knepley requires: triangle 105412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 106*012bc364SMatthew G. Knepley args: -dm_distribute -dm_plex_box_faces 3,3 -dm_refine 2 107412e9a14SMatthew G. Knepley 108412e9a14SMatthew G. Knepley test: 10996ca5757SLisandro Dalcin suffix: ref_tet_tobox 110*012bc364SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tetrahedron -dm_refine 2 111412e9a14SMatthew G. Knepley 112412e9a14SMatthew G. Knepley test: 11396ca5757SLisandro Dalcin suffix: box_tet_tobox 11454fcfd0cSMatthew G. Knepley requires: ctetgen 115412e9a14SMatthew G. Knepley nsize: {{1 3 5}} 116*012bc364SMatthew G. Knepley args: -dm_distribute -dm_plex_dim 3 -dm_plex_box_faces 3,3,3 -dm_refine 2 117412e9a14SMatthew G. Knepley 118412e9a14SMatthew G. Knepley test: 11996ca5757SLisandro Dalcin suffix: ref_trip_tobox 120*012bc364SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell triangular_prism -dm_refine 2 121412e9a14SMatthew G. Knepley 122412e9a14SMatthew G. Knepley test: 12396ca5757SLisandro Dalcin suffix: ref_ttrip_tobox 124*012bc364SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tensor_triangular_prism -dm_refine 2 125*012bc364SMatthew G. Knepley 126*012bc364SMatthew G. Knepley test: 127*012bc364SMatthew G. Knepley suffix: ref_tquadp_tobox 128*012bc364SMatthew G. Knepley args: -dm_plex_reference_cell_domain -dm_plex_cell tensor_quadrilateral_prism -dm_refine 2 129412e9a14SMatthew G. Knepley 130412e9a14SMatthew G. Knepley TEST*/ 131