This page provides a brief description of the examples for the libCEED library.
Two examples that rely only upon libCEED without any external libraries are provided in the ceed/ folder. For more details, please see the dedicated documenttaion section.
The Center for Efficient Exascale Discretizations (CEED) uses Bakeoff Problems (BPs)
to test and compare the performance of high-order finite element implementations. The
definitions of the problems are given on the ceed
website. Each of the following bakeoff
problems that use external discretization libraries (such as MFEM, PETSc, and Nek5000)
are located in the subdirectories mfem/
, petsc/
, and
nek5000/
, respectively.
Here we provide a short summary:
User code | BPs |
mfem |
|
petsc |
|
nek5000 |
|
These are all T-vector-to-T-vector and include parallel scatter, element scatter, element evaluation kernel, element gather, and parallel gather (with the parallel gathers/scatters done externally to libCEED).
BP1 and BP2 are L^2 projections, and thus have no boundary condition. The rest of the BPs have homogeneous Dirichlet boundary conditions.
The BPs are parametrized by the number P of Gauss-Legendre-Lobatto nodal points (with P=p+1, and p the degree of the basis polynomial) for the Lagrange polynomials, as well as the number of quadrature points, Q. A Q-point Gauss-Legendre quadrature is used for all BPs except BP5 and BP6, which choose Q = P and Gauss-Legendre-Lobatto quadrature to collocate with the interpolation nodes. This latter choice is popular in applications that use spectral element methods because it produces a diagonal mass matrix (enabling easy explicit time integration) and significantly reduces the number of floating point operations to apply the operator.
For a more detailed description of the operators employed in the BPs, please see the dedicated BPs documentation section.
The Navier-Stokes problem solves the compressible Navier-Stokes equations using an explicit or implicit time integration. A more detailed description of the problem formulation can be found in the fluids/ folder and the corresponding fluids documentation page.
This example solves the steady-state static momentum balance equations using unstructured high-order finite/spectral element spatial discretizations. A more detailed description of the problem formulation can be found in the solids/ folder and the corresponding solids documentation page.
These examples, located in the petsc/ folder, use the mass operator to compute the surface area of a cube or a discrete cubed-sphere, using PETSc. For a detailed description, please see the corresponding area documentation page.
These examples, located in the petsc/ folder, reproduce the Bakeoff Problems 1-6 on a discrete cubed-sphere, using PETSc. For a detailed description, please see the corresponding problems on the cubed-sphere documentation page.
To build the examples, set the MFEM_DIR
, PETSC_DIR
, and
NEK5K_DIR
variables and, from the examples/
directory, run