Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends

LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT > Class Template Reference

#include <soagrid.h>

Inherits GridBase< CELL, TOPOLOGY::DIM >.

Collaboration diagram for LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef CELL CellType
typedef TOPOLOGY Topology
typedef LibFlatArray::soa_grid
< CELL > 
Delegate
typedef
APITraits::SelectStencil< CELL >
::Value 
Stencil

Public Member Functions

 SoAGrid (const CoordBox< DIM > &box=CoordBox< DIM >(), const CELL &defaultCell=CELL(), const CELL &edgeCell=CELL(), const Coord< DIM > &topologicalDimensions=Coord< DIM >())
virtual void set (const Coord< DIM > &absoluteCoord, const CELL &cell)
virtual void set (const Streak< DIM > &streak, const CELL *cells)
virtual CELL get (const Coord< DIM > &absoluteCoord) const
virtual void get (const Streak< DIM > &streak, CELL *cells) const
virtual void setEdge (const CELL &cell)
virtual const CELL & getEdge () const
const Coord< 3 > & getEdgeRadii () const
virtual CoordBox< DIMboundingBox () const
template<typename FUNCTOR >
void callback (FUNCTOR functor) const
template<typename FUNCTOR >
void callback (SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT > *newGrid, FUNCTOR functor) const
void saveRegion (char *target, const Region< DIM > &region) const
void loadRegion (const char *source, const Region< DIM > &region)

Static Public Attributes

static const int DIM = TOPOLOGY::DIM
static const int AGGREGATED_MEMBER_SIZE = LibFlatArray::aggregated_member_size<CELL>::VALUE
 Accumulated size of all members.

Protected Member Functions

void saveMemberImplementation (char *target, const Selector< CELL > &selector, const Region< DIM > &region) const
void loadMemberImplementation (const char *source, const Selector< CELL > &selector, const Region< DIM > &region)

Private Member Functions

CELL delegateGet (const Coord< 1 > &coord) const
CELL delegateGet (const Coord< 2 > &coord) const
CELL delegateGet (const Coord< 3 > &coord) const
void delegateGet (const Coord< 1 > &coord, CELL *cells, int count) const
void delegateGet (const Coord< 2 > &coord, CELL *cells, int count) const
void delegateGet (const Coord< 3 > &coord, CELL *cells, int count) const
void delegateSet (const Coord< 1 > &coord, const CELL &cell)
void delegateSet (const Coord< 2 > &coord, const CELL &cell)
void delegateSet (const Coord< 3 > &coord, const CELL &cell)
void delegateSet (const Coord< 1 > &coord, const CELL *cells, int count)
void delegateSet (const Coord< 2 > &coord, const CELL *cells, int count)
void delegateSet (const Coord< 3 > &coord, const CELL *cells, int count)

Static Private Member Functions

static Coord< 3 > calcEdgeRadii ()

Private Attributes

Delegate delegate
Coord< 3 > edgeRadii
Coord< 3 > actualDimensions
CELL edgeCell
CoordBox< DIMbox
Coord< DIMtopoDimensions

Friends

class SoAGridTest

template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
class LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >


Member Typedef Documentation

template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
typedef CELL LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::CellType
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
typedef LibFlatArray::soa_grid<CELL> LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::Delegate
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
typedef APITraits::SelectStencil<CELL>::Value LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::Stencil
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
typedef TOPOLOGY LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::Topology

Constructor & Destructor Documentation

template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::SoAGrid ( const CoordBox< DIM > &  box = CoordBox<DIM>(),
const CELL &  defaultCell = CELL(),
const CELL &  edgeCell = CELL(),
const Coord< DIM > &  topologicalDimensions = Coord<DIM>() 
) [inline, explicit]

Member Function Documentation

template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
virtual CoordBox<DIM> LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::boundingBox (  )  const [inline, virtual]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
static Coord<3> LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::calcEdgeRadii (  )  [inline, static, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
template<typename FUNCTOR >
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::callback ( FUNCTOR  functor  )  const [inline]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
template<typename FUNCTOR >
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::callback ( SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT > *  newGrid,
FUNCTOR  functor 
) const [inline]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
CELL LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateGet ( const Coord< 1 > &  coord  )  const [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
CELL LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateGet ( const Coord< 2 > &  coord  )  const [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
CELL LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateGet ( const Coord< 3 > &  coord  )  const [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateGet ( const Coord< 1 > &  coord,
CELL *  cells,
int  count 
) const [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateGet ( const Coord< 2 > &  coord,
CELL *  cells,
int  count 
) const [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateGet ( const Coord< 3 > &  coord,
CELL *  cells,
int  count 
) const [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateSet ( const Coord< 2 > &  coord,
const CELL &  cell 
) [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateSet ( const Coord< 1 > &  coord,
const CELL &  cell 
) [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateSet ( const Coord< 3 > &  coord,
const CELL *  cells,
int  count 
) [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateSet ( const Coord< 3 > &  coord,
const CELL &  cell 
) [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateSet ( const Coord< 1 > &  coord,
const CELL *  cells,
int  count 
) [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegateSet ( const Coord< 2 > &  coord,
const CELL *  cells,
int  count 
) [inline, private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
virtual CELL LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::get ( const Coord< DIM > &  absoluteCoord  )  const [inline, virtual]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
virtual void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::get ( const Streak< DIM > &  streak,
CELL *  cells 
) const [inline, virtual]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
virtual const CELL& LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::getEdge (  )  const [inline, virtual]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
const Coord<3>& LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::getEdgeRadii (  )  const [inline]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::loadMemberImplementation ( const char *  source,
const Selector< CELL > &  selector,
const Region< DIM > &  region 
) [inline, protected, virtual]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::loadRegion ( const char *  source,
const Region< DIM > &  region 
) [inline]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::saveMemberImplementation ( char *  target,
const Selector< CELL > &  selector,
const Region< DIM > &  region 
) const [inline, protected, virtual]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::saveRegion ( char *  target,
const Region< DIM > &  region 
) const [inline]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
virtual void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::set ( const Streak< DIM > &  streak,
const CELL *  cells 
) [inline, virtual]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
virtual void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::set ( const Coord< DIM > &  absoluteCoord,
const CELL &  cell 
) [inline, virtual]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
virtual void LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::setEdge ( const CELL &  cell  )  [inline, virtual]

Friends And Related Function Documentation

template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
friend class SoAGridTest [friend]

Member Data Documentation

template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
Coord<3> LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::actualDimensions [private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
const int LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::AGGREGATED_MEMBER_SIZE = LibFlatArray::aggregated_member_size<CELL>::VALUE [static]

Accumulated size of all members.

Note that this may be lower than sizeof(CELL) as the compiler may add padding within a struct/class to ensure alignment.

Referenced by LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::loadRegion(), and LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::saveRegion().

template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
CoordBox<DIM> LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::box [private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
Delegate LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::delegate [private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
const int LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::DIM = TOPOLOGY::DIM [static]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
CELL LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::edgeCell [private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
Coord<3> LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::edgeRadii [private]
template<typename CELL, typename TOPOLOGY = Topologies::Cube<2>::Topology, bool TOPOLOGICALLY_CORRECT = false>
Coord<DIM> LibGeoDecomp::SoAGrid< CELL, TOPOLOGY, TOPOLOGICALLY_CORRECT >::topoDimensions [private]

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