1## libCEED + PETSc Examples 2 3### CEED bakeoff problems - bpsraw 4 5This code solves the CEED bakeoff problems on a structured grid generated and 6referenced using only low-level communication primitives. 7 8To build, run `make bpsraw` 9 10To run, `./bpsraw -ceed [ceed-resource] -problem bp[1-6] -degree [degree]` 11 12In addition to the common arguments, the following arguments may be set: 13 14- `-local` - Target number of locally owned DoFs per process 15 16### CEED bakeoff problems with DMPlex - bps 17 18This code solves the CEED bakeoff problems on a unstructured grid using DMPlex. 19This example requires a PETSc version later than 3.11.3. 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 33to run many experiments. For 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 40problem-size sweep of 600, 1200, 2400, 4800, 9600, 192000 nodes per MPI rank. The 41resulting log file can be read by the Python plotting scripts in `benchmarks/`. 42 43### CEED bakeoff problems with DMPlex and PCMG - multigrid 44 45This code solves the CEED bakeoff problems on a unstructured grid using DMPlex 46with p-multigrid implemented in PCMG. This example requires a PETSc version later than 3.11.3. 47 48To build, run `make multigrid` 49 50To run, `./multigrid -ceed [ceed-resource] -problem bp[1-6] -degree [degree]` 51 52In addition to the common arguments, the following arguments may be set: 53 54- `-mesh` - Read mesh from file 55- `-cells` - Number of cells per dimension 56 57### Command line arguments 58 59The following arguments can be specified for all of the above examples: 60 61- `-ceed` - CEED resource specifier 62- `-problem` - CEED benchmark problem to solve 63- `-degree` - Polynomial degree of tensor product basis 64- `-qextra` - Number of extra quadrature points 65- `-test` - Testing mode (do not print unless error is large) 66- `-benchmark` - Benchmarking mode (prints benchmark statistics) 67 68### libCEED example to compute surface area using DMPlex - area 69 70This example uses the mass matrix to compute the surface area of a cube or a discrete cubed-sphere, defined via DMPlex. 71 72To build, run `make area` 73 74To run, `./area -problem cube -ceed [ceed-resource] -petscspace_degree [degree]` 75 76or 77 78`./area -problem sphere -ceed [ceed-resource] -petscspace_degree [degree]` 79 80#### Command line arguments 81 82The following arguments can be specified for the area example: 83 84- `-ceed` - CEED resource specifier 85- `-problem` - Problem to solve, either 'cube' or 'sphere' 86- `-petscspace_degree` - Polynomial degree of tensor product basis 87- `-qextra` - Number of extra quadrature points 88- `-test` - Testing mode (do not print unless error is large) 89- `-mesh` - Read mesh from file 90 91