Block-Structured AMR Software Framework
amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt > Struct Template Reference

#include <AMReX_ParticleTile.H>

Public Types

using ParticleType = T_ParticleType
 
using ParticleRefType = T_ParticleType &
 
using Self = ParticleTileData< ParticleType, NAR, NAI >
 
using SuperParticleType = Particle< NStructReal+NAR, NStructInt+NAI >
 
using AOS_PTR = std::conditional_t< T_ParticleType::is_soa_particle, void *AMREX_RESTRICT, ParticleType *AMREX_RESTRICT >
 

Public Member Functions

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE ParticleReal & pos (const int dir, const int index) const &
 
AMREX_GPU_HOST_DEVICEdecltype(auto) AMREX_FORCE_INLINE id (const int index) const &
 
AMREX_GPU_HOST_DEVICEdecltype(auto) AMREX_FORCE_INLINE cpu (const int index) const &
 
AMREX_GPU_HOST_DEVICEdecltype(auto) AMREX_FORCE_INLINE idcpu (const int index) const &
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE ParticleReal * rdata (const int attribute_index) const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE intidata (const int attribute_index) const
 
AMREX_GPU_HOST_DEVICEdecltype(auto) AMREX_FORCE_INLINE operator[] (const int index) const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void packParticleData (char *buffer, int src_index, std::size_t dst_offset, const int *comm_real, const int *comm_int) const noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void unpackParticleData (const char *buffer, Long src_offset, int dst_index, const int *comm_real, const int *comm_int) const noexcept
 
template<typename T = ParticleType, std::enable_if_t<!T::is_soa_particle, int > = 0>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE SuperParticleType getSuperParticle (int index) const noexcept
 
template<typename T = ParticleType, std::enable_if_t< T::is_soa_particle, int > = 0>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE SuperParticleType getSuperParticle (int index) const noexcept
 
template<typename T = ParticleType, std::enable_if_t<!T::is_soa_particle, int > = 0>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void setSuperParticle (const SuperParticleType &sp, int index) const noexcept
 
template<typename T = ParticleType, std::enable_if_t< T::is_soa_particle, int > = 0>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void setSuperParticle (const SuperParticleType &sp, int index) const noexcept
 

Public Attributes

Long m_size
 
AOS_PTR m_aos
 
uint64_t * m_idcpu
 
GpuArray< ParticleReal *, NARm_rdata
 
GpuArray< int *, NAIm_idata
 
int m_num_runtime_real
 
int m_num_runtime_int
 
ParticleReal *AMREX_RESTRICT *AMREX_RESTRICT m_runtime_rdata
 
int *AMREX_RESTRICT *AMREX_RESTRICT m_runtime_idata
 

Static Public Attributes

static constexpr int NAR = NArrayReal
 
static constexpr int NAI = NArrayInt
 
static constexpr int NStructReal = ParticleType::NReal
 
static constexpr int NStructInt = ParticleType::NInt
 
static constexpr bool is_particle_tile_data = true
 

Member Typedef Documentation

◆ AOS_PTR

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
using amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::AOS_PTR = std::conditional_t<T_ParticleType::is_soa_particle, void * AMREX_RESTRICT, ParticleType * AMREX_RESTRICT>

◆ ParticleRefType

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
using amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::ParticleRefType = T_ParticleType&

◆ ParticleType

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
using amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::ParticleType = T_ParticleType

◆ Self

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
using amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::Self = ParticleTileData<ParticleType, NAR, NAI>

◆ SuperParticleType

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
using amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::SuperParticleType = Particle<NStructReal+NAR, NStructInt+NAI>

Member Function Documentation

◆ cpu()

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AMREX_GPU_HOST_DEVICEdecltype(auto) AMREX_FORCE_INLINE amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::cpu ( const int  index) const &
inline

◆ getSuperParticle() [1/2]

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
template<typename T = ParticleType, std::enable_if_t<!T::is_soa_particle, int > = 0>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE SuperParticleType amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::getSuperParticle ( int  index) const
inlinenoexcept

◆ getSuperParticle() [2/2]

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
template<typename T = ParticleType, std::enable_if_t< T::is_soa_particle, int > = 0>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE SuperParticleType amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::getSuperParticle ( int  index) const
inlinenoexcept

◆ id()

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AMREX_GPU_HOST_DEVICEdecltype(auto) AMREX_FORCE_INLINE amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::id ( const int  index) const &
inline

◆ idata()

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int* amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::idata ( const int  attribute_index) const
inline

◆ idcpu()

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AMREX_GPU_HOST_DEVICEdecltype(auto) AMREX_FORCE_INLINE amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::idcpu ( const int  index) const &
inline

◆ operator[]()

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AMREX_GPU_HOST_DEVICEdecltype(auto) AMREX_FORCE_INLINE amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::operator[] ( const int  index) const
inline

◆ packParticleData()

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::packParticleData ( char *  buffer,
int  src_index,
std::size_t  dst_offset,
const int comm_real,
const int comm_int 
) const
inlinenoexcept

◆ pos()

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE ParticleReal& amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::pos ( const int  dir,
const int  index 
) const &
inline

◆ rdata()

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE ParticleReal* amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::rdata ( const int  attribute_index) const
inline

◆ setSuperParticle() [1/2]

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
template<typename T = ParticleType, std::enable_if_t<!T::is_soa_particle, int > = 0>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::setSuperParticle ( const SuperParticleType sp,
int  index 
) const
inlinenoexcept

◆ setSuperParticle() [2/2]

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
template<typename T = ParticleType, std::enable_if_t< T::is_soa_particle, int > = 0>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::setSuperParticle ( const SuperParticleType sp,
int  index 
) const
inlinenoexcept

◆ unpackParticleData()

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::unpackParticleData ( const char *  buffer,
Long  src_offset,
int  dst_index,
const int comm_real,
const int comm_int 
) const
inlinenoexcept

Member Data Documentation

◆ is_particle_tile_data

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
constexpr bool amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::is_particle_tile_data = true
staticconstexpr

◆ m_aos

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
AOS_PTR amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::m_aos

◆ m_idata

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
GpuArray<int*, NAI> amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::m_idata

◆ m_idcpu

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
uint64_t* amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::m_idcpu

◆ m_num_runtime_int

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
int amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::m_num_runtime_int

◆ m_num_runtime_real

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
int amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::m_num_runtime_real

◆ m_rdata

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
GpuArray<ParticleReal*, NAR> amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::m_rdata

◆ m_runtime_idata

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
int* AMREX_RESTRICT* AMREX_RESTRICT amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::m_runtime_idata

◆ m_runtime_rdata

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
ParticleReal* AMREX_RESTRICT* AMREX_RESTRICT amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::m_runtime_rdata

◆ m_size

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
Long amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::m_size

◆ NAI

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
constexpr int amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::NAI = NArrayInt
staticconstexpr

◆ NAR

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
constexpr int amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::NAR = NArrayReal
staticconstexpr

◆ NStructInt

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
constexpr int amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::NStructInt = ParticleType::NInt
staticconstexpr

◆ NStructReal

template<typename T_ParticleType , int NArrayReal, int NArrayInt>
constexpr int amrex::ParticleTileData< T_ParticleType, NArrayReal, NArrayInt >::NStructReal = ParticleType::NReal
staticconstexpr

The documentation for this struct was generated from the following file: