xref: /petsc/src/dm/impls/plex/tests/ex40.c (revision 012bc3648b56b7befe35b618b2ec944650f76ae7)
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