libCEED: Efficient Extensible Discretization

There is a newer version of the record available.

Published December 23, 2022 | Version 0.11.0
Software Open

libCEED: Efficient Extensible Discretization

Description

Interface changes

  • Added CeedOperatorSetName for more readable CeedOperatorView output.
  • Added CeedBasisCreateProjection to facilitate interpolation between nodes for separate CeedBases.
  • Rename and move CeedCompositeOperatorGetNumSubandCeedCompositeOperatorGetSubList` to public interface.
New features
  • Update /cpu/self/memcheck/* backends to help verify CeedQFunctionContext data sizes provided by user.
  • Improved support for $H(\text{div})$ bases.
  • Added CeedInt_FMT to support potential future use of larger interger sizes.
  • Added CEED_QFUNCTION_ATTR for setting compiler attributes/pragmas to CEED_QFUNCTION_HELPER and CEED_QFUNCTION.
  • OCCA backend updated to latest OCCA release; DPC++ and OMP OCCA modes enabled. Due to a limitation of the OCCA parser, typedefs are required to use pointers to arrays in QFunctions with the OCCA backend. This issue will be fixed in a future OCCA release.
Bugfix
  • Fix bug in setting device id for GPU backends.
  • Fix storing of indices for CeedElemRestriction on the host with GPU backends.
  • Fix CeedElemRestriction sizing for CeedOperatorAssemblePointBlockDiagonal.
  • Fix bugs in CPU implementation of CeedOperatorLinearAssemble when there are different number of active input modes and active output modes.
Examples Compressible Navier-Stokes mini-app
  • Various performance enhancements, analytic matrix-free and assembled Jacobian, and PETSc solver configurations for GPUs.
  • Refactored to improve code reuse and modularity.
  • Support for primitive variables for more accurate boundary layers and all-speed flow.
  • Added $YZ\beta$ shock capturing scheme and Shock Tube example.
  • Added Channel example, with comparison to analytic solutions.
  • Added Flat Plate with boundary layer mesh and compressible Blasius inflow condition based on Chebyshev collocation solution of the Blasius equations.
  • Added strong and weak synthetic turbulence generation (STG) inflow boundary conditions.
  • Added "freestream" boundary conditions based on HLLC Riemann solver.
  • Automated stabilization coefficients for different basis degree.
PETSc Bake-off problems
  • Support for convergence studies.
Maintainability
  • Refactored /gpu/cuda/shared and /gpu/cuda/gen as well as /gpu/hip/shared and /gpu/hip/gen backend to improve maintainablity and reduce duplicated code.
  • Enabled support for p > 8 for /gpu/*/shared backends.
  • Switch to clang-format over astyle for automatic formatting; Makefile command changed to make format from make style.
  • Improved test harness.

Notes

Please cite the following works when using this software.

Files

CEED/libCEED-v0.11.0.zip

Files (3.9 MB)

Name Size Download all
md5:00784e159fe1eb9b297cc064fd2eae5f
3.9 MB Preview Download

Additional details

Related works