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

LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE > Class Template Reference

Abstract interface class. More...

#include <stepper.h>

Inherited by LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >, LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >, and LibGeoDecomp::HiParSimulator::OpenCLStepper< CELL_TYPE >.

Collaboration diagram for LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >:
Collaboration graph
[legend]

List of all members.

Public Types

enum  PatchType { GHOST = 0, INNER_SET = 1 }
typedef
APITraits::SelectTopology
< CELL_TYPE >::Value 
Topology
typedef APITraits::SelectSoA
< CELL_TYPE >::Value 
SupportsSoA
typedef GridTypeSelector
< CELL_TYPE, Topology, true,
SupportsSoA >::Value 
GridType
typedef PartitionManager
< Topology
PartitionManagerType
typedef boost::shared_ptr
< PatchProvider< GridType > > 
PatchProviderPtr
typedef boost::shared_ptr
< PatchAccepter< GridType > > 
PatchAccepterPtr
typedef std::deque
< PatchProviderPtr
PatchProviderList
typedef std::deque
< PatchAccepterPtr
PatchAccepterList
typedef std::vector
< PatchAccepterPtr
PatchAccepterVec
typedef std::vector
< PatchProviderPtr
PatchProviderVec

Public Member Functions

 Stepper (const boost::shared_ptr< PartitionManagerType > &partitionManager, boost::shared_ptr< Initializer< CELL_TYPE > > initializer)
virtual ~Stepper ()
virtual void update (std::size_t nanoSteps)=0
virtual const GridTypegrid () const =0
virtual std::pair< std::size_t,
std::size_t > 
currentStep () const =0
 returns current step and nanoStep
void addPatchProvider (const PatchProviderPtr &patchProvider, const PatchType &patchType)
void addPatchAccepter (const PatchAccepterPtr &patchAccepter, const PatchType &patchType)
const Chronometerstatistics () const

Static Public Attributes

static const int DIM = Topology::DIM

Protected Member Functions

void guessOffset (Coord< DIM > *offset, Coord< DIM > *dimensions)
 calculates a (mostly) suitable offset which (in conjuction with a DisplacedGrid) avoids having grids with a size equal to the whole simulation area on torus topologies.

Protected Attributes

boost::shared_ptr
< PartitionManagerType
partitionManager
boost::shared_ptr< Initializer
< CELL_TYPE > > 
initializer
PatchProviderList patchProviders [2]
PatchAccepterList patchAccepters [2]
Chronometer chronometer

Friends

class StepperTest

Detailed Description

template<typename CELL_TYPE>
class LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >

Abstract interface class.

Steppers contain some arbitrary region of the grid which they can update. IO and ghostzone communication are handled via PatchAccepter and PatchProvider objects.


Member Typedef Documentation

template<typename CELL_TYPE>
typedef GridTypeSelector<CELL_TYPE, Topology, true, SupportsSoA>::Value LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::GridType
template<typename CELL_TYPE>
typedef PartitionManager<Topology> LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::PartitionManagerType
template<typename CELL_TYPE>
typedef std::deque<PatchAccepterPtr> LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::PatchAccepterList
template<typename CELL_TYPE>
typedef boost::shared_ptr<PatchAccepter<GridType> > LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::PatchAccepterPtr
template<typename CELL_TYPE>
typedef std::vector<PatchAccepterPtr> LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::PatchAccepterVec
template<typename CELL_TYPE>
typedef std::deque<PatchProviderPtr> LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::PatchProviderList
template<typename CELL_TYPE>
typedef boost::shared_ptr<PatchProvider<GridType> > LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::PatchProviderPtr
template<typename CELL_TYPE>
typedef std::vector<PatchProviderPtr> LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::PatchProviderVec
template<typename CELL_TYPE>
typedef APITraits::SelectSoA<CELL_TYPE>::Value LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::SupportsSoA
template<typename CELL_TYPE>
typedef APITraits::SelectTopology<CELL_TYPE>::Value LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::Topology

Member Enumeration Documentation

template<typename CELL_TYPE>
enum LibGeoDecomp::HiParSimulator::Stepper::PatchType
Enumerator:
GHOST 
INNER_SET 

Constructor & Destructor Documentation

template<typename CELL_TYPE>
LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::Stepper ( const boost::shared_ptr< PartitionManagerType > &  partitionManager,
boost::shared_ptr< Initializer< CELL_TYPE > >  initializer 
) [inline]
template<typename CELL_TYPE>
virtual LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::~Stepper (  )  [inline, virtual]

Member Function Documentation

template<typename CELL_TYPE>
void LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::addPatchAccepter ( const PatchAccepterPtr patchAccepter,
const PatchType patchType 
) [inline]
template<typename CELL_TYPE>
void LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::addPatchProvider ( const PatchProviderPtr patchProvider,
const PatchType patchType 
) [inline]
template<typename CELL_TYPE>
virtual std::pair<std::size_t, std::size_t> LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::currentStep (  )  const [pure virtual]
template<typename CELL_TYPE>
virtual const GridType& LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::grid (  )  const [pure virtual]
template<typename CELL_TYPE>
void LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::guessOffset ( Coord< DIM > *  offset,
Coord< DIM > *  dimensions 
) [inline, protected]
template<typename CELL_TYPE>
const Chronometer& LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::statistics (  )  const [inline]
template<typename CELL_TYPE>
virtual void LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::update ( std::size_t  nanoSteps  )  [pure virtual]

Friends And Related Function Documentation

template<typename CELL_TYPE>
friend class StepperTest [friend]

Member Data Documentation

template<typename CELL_TYPE>
Chronometer LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::chronometer [protected]
template<typename CELL_TYPE>
const int LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::DIM = Topology::DIM [static]
template<typename CELL_TYPE>
boost::shared_ptr<Initializer<CELL_TYPE> > LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::initializer [protected]
template<typename CELL_TYPE>
boost::shared_ptr<PartitionManagerType> LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::partitionManager [protected]
template<typename CELL_TYPE>
PatchAccepterList LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::patchAccepters[2] [protected]
template<typename CELL_TYPE>
PatchProviderList LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::patchProviders[2] [protected]

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