1288c0443SJeremy L Thompson## libCEED + PETSc Examples 2819eb1b3Sjeremylt 3b8962995SJeremy L ThompsonPETSc v3.17 or a development version of PETSc at commit 0e95d842 or later is required. 4b8962995SJeremy L Thompson 5ccb3a226Sjeremylt### CEED bakeoff problems with raw mesh management - bpsraw 6819eb1b3Sjeremylt 7ccb3a226SjeremyltThis code solves the CEED bakeoff problems on a structured grid generated and referenced using only low-level communication primitives. 8819eb1b3Sjeremylt 9cb32e2e7SValeria BarraTo build, run `make bpsraw` 10819eb1b3Sjeremylt 11cb32e2e7SValeria BarraTo run, `./bpsraw -ceed [ceed-resource] -problem bp[1-6] -degree [degree]` 12819eb1b3Sjeremylt 13819eb1b3SjeremyltIn addition to the common arguments, the following arguments may be set: 14819eb1b3Sjeremylt 15819eb1b3Sjeremylt- `-local` - Target number of locally owned DoFs per process 16819eb1b3Sjeremylt 17cb32e2e7SValeria Barra### CEED bakeoff problems with DMPlex - bps 18819eb1b3Sjeremylt 19819eb1b3SjeremyltThis code solves the CEED bakeoff problems on a unstructured grid using DMPlex. 20819eb1b3SjeremyltThis example requires a PETSc version later than 3.11.3. 21819eb1b3Sjeremylt 22cb32e2e7SValeria BarraTo build, run `make bps` 23819eb1b3Sjeremylt 24cb32e2e7SValeria BarraTo run, `./bps -ceed [ceed-resource] -problem bp[1-6] -degree [degree]` 25819eb1b3Sjeremylt 26819eb1b3SjeremyltIn addition to the common arguments, the following arguments may be set: 27819eb1b3Sjeremylt 28819eb1b3Sjeremylt- `-mesh` - Read mesh from file 29819eb1b3Sjeremylt- `-cells` - Number of cells per dimension 306c5df90dSjeremylt 31565a3730SJed Brown#### Running a suite 32565a3730SJed Brown 33ccb3a226SjeremyltSome run-time arguments can be passed lists, which allows a single `mpiexec` invocation to run many experiments. 34ccb3a226SjeremyltFor example 35565a3730SJed Brown 36565a3730SJed Brown mpiexec -n 64 ./bps -problem bp1,bp2,bp3,bp4 -degree 2,3,5,7 \ 37565a3730SJed Brown -ceed /cpu/self/opt/serial,/cpu/self/xsmm/serial,/cpu/self/xsmm/blocked \ 38565a3730SJed Brown -local_nodes 600,20000 | tee bps.log 39565a3730SJed Brown 40ccb3a226Sjeremyltwhich will sample from the `4*4*3=48` specified combinations, each of which will run a problem-size sweep of 600, 1200, 2400, 4800, 9600, 192000 FEM nodes per MPI rank. 41ccb3a226SjeremyltThe resulting log file can be read by the Python plotting scripts in `benchmarks/`. 42565a3730SJed Brown 436c5df90dSjeremylt### CEED bakeoff problems with DMPlex and PCMG - multigrid 446c5df90dSjeremylt 45ccb3a226SjeremyltThis code solves the CEED bakeoff problems on a unstructured grid using DMPlex with p-multigrid implemented in PCMG. 46ccb3a226SjeremyltThis example requires a PETSc version later than 3.11.3. 476c5df90dSjeremylt 48cb32e2e7SValeria BarraTo build, run `make multigrid` 496c5df90dSjeremylt 50cb32e2e7SValeria BarraTo run, `./multigrid -ceed [ceed-resource] -problem bp[1-6] -degree [degree]` 516c5df90dSjeremylt 526c5df90dSjeremyltIn addition to the common arguments, the following arguments may be set: 536c5df90dSjeremylt 546c5df90dSjeremylt- `-mesh` - Read mesh from file 556c5df90dSjeremylt- `-cells` - Number of cells per dimension 56819eb1b3Sjeremylt 57288c0443SJeremy L Thompson### Command line arguments 58819eb1b3Sjeremylt 59cb32e2e7SValeria BarraThe following arguments can be specified for all of the above examples: 60819eb1b3Sjeremylt 61819eb1b3Sjeremylt- `-ceed` - CEED resource specifier 62819eb1b3Sjeremylt- `-problem` - CEED benchmark problem to solve 636c5df90dSjeremylt- `-degree` - Polynomial degree of tensor product basis 64*2288fb52SJeremy L Thompson- `-q_extra` - Number of extra quadrature points 65819eb1b3Sjeremylt- `-test` - Testing mode (do not print unless error is large) 66819eb1b3Sjeremylt- `-benchmark` - Benchmarking mode (prints benchmark statistics) 67cb32e2e7SValeria Barra 6832d2ee49SValeria Barra### libCEED example to compute surface area using DMPlex - area 69cb32e2e7SValeria Barra 7032d2ee49SValeria BarraThis example uses the mass matrix to compute the surface area of a cube or a discrete cubed-sphere, defined via DMPlex. 71cb32e2e7SValeria Barra 72cb32e2e7SValeria BarraTo build, run `make area` 73cb32e2e7SValeria Barra 7432d2ee49SValeria BarraTo run, `./area -problem cube -ceed [ceed-resource] -petscspace_degree [degree]` 75cb32e2e7SValeria Barra 7632d2ee49SValeria Barraor 77cb32e2e7SValeria Barra 7832d2ee49SValeria Barra`./area -problem sphere -ceed [ceed-resource] -petscspace_degree [degree]` 7932d2ee49SValeria Barra 8032d2ee49SValeria Barra#### Command line arguments 8132d2ee49SValeria Barra 8232d2ee49SValeria BarraThe following arguments can be specified for the area example: 83cb32e2e7SValeria Barra 84cb32e2e7SValeria Barra- `-ceed` - CEED resource specifier 8532d2ee49SValeria Barra- `-problem` - Problem to solve, either 'cube' or 'sphere' 86cb32e2e7SValeria Barra- `-petscspace_degree` - Polynomial degree of tensor product basis 87*2288fb52SJeremy L Thompson- `-q_extra` - Number of extra quadrature points 88cb32e2e7SValeria Barra- `-test` - Testing mode (do not print unless error is large) 89cb32e2e7SValeria Barra- `-mesh` - Read mesh from file 90cb32e2e7SValeria Barra 91