DDC 0.0.0

a discrete domain computation library


DDC is the discrete domain computation library, a C++-17 library that aims to offer to the C++/MPI world an equivalent to the xarray.DataArray/dask.Array python environment. Where these two libraries are based on numpy, DDC relies on Kokkos and mdspan to offer CPU/GPU performance-portable multi-dimensional arrays and iterators.

DDC aims to offer abstractions to represent:

  • tagged continuous dimensions,
  • discretizations of these (multiple kinds of meshes, function spaces, Fourier, etc.),
  • domains in these discretized dimensions,
  • associating data to the elements of these discrete domains,
  • efficient distribution and iteration over this data.

All these abstractions are handled at compilation using C++ template meta-programming to ensure zero overhead at execution and enable developers to change their design choices (eg. from a regular mesh to a non-uniform one) with performance portability.

Discover more

Join us!

If you like the project, leave us a ⭐star⭐ on Github. And of course, we would love to talk with you on our Slack channel https://ddc-lib.slack.com/.