libCEED

CEED Library: Code for Efficient Extensible Discretizations

BSD-2-CLAUSE License

Downloads
440
Stars
179
Committers
43

Bot releases are visible (Hide)

libCEED - v0.12.0 Latest Release

Published by jedbrown 12 months ago

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.
libCEED - v0.11.0

Published by jedbrown almost 2 years ago

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.
libCEED - v0.10.1

Published by jeremylt over 2 years ago

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

libCEED - v0.10.0

Published by jeremylt over 2 years ago

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

libCEED - v0.9.0

Published by jedbrown over 3 years ago

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

libCEED - v0.8

Published by jedbrown over 3 years ago

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.

libCEED - v0.7

Published by jedbrown about 4 years ago

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

libCEED - v0.6

Published by jedbrown over 4 years ago

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

libCEED - v0.5

Published by jedbrown about 5 years ago

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.

libCEED - v0.4

Published by jedbrown over 5 years ago

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

libCEED - v0.2.1

Published by tzanio about 6 years ago

libCEED 0.2.1

libCEED - v0.3

Published by jedbrown about 6 years ago

Notable features include active/passive field interface, support for non-tensor bases, backend optimization, improved Fortran interface, and more complete tests.

libCEED - v0.2

Published by jedbrown over 6 years ago

libCEED -

Published by tzanio almost 7 years ago

Package Rankings
Top 12.46% on Pypi.org
Top 13.24% on Spack.io
Top 8.17% on Proxy.golang.org
Top 14.44% on Juliahub.com
Top 19.44% on Crates.io
Badges
Extracted from project README
GitHub Actions GitLab-CI Code coverage BSD-2-Clause Documentation JOSS paper Binder