-
Notifications
You must be signed in to change notification settings - Fork 50
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.
The Cajita library for computations on logically rectilinear grids has been added to Cabana for particle-grid capabilities and will continue to be integrated.
-
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