1## libCEED + PETSc Examples 2 3This page provides a description of the CEED bakeoff problem examples for the libCEED library, based on PETSc. 4 5### CEED bakeoff problems with raw mesh management - bpsraw 6 7This code solves the CEED bakeoff problems on a structured grid generated and referenced using only low-level communication primitives. 8 9To build, run `make bpsraw` 10 11To run, `./bpsraw -ceed [ceed-resource] -problem bp[1-6] -degree [degree]` 12 13In addition to the common arguments, the following arguments may be set: 14 15- `-local` - Target number of locally owned DoFs per process 16 17### CEED bakeoff problems with DMPlex - bps 18 19This code solves the CEED bakeoff problems on a unstructured grid using DMPlex. 20 21To build, run `make bps` 22 23To run, `./bps -ceed [ceed-resource] -problem bp[1-6] -degree [degree]` 24 25In addition to the common arguments, the following arguments may be set: 26 27- `-mesh` - Read mesh from file 28- `-cells` - Number of cells per dimension 29 30#### Running a suite 31 32Some run-time arguments can be passed lists, which allows a single `mpiexec` invocation to run many experiments. 33For example 34 35 mpiexec -n 64 ./bps -problem bp1,bp2,bp3,bp4 -degree 2,3,5,7 \ 36 -ceed /cpu/self/opt/serial,/cpu/self/xsmm/serial,/cpu/self/xsmm/blocked \ 37 -local_nodes 600,20000 | tee bps.log 38 39which 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. 40The resulting log file can be read by the Python plotting scripts in `benchmarks/`. 41 42### CEED bakeoff problems with DMPlex and PCMG - multigrid 43 44This code solves the CEED bakeoff problems on a unstructured grid using DMPlex with p-multigrid implemented in PCMG. 45 46To build, run `make multigrid` 47 48To run, `./multigrid -ceed [ceed-resource] -problem bp[1-6] -degree [degree]` 49 50In addition to the common arguments, the following arguments may be set: 51 52- `-mesh` - Read mesh from file 53- `-cells` - Number of cells per dimension 54 55### Command line arguments 56 57The following arguments can be specified for all of the above examples: 58 59- `-ceed` - CEED resource specifier 60- `-problem` - CEED benchmark problem to solve 61- `-degree` - Polynomial degree of tensor product basis 62- `-q_extra` - Number of extra quadrature points 63- `-test` - Testing mode (do not print unless error is large) 64- `-benchmark` - Benchmarking mode (prints benchmark statistics) 65 66### libCEED example to compute surface area using DMPlex - area 67 68This example uses the mass matrix to compute the surface area of a cube or a discrete cubed-sphere, defined via DMPlex. 69 70To build, run `make area` 71 72To run, `./area -problem cube -ceed [ceed-resource] -petscspace_degree [degree]` 73 74or 75 76`./area -problem sphere -ceed [ceed-resource] -petscspace_degree [degree]` 77 78#### Command line arguments 79 80The following arguments can be specified for the area example: 81 82- `-ceed` - CEED resource specifier 83- `-problem` - Problem to solve, either 'cube' or 'sphere' 84- `-petscspace_degree` - Polynomial degree of tensor product basis 85- `-q_extra` - Number of extra quadrature points 86- `-test` - Testing mode (do not print unless error is large) 87- `-mesh` - Read mesh from file 88 89