Skip to content

Releases: CEED/libCEED

v0.12.0

01 Nov 13:54
v0.12.0
Compare
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
Compare
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
Compare
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
Compare
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
Compare
Choose a tag to compare

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

v0.8

01 Apr 06:32
v0.8
Compare
Choose a tag to compare

Support for matrix assembly (mainly intended for low order and coarse grids), new HIP and MAGMA backends with kernel fusion, Julia and Rust interfaces, static linking, better error recovery, and improvements to fluids and solids examples.

v0.7

30 Sep 03:43
v0.7
Compare
Choose a tag to compare

New HIP backend, revamped OCCA backend, restriction by offsets instead of blocked indices, improved solver ingredients, and numerous bug fixes and improvements to examples.

v0.6

30 Mar 06:11
v0.6
9e662d0
Compare
Choose a tag to compare

New documentation and examples, clean some rough points in interface, preconditioning ingredients, and improved MAGMA backend.

v0.5

19 Sep 04:16
v0.5
Compare
Choose a tag to compare

New cuda-gen backend achieves state-of-the-art performance using single-source QFunctions. Release also includes various performance improvements, bug fixes, new examples, and improved tests.

v0.4

01 Apr 06:14
v0.4
Compare
Choose a tag to compare

New backends, performance improvements, operator composition, and new examples.