-
Notifications
You must be signed in to change notification settings - Fork 60
2 Programming Guide
NOTE: The data on these pages is provisional and but attempts to stay up to date with latest release of the library. Please open an issue if something is misleading or could be better clarified.
The Cabana programming guide covers core concepts and directed examples of using the library API. Cabana is built on Kokkos - understanding of Kokkos concepts and syntax is a necessary prerequisite (Kokkos wiki). Other optional libraries are used for specific purposes within Cabana as shown in the figure below, each with a separate tutorial example.

Some relevant similarities and differences between Cabana and Kokkos are noted here.
-
Particle data structures:
-
Particle algorithms:
Note: these are likely best understood in this order.
Optional grid and particle-grid infrastructure is included in Cabana through the Cajita subpackage (formerly a separate library).
Cajita provides logically rectilinear grids, algorithms and parallel iteration over those grids, and particle-grid algorithms.
-
Uniform grid data structures
-
Grid algorithms
- Grid Parallel
- FFT (Experimental) through optional heFFTe library
- Structured solvers
- Structured solvers through optional HYPRE library
-
Grid MPI communication
- Halo
- Load balancing (Experimental) through optional ALL library
-
Particle-grid algorithms
-
Sparse Grid (in progress)
Cabana - A Co-Designed Library for Exascale Particle Simulations