| Name | Modified | Size | Downloads / 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
CeedOperatorCreateAtPointswhich evaluates theCeedQFunctionat arbitrary locations in each element, for use in Particle in Cell, Material Point Method, and similar methods. - Add
CeedElemRestrictionGetLLayoutto provide L-vector layout for stridedCeedElemRestrictioncreated withCEED_BACKEND_STRIDES. - Add
CeedVectorReturnCeedand similar when parentCeedcontext for a libCEED object is only needed once in a calling scope. - Enable
#pragma oncefor 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/barand defines set withCeedAddJitDefine(ceed, "foo=bar")will be used to set-Dfoo=bar. - Added non-tensor basis support to code generation backends
/gpu/cuda/genand/gpu/hip/gen. - Added support to code generation backends
/gpu/cuda/genand/gpu/hip/genfor 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
CeedOperatorassembly for operators with multiple active fields with different bases for CPU backends and/gpu/cuda/refand/gpu/hip/genbackends. - Add
CeedVectorFilterto zero out components of aCeedVectorthat have absolute value below a specified threshold value. - Add
CeedOperatorSetEnableCudaGraphfor CUDA Graph capture/replay on/gpu/cuda/gencomposite operators. Enabled by default; useCEED_CUDA_ENABLE_GRAPH=0to turn off. - Add string names of
ElemRestrictionTypes for human-readable output. - Add
/cpu/self/sve/serialand/cpu/self/sve/blockedvector-length-agnostic ARM SVE CPU backends. - Add
/cpu/self/gen/serialand/cpu/self/gen/blockedCPU 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 variablesCEED_CPU_JIT_CXXandCEED_CPU_JIT_OPT, respectively. - Add unified environment variable interface. Supported variables are shown with
CeedView()and can be get/set programmatically withCeedGet*()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
CeedBasisSetUseEvenOddper basis or theCEED_BASIS_USE_EVEN_ODDenvironment variable to turn it off. - Add support for user-defined cache directory for
/cpu/self/genand 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 viaCeedGetCacheBaseDirandCeedSetCacheBaseDir, respectively. - Add
CeedElemRestrictionGetBlockedElemRestrictionto prevent duplicate blockedCeedElemRestrictioncreation in CPU backends. - Add
/cpu/self/sme/serialand/cpu/self/sme/blockedARM Scalable Matrix Extension (SME) CPU backends with SME outer-product instructions for tensor contractions.
Interface changes
- Add
boolfield type forCeedQFunctionContextand related interfaces to useboolfields. CEED_BASIS_COLLOCATEDremoved; users should only useCEED_BASIS_NONE.- Remove unneeded pointer for
CeedElemRestrictionGetELayout. - Change QFunction source include file handling in JiT compilers
- Add
CEED_RUNNING_JIT_PASScompiler 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
- Add
- Require use of
Ceed*Destroy()on Ceed objects returned fromCeed*Get*(). - Rename
CeedCompositeOperatorCreate()toCeedOperatorCreateComposite()for uniformity. - Rename
CeedCompositeOperator*()toCeedOperatorComposite*()for uniformity. - Add
build_objectsparameter toCeedOperatorLinearAssembleQFunctionBuildOrUpdateFallbackto 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, andCeedOperatorLinearAssemblePointBlockDiagonalGetFlopsEstimateto estimate FLOPs for linear operator assembly. - Add
CeedBasisGetChebyshevDatato access interpolation data data from DoFs to Chebyshev polynomials and reduce duplicated code. - Add
CeedBasisHasCollocatedGradto check whether collocated gradient is suppported for aCeedBasis. - Rename
CeedBasisGetCollocatedGradtoCeedBasisGetCollocatedGrad1Dand change signature to takeconst 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)