Releases: CEED/libCEED
Releases · CEED/libCEED
v0.12.0
New features
- Added Sycl backends
/gpu/sycl/ref
,/gpu/sycl/shared
, and/gpu/sycl/gen
. - Added support for application codes which manage multiple
Ceed
objects, parallelized across OpenMP threads. - Update
CeedOperatorLinearAssembleDiagonal
to provide default implementation that supportsCeedOperator
with multiple active bases. - Added
CeedOperatorLinearAssemblePointBlockDiagonalSymbolic
to create COO mapping for mapping out of {c:func}CeedOperatorLinearAssemblePointBlockDiagonal
. - Added
CeedBasisApplyAtPoints
andCeedElemRestriction[Create, Apply]AtPoints
for evaluation of FE bases at arbitrary locations, such as material points. - Added support for non-tensor H(div) finite element spaces with
CeedBasisCreateHdiv
andCeedElemRestrictionCreateOriented
- Added support for non-tensor H(curl) finite element spaces with
CeedBasisCreateHcurl
andCeedElemRestrictionCreateCurlOriented
- Update
/cpu/self/memcheck/*
backends to help verifyCeedVector
array access assumptions andCeedQFunction
user output assumptions.
Interface changes
- Update
CeedOperatorContext*
functions toCeedOperator*Context*
functions for consistency. - Removed
CeedBasisSetNumQuadraturePoints
as redundant and bug-prone interface. - Update
CEED_BASIS_COLLOCATED
toCEED_BASIS_NONE
for clarity.
Examples
- Require PETSc version 3.20 or later.
- Add
DMSwarm
example demonstrating interpolation from background mesh to swarm points and projection from swarm points to background mesh.
Fluid Dynamics Example
- Updated restart and checkpointing interface.
- Add data-driven subgrid-stress model.
- Add differential filtering of solution.
- Add turbulence statistics collection over spanwise-symmetric geometries.
- Add Taylor-Green vortex initial condition.
- Add Riemann-based outflow boundary conditions.
- Added vortex shedding and flow past cylinder example, including calculations for lift, drag, and heat transfer.
- Add Internal Damping Layer (IDL) for helping turbulent simulation stability.
- Derive
CeedBasis
fromPetscFE
, and various other internal maintainability updates.
v0.11.0
Interface changes
- Added
CeedOperatorSetName
for more readableCeedOperatorView
output. - Added
CeedBasisCreateProjection
to facilitate interpolation between nodes for separateCeedBases
. - Rename and move
CeedCompositeOperatorGetNumSub
andCeedCompositeOperatorGetSubList
to public interface.
New features
- Update
/cpu/self/memcheck/*
backends to help verifyCeedQFunctionContext
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 toCEED_QFUNCTION_HELPER
andCEED_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 forCeedOperatorAssemblePointBlockDiagonal
. - 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
overastyle
for automatic formatting; Makefile command changed tomake format
frommake style
. - Improved test harness.