xref: /libCEED/examples/petsc/README.md (revision 32d2ee49b14cb706f4f808410107441006454a20)
1288c0443SJeremy L Thompson## libCEED + PETSc Examples
2819eb1b3Sjeremylt
3*32d2ee49SValeria Barra### CEED bakeoff problems - bpsraw
4819eb1b3Sjeremylt
5819eb1b3SjeremyltThis code solves the CEED bakeoff problems on a structured grid generated and
68c91a0c9SJeremy L Thompsonreferenced using only low-level communication primitives.
7819eb1b3Sjeremylt
8cb32e2e7SValeria BarraTo build, run `make bpsraw`
9819eb1b3Sjeremylt
10cb32e2e7SValeria BarraTo run, `./bpsraw -ceed [ceed-resource] -problem bp[1-6] -degree [degree]`
11819eb1b3Sjeremylt
12819eb1b3SjeremyltIn addition to the common arguments, the following arguments may be set:
13819eb1b3Sjeremylt
14819eb1b3Sjeremylt- `-local`             - Target number of locally owned DoFs per process
15819eb1b3Sjeremylt
16cb32e2e7SValeria Barra### CEED bakeoff problems with DMPlex - bps
17819eb1b3Sjeremylt
18819eb1b3SjeremyltThis code solves the CEED bakeoff problems on a unstructured grid using DMPlex.
19819eb1b3SjeremyltThis example requires a PETSc version later than 3.11.3.
20819eb1b3Sjeremylt
21cb32e2e7SValeria BarraTo build, run `make bps`
22819eb1b3Sjeremylt
23cb32e2e7SValeria BarraTo run, `./bps -ceed [ceed-resource] -problem bp[1-6] -degree [degree]`
24819eb1b3Sjeremylt
25819eb1b3SjeremyltIn addition to the common arguments, the following arguments may be set:
26819eb1b3Sjeremylt
27819eb1b3Sjeremylt- `-mesh`              - Read mesh from file
28819eb1b3Sjeremylt- `-cells`             - Number of cells per dimension
296c5df90dSjeremylt
306c5df90dSjeremylt### CEED bakeoff problems with DMPlex and PCMG - multigrid
316c5df90dSjeremylt
326c5df90dSjeremyltThis code solves the CEED bakeoff problems on a unstructured grid using DMPlex
336c5df90dSjeremyltwith p-multigrid implemented in PCMG. This example requires a PETSc version later than 3.11.3.
346c5df90dSjeremylt
35cb32e2e7SValeria BarraTo build, run `make multigrid`
366c5df90dSjeremylt
37cb32e2e7SValeria BarraTo run, `./multigrid -ceed [ceed-resource] -problem bp[1-6] -degree [degree]`
386c5df90dSjeremylt
396c5df90dSjeremyltIn addition to the common arguments, the following arguments may be set:
406c5df90dSjeremylt
416c5df90dSjeremylt- `-mesh`              - Read mesh from file
426c5df90dSjeremylt- `-cells`             - Number of cells per dimension
43819eb1b3Sjeremylt
44288c0443SJeremy L Thompson### Command line arguments
45819eb1b3Sjeremylt
46cb32e2e7SValeria BarraThe following arguments can be specified for all of the above examples:
47819eb1b3Sjeremylt
48819eb1b3Sjeremylt- `-ceed`              - CEED resource specifier
49819eb1b3Sjeremylt- `-problem`           - CEED benchmark problem to solve
506c5df90dSjeremylt- `-degree`            - Polynomial degree of tensor product basis
51819eb1b3Sjeremylt- `-qextra`            - Number of extra quadrature points
52819eb1b3Sjeremylt- `-test`              - Testing mode (do not print unless error is large)
53819eb1b3Sjeremylt- `-benchmark`         - Benchmarking mode (prints benchmark statistics)
54cb32e2e7SValeria Barra
55*32d2ee49SValeria Barra### libCEED example to compute surface area using DMPlex - area
56cb32e2e7SValeria Barra
57*32d2ee49SValeria BarraThis example uses the mass matrix to compute the surface area of a cube or a discrete cubed-sphere, defined via DMPlex.
58cb32e2e7SValeria Barra
59cb32e2e7SValeria BarraTo build, run `make area`
60cb32e2e7SValeria Barra
61*32d2ee49SValeria BarraTo run, `./area -problem cube -ceed [ceed-resource] -petscspace_degree [degree]`
62cb32e2e7SValeria Barra
63*32d2ee49SValeria Barraor
64cb32e2e7SValeria Barra
65*32d2ee49SValeria Barra`./area -problem sphere -ceed [ceed-resource] -petscspace_degree [degree]`
66*32d2ee49SValeria Barra
67*32d2ee49SValeria Barra#### Command line arguments
68*32d2ee49SValeria Barra
69*32d2ee49SValeria BarraThe following arguments can be specified for the area example:
70cb32e2e7SValeria Barra
71cb32e2e7SValeria Barra- `-ceed`              - CEED resource specifier
72*32d2ee49SValeria Barra- `-problem`           - Problem to solve, either 'cube' or 'sphere'
73cb32e2e7SValeria Barra- `-petscspace_degree` - Polynomial degree of tensor product basis
74cb32e2e7SValeria Barra- `-qextra`            - Number of extra quadrature points
75cb32e2e7SValeria Barra- `-test`              - Testing mode (do not print unless error is large)
76cb32e2e7SValeria Barra- `-mesh`              - Read mesh from file
77cb32e2e7SValeria Barra
78