Skip to content

Releases: CEED/libCEED

v1.0.0-rc.3

12 May 13:03
db96194

Choose a tag to compare

v1.0.0-rc.3 Pre-release
Pre-release

Release candidate for libCEED 1.0

v1.0.0-rc.2

04 May 15:16
bc0cf4a

Choose a tag to compare

v1.0.0-rc.2 Pre-release
Pre-release

Release candidate for libCEED 1.0

v1.0.0-rc.1

23 Jan 19:06
0016fb0

Choose a tag to compare

v1.0.0-rc.1 Pre-release
Pre-release

Initial release candidate for libCEED 1.0

v0.13.0-rc.2

09 Apr 15:27
7481867

Choose a tag to compare

v0.13.0-rc.2 Pre-release
Pre-release

Release candidate for v0.13.0

v0.13.0-rc.1

31 Mar 23:21
2f50400

Choose a tag to compare

v0.13.0-rc.1 Pre-release
Pre-release

Release candidate for v0.13.0

v0.12.0

01 Nov 13:54
v0.12.0

Choose a tag to compare

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 supports CeedOperator with multiple active bases.
  • Added CeedOperatorLinearAssemblePointBlockDiagonalSymbolic to create COO mapping for mapping out of {c:func}CeedOperatorLinearAssemblePointBlockDiagonal.
  • Added CeedBasisApplyAtPoints and CeedElemRestriction[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 and CeedElemRestrictionCreateOriented
  • Added support for non-tensor H(curl) finite element spaces with CeedBasisCreateHcurl and CeedElemRestrictionCreateCurlOriented
  • Update /cpu/self/memcheck/* backends to help verify CeedVector array access assumptions and CeedQFunction user output assumptions.

Interface changes

  • Update CeedOperatorContext* functions to CeedOperator*Context* functions for consistency.
  • Removed CeedBasisSetNumQuadraturePoints as redundant and bug-prone interface.
  • Update CEED_BASIS_COLLOCATED to CEED_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 from PetscFE, and various other internal maintainability updates.

v0.11.0

24 Dec 18:57
v0.11.0

Choose a tag to compare

Interface changes

  • Added CeedOperatorSetName for more readable CeedOperatorView output.
  • Added CeedBasisCreateProjection to facilitate interpolation between nodes for separate CeedBases.
  • Rename and move CeedCompositeOperatorGetNumSub and CeedCompositeOperatorGetSubList 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.

v0.10.1

11 Apr 23:11
v0.10.1
74532b2

Choose a tag to compare

Bugfix for GPU support - install JiT source files in install directory

v0.10.0

24 Mar 15:02
v0.10.0
d086b42

Choose a tag to compare

Single precision support, capability to assemble operators on GPUs, performance enhancements, various interface and error checking improvements, and mini-app improvements.

v0.9.0

07 Jul 16:45
v0.9.0

Choose a tag to compare

Portability improvements, GPU support for helper utility functions in QFunctions, bug fixes, Rust packaging, and mini-app improvements.