The initializer sets up the initial state of the grid. More...
#include <initializer.h>
Inherited by LibGeoDecomp::ClonableInitializer< CELL >.
Public Types | |
typedef APITraits::SelectTopology < CELL >::Value | Topology |
typedef CELL | Cell |
Public Member Functions | |
virtual | ~Initializer () |
virtual void | grid (GridBase< CELL, DIM > *target)=0 |
initializes all cells of the grid at target | |
virtual CoordBox< DIM > | gridBox () |
Allows a Simulator to discover the extent of the whole simulation. | |
virtual Coord< DIM > | gridDimensions () const =0 |
returns the size of the gridBox(). | |
virtual unsigned | startStep () const =0 |
yields the logical time step at which the simulation should start | |
virtual unsigned | maxSteps () const =0 |
gives the time step at which the simulation should terminate. | |
Static Public Attributes | |
static const unsigned | NANO_STEPS = APITraits::SelectNanoSteps<CELL>::VALUE |
static const int | DIM = Topology::DIM |
Friends | |
class | Serialization |
The initializer sets up the initial state of the grid.
For this a Simulator will invoke Initializer::grid(). Keep in mind that grid() might be called multiple times and that for parallel runs each Initializer will be responsible just for a sub-cuboid of the whole grid.
typedef CELL LibGeoDecomp::Initializer< CELL >::Cell |
Reimplemented in LibGeoDecomp::ClonableInitializerWrapper< INITIALIZER >.
typedef APITraits::SelectTopology<CELL>::Value LibGeoDecomp::Initializer< CELL >::Topology |
Reimplemented in LibGeoDecomp::ClonableInitializerWrapper< INITIALIZER >, LibGeoDecomp::MPIIOInitializer< CELL_TYPE >, LibGeoDecomp::SimpleInitializer< CELL_TYPE >, LibGeoDecomp::TestInitializer< TEST_CELL >, LibGeoDecomp::SimpleInitializer< NonPoDTestCell >, and LibGeoDecomp::TestInitializer< TestCell< 2 > >.
virtual LibGeoDecomp::Initializer< CELL >::~Initializer | ( | ) | [inline, virtual] |
virtual void LibGeoDecomp::Initializer< CELL >::grid | ( | GridBase< CELL, DIM > * | target | ) | [pure virtual] |
initializes all cells of the grid at target
Implemented in LibGeoDecomp::MPIIOInitializer< CELL_TYPE >, LibGeoDecomp::TestInitializer< TEST_CELL >, and LibGeoDecomp::TestInitializer< TestCell< 2 > >.
Referenced by LibGeoDecomp::CudaSimulator< CELL_TYPE >::run(), and LibGeoDecomp::SerialSimulator< CELL_TYPE >::SerialSimulator().
virtual CoordBox<DIM> LibGeoDecomp::Initializer< CELL >::gridBox | ( | ) | [inline, virtual] |
Allows a Simulator to discover the extent of the whole simulation.
Usually Simulations will use 0 as the origin, but there is no oblication to do so.
Reimplemented in LibGeoDecomp::ClonableInitializerWrapper< INITIALIZER >.
Referenced by LibGeoDecomp::CudaSimulator< CELL_TYPE >::CudaSimulator(), LibGeoDecomp::HpxSimulator::HpxSimulator< CELL_TYPE, PARTITION, STEPPER >::init(), and LibGeoDecomp::SerialSimulator< CELL_TYPE >::SerialSimulator().
virtual Coord<DIM> LibGeoDecomp::Initializer< CELL >::gridDimensions | ( | ) | const [pure virtual] |
returns the size of the gridBox().
Implemented in LibGeoDecomp::ClonableInitializerWrapper< INITIALIZER >, LibGeoDecomp::MPIIOInitializer< CELL_TYPE >, LibGeoDecomp::SimpleInitializer< CELL_TYPE >, LibGeoDecomp::TestInitializer< TEST_CELL >, LibGeoDecomp::SimpleInitializer< NonPoDTestCell >, and LibGeoDecomp::TestInitializer< TestCell< 2 > >.
Referenced by LibGeoDecomp::Initializer< TEST_CELL >::gridBox(), and LibGeoDecomp::CudaSimulator< CELL_TYPE >::nanoStep().
virtual unsigned LibGeoDecomp::Initializer< CELL >::maxSteps | ( | ) | const [pure virtual] |
gives the time step at which the simulation should terminate.
Example: if startStep is 0 and maxSteps is 10, then the Simulator should start at t=0, update to t=1, update to t=2, ... until it has updated to t=10.
If startStep is 5 and maxSteps is 8, then the Simulator is expected to init at t=5, update to t=6, update to t=7, and finally update to t=8.
Implemented in LibGeoDecomp::ClonableInitializerWrapper< INITIALIZER >, LibGeoDecomp::MPIIOInitializer< CELL_TYPE >, LibGeoDecomp::SimpleInitializer< CELL_TYPE >, LibGeoDecomp::TestInitializer< TEST_CELL >, LibGeoDecomp::SimpleInitializer< NonPoDTestCell >, and LibGeoDecomp::TestInitializer< TestCell< 2 > >.
Referenced by LibGeoDecomp::CudaSimulator< CELL_TYPE >::run(), and LibGeoDecomp::HpxSimulator::HpxSimulator< CELL_TYPE, PARTITION, STEPPER >::runTimed().
virtual unsigned LibGeoDecomp::Initializer< CELL >::startStep | ( | ) | const [pure virtual] |
yields the logical time step at which the simulation should start
Implemented in LibGeoDecomp::ClonableInitializerWrapper< INITIALIZER >, LibGeoDecomp::MPIIOInitializer< CELL_TYPE >, LibGeoDecomp::SimpleInitializer< CELL_TYPE >, LibGeoDecomp::TestInitializer< TEST_CELL >, LibGeoDecomp::SimpleInitializer< NonPoDTestCell >, and LibGeoDecomp::TestInitializer< TestCell< 2 > >.
Referenced by LibGeoDecomp::CudaSimulator< CELL_TYPE >::CudaSimulator(), LibGeoDecomp::HpxSimulator::HpxSimulator< CELL_TYPE, PARTITION, STEPPER >::getStep(), LibGeoDecomp::CudaSimulator< CELL_TYPE >::run(), and LibGeoDecomp::SerialSimulator< CELL_TYPE >::SerialSimulator().
friend class Serialization [friend] |
Reimplemented in LibGeoDecomp::SimpleInitializer< CELL_TYPE >, and LibGeoDecomp::SimpleInitializer< NonPoDTestCell >.
const int LibGeoDecomp::Initializer< CELL >::DIM = Topology::DIM [static] |
Reimplemented in LibGeoDecomp::ClonableInitializerWrapper< INITIALIZER >, LibGeoDecomp::MPIIOInitializer< CELL_TYPE >, LibGeoDecomp::SimpleInitializer< CELL_TYPE >, LibGeoDecomp::TestInitializer< TEST_CELL >, LibGeoDecomp::SimpleInitializer< NonPoDTestCell >, and LibGeoDecomp::TestInitializer< TestCell< 2 > >.
const unsigned LibGeoDecomp::Initializer< CELL >::NANO_STEPS = APITraits::SelectNanoSteps<CELL>::VALUE [static] |