Download Latest Version v1.0.1-python source code.zip (4.4 MB) Google Add to Preferred Sources
Home / v1.0.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-10-07 6.0 kB
v1.0.0 source code.tar.gz 2026-10-07 3.6 MB
v1.0.0 source code.zip 2026-10-07 4.4 MB
Totals: 3 Items   8.0 MB 0

This is the v1.0.0 release of libCEED. In accordance with SEMVAR, future releases that break the API or ABI will cause a major version increment. The changes from v0.12 are summarized below:

New features

  • Add CeedOperatorCreateAtPoints which evaluates the CeedQFunction at arbitrary locations in each element, for use in Particle in Cell, Material Point Method, and similar methods.
  • Add CeedElemRestrictionGetLLayout to provide L-vector layout for strided CeedElemRestriction created with CEED_BACKEND_STRIDES.
  • Add CeedVectorReturnCeed and similar when parent Ceed context for a libCEED object is only needed once in a calling scope.
  • Enable #pragma once for all JiT source; remove duplicate includes in JiT source string before compilation.
  • Allow user to set additional compiler options for CUDA and HIP JiT. Specifically, directories set with CeedAddJitSourceRoot(ceed, "foo/bar") will be used to set -Ifoo/bar and defines set with CeedAddJitDefine(ceed, "foo=bar") will be used to set -Dfoo=bar.
  • Added non-tensor basis support to code generation backends /gpu/cuda/gen and /gpu/hip/gen.
  • Added support to code generation backends /gpu/cuda/gen and /gpu/hip/gen for operators with both tensor and non-tensor bases.
  • Add CeedGetGitVersion() to access the Git commit and dirty state of the repository at build time.
  • Add CeedGetBuildConfiguration() to access compilers, flags, and related information about the build environment.
  • Add support for full CeedOperator assembly for operators with multiple active fields with different bases for CPU backends and /gpu/cuda/ref and /gpu/hip/gen backends.
  • Add CeedVectorFilter to zero out components of a CeedVector that have absolute value below a specified threshold value.
  • Add CeedOperatorSetEnableCudaGraph for CUDA Graph capture/replay on /gpu/cuda/gen composite operators. Enabled by default; use CEED_CUDA_ENABLE_GRAPH=0 to turn off.
  • Add string names of ElemRestrictionTypes for human-readable output.
  • Add /cpu/self/sve/serial and /cpu/self/sve/blocked vector-length-agnostic ARM SVE CPU backends.
  • Add /cpu/self/gen/serial and /cpu/self/gen/blocked CPU just-in-time (JiT) compiled backends, inspired by the CUDA and ROCm JiT complied backends. JiT compiler and optimizer options can be set at compile or runtime with the environment variables CEED_CPU_JIT_CXX and CEED_CPU_JIT_OPT, respectively.
  • Add unified environment variable interface. Supported variables are shown with CeedView() and can be get/set programmatically with CeedGet*() functions.
  • Add even-odd (centro-symmetry) decomposition for tensor contractions, which halves the arithmetic when the 1D basis matrix is centro-symmetric. This reorders the summation, so results move by about an ulp; use CeedBasisSetUseEvenOdd per basis or the CEED_BASIS_USE_EVEN_ODD environment variable to turn it off.
  • Add support for user-defined cache directory for /cpu/self/gen and CUDA Clang compilation pipelines. Defaults to $CEED_CACHE_BASE_DIR, $XDG_CACHE_HOME, or $HOME/.cache, in that order, and can be accessed and set programmatically via CeedGetCacheBaseDir and CeedSetCacheBaseDir, respectively.
  • Add CeedElemRestrictionGetBlockedElemRestriction to prevent duplicate blocked CeedElemRestriction creation in CPU backends.
  • Add /cpu/self/sme/serial and /cpu/self/sme/blocked ARM Scalable Matrix Extension (SME) CPU backends with SME outer-product instructions for tensor contractions.

Interface changes

  • Add bool field type for CeedQFunctionContext and related interfaces to use bool fields.
  • CEED_BASIS_COLLOCATED removed; users should only use CEED_BASIS_NONE.
  • Remove unneeded pointer for CeedElemRestrictionGetELayout.
  • Change QFunction source include file handling in JiT compilers
    • Add CEED_RUNNING_JIT_PASS compiler definition for wrapping header files that device JiT compilers cannot read
    • Users should now prefer #include <ceed/types.h> rather than #include <ceed.h> in QFunction source files
  • Require use of Ceed*Destroy() on Ceed objects returned from Ceed*Get*().
  • Rename CeedCompositeOperatorCreate() to CeedOperatorCreateComposite() for uniformity.
  • Rename CeedCompositeOperator*() to CeedOperatorComposite*() for uniformity.
  • Add build_objects parameter to CeedOperatorLinearAssembleQFunctionBuildOrUpdateFallback to allow for passing uninitialized vectors and restrictions
  • Move JiT helper functions only required by SYCL backends to ceed/jit-tools-deprecated.h. These functions will be removed when the SYCL backends are updated to reflect the improvements in the CUDA and HIP backends.
  • Add CeedOperatorLinearAssembleGetFlopsEstimate, CeedOperatorLinearAssembleDiagonalGetFlopsEstimate, and CeedOperatorLinearAssemblePointBlockDiagonalGetFlopsEstimate to estimate FLOPs for linear operator assembly.
  • Add CeedBasisGetChebyshevData to access interpolation data data from DoFs to Chebyshev polynomials and reduce duplicated code.
  • Add CeedBasisHasCollocatedGrad to check whether collocated gradient is suppported for a CeedBasis.
  • Rename CeedBasisGetCollocatedGrad to CeedBasisGetCollocatedGrad1D and change signature to take const CeedScalar ** like other getters; the output array is set to an internally cached array.

Examples

  • Add deal.II example with CEED BP suite.

Maintainability

  • OCCA backends were retired.
  • Use clang-tidy to automatically fix if-else blocks which are missing braces.
  • Fixed bugs with CeedRegistryGetList() and clarified internals.
  • All environment variables are now defined in a central header: include/ceed/ceed-env-list.h. This header is used to generate all code needed to set and get the environment variables.

Documentation PDF: libCEED.pdf (github.com)

Source: README.md, updated 2026-10-07