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

LibGeoDecomp::SerialSimulator< CELL_TYPE > Class Template Reference

SerialSimulator is the simplest implementation of the Simulator concept (or rather the MonolithicSimulator, to be exact). More...

#include <serialsimulator.h>

Inherits LibGeoDecomp::MonolithicSimulator< CELL_TYPE >.

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

List of all members.

Public Types

typedef MonolithicSimulator
< CELL_TYPE >::GridType 
GridBaseType
typedef MonolithicSimulator
< CELL_TYPE >::Topology 
Topology
typedef MonolithicSimulator
< CELL_TYPE >::WriterVector 
WriterVector
typedef APITraits::SelectSoA
< CELL_TYPE >::Value 
SupportsSoA
typedef GridTypeSelector
< CELL_TYPE, Topology, false,
SupportsSoA >::Value 
GridType
typedef Steerer< CELL_TYPE >
::SteererFeedback 
SteererFeedback

Public Member Functions

 SerialSimulator (Initializer< CELL_TYPE > *initializer)
 creates a SerialSimulator with the given initializer.
virtual ~SerialSimulator ()
virtual void step ()
 performs a single simulation step.
virtual void step (SteererFeedback *feedback)
virtual void run ()
 continue simulating until the maximum number of steps is reached.
virtual const GridBaseTypegetGrid ()
 returns the current grid.

Static Public Attributes

static const int DIM = Topology::DIM

Protected Member Functions

void nanoStep (const unsigned &nanoStep)
void handleOutput (WriterEvent event)
 notifies all registered Writers
void handleInput (SteererEvent event, SteererFeedback *feedback)
 notifies all registered Steerers
void setIORegions ()

Protected Attributes

GridTypecurGrid
GridTypenewGrid
Region< DIMsimArea

Friends

class SerialSimulatorTest

Detailed Description

template<typename CELL_TYPE>
class LibGeoDecomp::SerialSimulator< CELL_TYPE >

SerialSimulator is the simplest implementation of the Simulator concept (or rather the MonolithicSimulator, to be exact).

It's purpose is to make fostering new applications easier. The absence of concurrency simplifies debugging. As its name implies, it doesn't do any threading, but vectorization (SIMD) is supported.


Member Typedef Documentation

template<typename CELL_TYPE >
typedef MonolithicSimulator<CELL_TYPE>::GridType LibGeoDecomp::SerialSimulator< CELL_TYPE >::GridBaseType
template<typename CELL_TYPE >
typedef GridTypeSelector<CELL_TYPE, Topology, false, SupportsSoA>::Value LibGeoDecomp::SerialSimulator< CELL_TYPE >::GridType
template<typename CELL_TYPE >
typedef Steerer<CELL_TYPE>::SteererFeedback LibGeoDecomp::SerialSimulator< CELL_TYPE >::SteererFeedback
template<typename CELL_TYPE >
typedef APITraits::SelectSoA<CELL_TYPE>::Value LibGeoDecomp::SerialSimulator< CELL_TYPE >::SupportsSoA
template<typename CELL_TYPE >
typedef MonolithicSimulator<CELL_TYPE>::Topology LibGeoDecomp::SerialSimulator< CELL_TYPE >::Topology
template<typename CELL_TYPE >
typedef MonolithicSimulator<CELL_TYPE>::WriterVector LibGeoDecomp::SerialSimulator< CELL_TYPE >::WriterVector

Constructor & Destructor Documentation

template<typename CELL_TYPE >
LibGeoDecomp::SerialSimulator< CELL_TYPE >::SerialSimulator ( Initializer< CELL_TYPE > *  initializer  )  [inline, explicit]
template<typename CELL_TYPE >
virtual LibGeoDecomp::SerialSimulator< CELL_TYPE >::~SerialSimulator (  )  [inline, virtual]

Member Function Documentation

template<typename CELL_TYPE >
virtual const GridBaseType* LibGeoDecomp::SerialSimulator< CELL_TYPE >::getGrid (  )  [inline, virtual]
template<typename CELL_TYPE >
void LibGeoDecomp::SerialSimulator< CELL_TYPE >::handleInput ( SteererEvent  event,
SteererFeedback feedback 
) [inline, protected]
template<typename CELL_TYPE >
void LibGeoDecomp::SerialSimulator< CELL_TYPE >::handleOutput ( WriterEvent  event  )  [inline, protected]
template<typename CELL_TYPE >
void LibGeoDecomp::SerialSimulator< CELL_TYPE >::nanoStep ( const unsigned nanoStep  )  [inline, protected]
template<typename CELL_TYPE >
virtual void LibGeoDecomp::SerialSimulator< CELL_TYPE >::run (  )  [inline, virtual]
template<typename CELL_TYPE >
void LibGeoDecomp::SerialSimulator< CELL_TYPE >::setIORegions (  )  [inline, protected]
template<typename CELL_TYPE >
virtual void LibGeoDecomp::SerialSimulator< CELL_TYPE >::step ( SteererFeedback feedback  )  [inline, virtual]
template<typename CELL_TYPE >
virtual void LibGeoDecomp::SerialSimulator< CELL_TYPE >::step (  )  [inline, virtual]

performs a single simulation step.

Implements LibGeoDecomp::Simulator< CELL_TYPE >.

Referenced by LibGeoDecomp::SerialSimulator< CELL_TYPE >::run().


Friends And Related Function Documentation

template<typename CELL_TYPE >
friend class SerialSimulatorTest [friend]

Member Data Documentation

template<typename CELL_TYPE >
GridType* LibGeoDecomp::SerialSimulator< CELL_TYPE >::curGrid [protected]
template<typename CELL_TYPE >
const int LibGeoDecomp::SerialSimulator< CELL_TYPE >::DIM = Topology::DIM [static]
template<typename CELL_TYPE >
GridType* LibGeoDecomp::SerialSimulator< CELL_TYPE >::newGrid [protected]
template<typename CELL_TYPE >
Region<DIM> LibGeoDecomp::SerialSimulator< CELL_TYPE >::simArea [protected]

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