Public Types | Public Member Functions | Private Attributes

LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT > Class Template Reference

Similar to LinePointerNeighborhood, this class serves as a proxy for cells to acccess their neighbors during update. More...

#include <fixedneighborhood.h>

Collaboration diagram for LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef SOA_ACCESSOR_IN< CELL,
DIM_X, DIM_Y, DIM_Z, INDEX > 
SoAAccessorIn
typedef CELL Cell

Public Member Functions

__host__ __device__ FixedNeighborhood (SoAAccessorIn &accessor)
template<int X, int Y, int Z>
__host__ __device__ const
SOA_ACCESSOR_OUT< CELL,
LIBFLATARRAY_PARAMS > 
operator[] (FixedCoord< X, Y, Z >) const
void operator>> (CELL &cell) const
__host__ __device__ long & index ()
__host__ __device__ const long & index () const

Private Attributes

SoAAccessorInaccessor

Detailed Description

template<typename CELL, typename TOPOLOGY, long DIM_X, long DIM_Y, long DIM_Z, long INDEX, template< typename CELL2, long DIM_X2, long DIM_Y2, long DIM_Z2, long INDEX2 > class SOA_ACCESSOR_IN = LibFlatArray::soa_accessor, template< typename CELL3, long DIM_X3, long DIM_Y3, long DIM_Z3, long INDEX3 > class SOA_ACCESSOR_OUT = LibFlatArray::soa_accessor_light>
class LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >

Similar to LinePointerNeighborhood, this class serves as a proxy for cells to acccess their neighbors during update.

In contrast to CoordMap and LinePointerNeighborhood, class requires grid dimensions to be known at compile time. The benefit is that we can significantly reduce runtime overhead.


Member Typedef Documentation

template<typename CELL, typename TOPOLOGY, long DIM_X, long DIM_Y, long DIM_Z, long INDEX, template< typename CELL2, long DIM_X2, long DIM_Y2, long DIM_Z2, long INDEX2 > class SOA_ACCESSOR_IN = LibFlatArray::soa_accessor, template< typename CELL3, long DIM_X3, long DIM_Y3, long DIM_Z3, long INDEX3 > class SOA_ACCESSOR_OUT = LibFlatArray::soa_accessor_light>
typedef CELL LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >::Cell
template<typename CELL, typename TOPOLOGY, long DIM_X, long DIM_Y, long DIM_Z, long INDEX, template< typename CELL2, long DIM_X2, long DIM_Y2, long DIM_Z2, long INDEX2 > class SOA_ACCESSOR_IN = LibFlatArray::soa_accessor, template< typename CELL3, long DIM_X3, long DIM_Y3, long DIM_Z3, long INDEX3 > class SOA_ACCESSOR_OUT = LibFlatArray::soa_accessor_light>
typedef SOA_ACCESSOR_IN< CELL, DIM_X, DIM_Y, DIM_Z, INDEX> LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >::SoAAccessorIn

Constructor & Destructor Documentation

template<typename CELL, typename TOPOLOGY, long DIM_X, long DIM_Y, long DIM_Z, long INDEX, template< typename CELL2, long DIM_X2, long DIM_Y2, long DIM_Z2, long INDEX2 > class SOA_ACCESSOR_IN = LibFlatArray::soa_accessor, template< typename CELL3, long DIM_X3, long DIM_Y3, long DIM_Z3, long INDEX3 > class SOA_ACCESSOR_OUT = LibFlatArray::soa_accessor_light>
__host__ __device__ LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >::FixedNeighborhood ( SoAAccessorIn accessor  )  [inline, explicit]

Member Function Documentation

template<typename CELL, typename TOPOLOGY, long DIM_X, long DIM_Y, long DIM_Z, long INDEX, template< typename CELL2, long DIM_X2, long DIM_Y2, long DIM_Z2, long INDEX2 > class SOA_ACCESSOR_IN = LibFlatArray::soa_accessor, template< typename CELL3, long DIM_X3, long DIM_Y3, long DIM_Z3, long INDEX3 > class SOA_ACCESSOR_OUT = LibFlatArray::soa_accessor_light>
__host__ __device__ long& LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >::index (  )  [inline]
template<typename CELL, typename TOPOLOGY, long DIM_X, long DIM_Y, long DIM_Z, long INDEX, template< typename CELL2, long DIM_X2, long DIM_Y2, long DIM_Z2, long INDEX2 > class SOA_ACCESSOR_IN = LibFlatArray::soa_accessor, template< typename CELL3, long DIM_X3, long DIM_Y3, long DIM_Z3, long INDEX3 > class SOA_ACCESSOR_OUT = LibFlatArray::soa_accessor_light>
__host__ __device__ const long& LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >::index (  )  const [inline]
template<typename CELL, typename TOPOLOGY, long DIM_X, long DIM_Y, long DIM_Z, long INDEX, template< typename CELL2, long DIM_X2, long DIM_Y2, long DIM_Z2, long INDEX2 > class SOA_ACCESSOR_IN = LibFlatArray::soa_accessor, template< typename CELL3, long DIM_X3, long DIM_Y3, long DIM_Z3, long INDEX3 > class SOA_ACCESSOR_OUT = LibFlatArray::soa_accessor_light>
void LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >::operator>> ( CELL &  cell  )  const [inline]
template<typename CELL, typename TOPOLOGY, long DIM_X, long DIM_Y, long DIM_Z, long INDEX, template< typename CELL2, long DIM_X2, long DIM_Y2, long DIM_Z2, long INDEX2 > class SOA_ACCESSOR_IN = LibFlatArray::soa_accessor, template< typename CELL3, long DIM_X3, long DIM_Y3, long DIM_Z3, long INDEX3 > class SOA_ACCESSOR_OUT = LibFlatArray::soa_accessor_light>
template<int X, int Y, int Z>
__host__ __device__ const SOA_ACCESSOR_OUT<CELL, LIBFLATARRAY_PARAMS> LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >::operator[] ( FixedCoord< X, Y, Z >   )  const [inline]

Member Data Documentation

template<typename CELL, typename TOPOLOGY, long DIM_X, long DIM_Y, long DIM_Z, long INDEX, template< typename CELL2, long DIM_X2, long DIM_Y2, long DIM_Z2, long INDEX2 > class SOA_ACCESSOR_IN = LibFlatArray::soa_accessor, template< typename CELL3, long DIM_X3, long DIM_Y3, long DIM_Z3, long INDEX3 > class SOA_ACCESSOR_OUT = LibFlatArray::soa_accessor_light>
SoAAccessorIn& LibGeoDecomp::FixedNeighborhood< CELL, TOPOLOGY, DIM_X, DIM_Y, DIM_Z, INDEX, SOA_ACCESSOR_IN, SOA_ACCESSOR_OUT >::accessor [private]

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