Cabana 0.8.0-dev
 
Loading...
Searching...
No Matches
Cabana_Slice.hpp File Reference

Slice a single particle property from an AoSoA. More...

#include <Cabana_Types.hpp>
#include <Cabana_Utils.hpp>
#include <impl/Cabana_Index.hpp>
#include <impl/Cabana_TypeTraits.hpp>
#include <Kokkos_Core.hpp>
#include <cstdlib>
#include <string>
#include <type_traits>
Include dependency graph for Cabana_Slice.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Kokkos::LayoutCabanaSlice< SOASTRIDE, VLEN, DIM0, DIM1, DIM2, DIM3, DIM4, DIM5 >
 Cabana Slice layout. More...
 
class  Cabana::Slice< DataType, MemorySpace, MemoryAccessType, VectorLength, Stride >
 A slice of an array-of-structs-of-arrays with data access to a single multidimensional member. More...
 
struct  Cabana::is_slice< T >
 Slice static type checker. More...
 

Namespaces

namespace  Cabana
 Core: particle data structures and algorithms.
 

Functions

template<class ExecutionSpace, class ViewType, class SliceType>
void Cabana::copySliceToView (ExecutionSpace exec_space, ViewType &view, const SliceType &slice, const std::size_t begin, const std::size_t end, typename std::enable_if< 2==SliceType::kokkos_view::traits::dimension::rank, int * >::type=0)
 Copy from slice to View. Rank-0.
 
template<class ExecutionSpace, class ViewType, class SliceType>
void Cabana::copySliceToView (ExecutionSpace exec_space, ViewType &view, const SliceType &slice, const std::size_t begin, const std::size_t end, typename std::enable_if< 3==SliceType::kokkos_view::traits::dimension::rank, int * >::type=0)
 Copy from slice to View. Rank-1.
 
template<class ExecutionSpace, class ViewType, class SliceType>
void Cabana::copySliceToView (ExecutionSpace exec_space, ViewType &view, const SliceType &slice, const std::size_t begin, const std::size_t end, typename std::enable_if< 4==SliceType::kokkos_view::traits::dimension::rank, int * >::type=0)
 Copy from slice to View. Rank-2.
 
template<class ViewType, class SliceType>
void Cabana::copySliceToView (ViewType &view, const SliceType &slice, const std::size_t begin, const std::size_t end)
 Copy from slice to View with default execution space.
 
template<class ExecutionSpace, class SliceType, class ViewType>
void Cabana::copyViewToSlice (ExecutionSpace exec_space, SliceType &slice, const ViewType &view, const std::size_t begin, const std::size_t end, typename std::enable_if< 2==SliceType::kokkos_view::traits::dimension::rank, int * >::type=0)
 Copy from View to slice. Rank-0.
 
template<class ExecutionSpace, class SliceType, class ViewType>
void Cabana::copyViewToSlice (ExecutionSpace exec_space, SliceType &slice, const ViewType &view, const std::size_t begin, const std::size_t end, typename std::enable_if< 3==SliceType::kokkos_view::traits::dimension::rank, int * >::type=0)
 Copy from View to slice. Rank-1.
 
template<class ExecutionSpace, class SliceType, class ViewType>
void Cabana::copyViewToSlice (ExecutionSpace exec_space, SliceType &slice, const ViewType &view, const std::size_t begin, const std::size_t end, typename std::enable_if< 4==SliceType::kokkos_view::traits::dimension::rank, int * >::type=0)
 Copy from View to slice. Rank-2.
 
template<class ViewType, class SliceType>
void Cabana::copyViewToSlice (SliceType &slice, const ViewType &view, const std::size_t begin, const std::size_t end)
 Copy from View to slice with default execution space.
 
template<class SliceType>
void Cabana::checkSize (SliceType slice, const std::size_t size, typename std::enable_if< is_slice< SliceType >::value, int >::type *=0)
 Check slice size (differs from Kokkos View).
 
template<class ViewType>
void Cabana::checkSize (ViewType view, const std::size_t size, typename std::enable_if< Kokkos::is_view< ViewType >::value, int >::type *=0)
 Check View size (differs from Slice).
 
template<class SliceType>
auto Cabana::size (SliceType slice, typename std::enable_if< is_slice< SliceType >::value, int >::type *=0)
 Check slice size (differs from Kokkos View).
 
template<class ViewType>
auto Cabana::size (ViewType view, typename std::enable_if< Kokkos::is_view< ViewType >::value, int >::type *=0)
 Check View size (differs from Slice).
 

Detailed Description

Slice a single particle property from an AoSoA.