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

Application-level particle storage and single particle access. More...

#include <Cabana_AoSoA.hpp>
#include <Cabana_Fields.hpp>
#include <Cabana_MemberTypes.hpp>
#include <Cabana_SoA.hpp>
#include <Cabana_Tuple.hpp>
#include <memory>
#include <string>
#include <type_traits>
Include dependency graph for Cabana_ParticleList.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Cabana::ParticleTraits< FieldTags >
 Extract AoSoA particle fields for ParticleList. More...
 
struct  Cabana::Particle< FieldTags >
 Single particle copy. Wraps a tuple copy of a particle. More...
 
struct  Cabana::ParticleView< VectorLength, FieldTags >
 Single SoA particle view. Wraps a view of the SoA the particle resides in. More...
 
class  Cabana::ParticleList< MemorySpace, VectorLength, FieldTags >
 List of particle fields stored in AoSoA. More...
 
struct  Cabana::is_particle_list_impl< class >
 
struct  Cabana::is_particle_list_impl< ParticleList< MemorySpace, VectorLength, FieldTags... > >
 
struct  Cabana::is_particle_list< T >
 ParticleList static type checker. More...
 

Namespaces

namespace  Cabana
 Core: particle data structures and algorithms.
 

Functions

template<class FieldTag, class... FieldTags, class... IndexTypes>
KOKKOS_FORCEINLINE_FUNCTION std::enable_if< sizeof...(IndexTypes)==FieldTag::rank, typenameParticle< FieldTags... >::tuple_type::templatemember_const_reference_type< TypeIndexer< FieldTag, FieldTags... >::index > >::type Cabana::get (const Particle< FieldTags... > &particle, FieldTag, IndexTypes... indices)
 Return a single element of a single field from indices.
 
template<class FieldTag, class... FieldTags, class... IndexTypes>
KOKKOS_FORCEINLINE_FUNCTION std::enable_if< sizeof...(IndexTypes)==FieldTag::rank, typenameParticle< FieldTags... >::tuple_type::templatemember_reference_type< TypeIndexer< FieldTag, FieldTags... >::index > >::type Cabana::get (Particle< FieldTags... > &particle, FieldTag, IndexTypes... indices)
 Return a single element of a single field from indices.
 
template<class FieldTag, class... FieldTags, class... IndexTypes, int VectorLength>
KOKKOS_FORCEINLINE_FUNCTION std::enable_if< sizeof...(IndexTypes)==FieldTag::rank, typenameParticleView< VectorLength, FieldTags... >::soa_type::templatemember_const_reference_type< TypeIndexer< FieldTag, FieldTags... >::index > >::type Cabana::get (const ParticleView< VectorLength, FieldTags... > &particle, FieldTag, IndexTypes... indices)
 Return a single element of a single field from indices.
 
template<class FieldTag, class... FieldTags, class... IndexTypes, int VectorLength>
KOKKOS_FORCEINLINE_FUNCTION std::enable_if< sizeof...(IndexTypes)==FieldTag::rank, typenameParticleView< VectorLength, FieldTags... >::soa_type::templatemember_reference_type< TypeIndexer< FieldTag, FieldTags... >::index > >::type Cabana::get (ParticleView< VectorLength, FieldTags... > &particle, FieldTag, IndexTypes... indices)
 Return a single element of a single field from indices.
 
template<class MemorySpace, int VectorLength, class... FieldTags>
auto Cabana::createParticleList (const std::string &label, ParticleTraits< FieldTags... >)
 ParticleList creation function.
 
template<class MemorySpace, class... FieldTags>
auto Cabana::createParticleList (const std::string &label, ParticleTraits< FieldTags... >)
 ParticleList creation function with default vector length.
 

Detailed Description

Application-level particle storage and single particle access.