#include <commonstepper.h>
Inherits LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >.
Inherited by LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >, and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >.
Public Types | |
typedef Stepper< CELL_TYPE > ::Topology | Topology |
typedef class CommonStepper < CELL_TYPE > | ParentType |
typedef ParentType::GridType | GridType |
typedef PartitionManager < Topology > | PartitionManagerType |
typedef PatchBufferFixed < GridType, GridType, 1 > | PatchBufferType1 |
typedef PatchBufferFixed < GridType, GridType, 2 > | PatchBufferType2 |
typedef ParentType::PatchAccepterVec | PatchAccepterVec |
Public Member Functions | |
CommonStepper (boost::shared_ptr< PartitionManagerType > partitionManager, boost::shared_ptr< Initializer< CELL_TYPE > > initializer, const PatchAccepterVec &ghostZonePatchAccepters=PatchAccepterVec(), const PatchAccepterVec &innerSetPatchAccepters=PatchAccepterVec()) | |
virtual void | update (std::size_t nanoSteps) |
std::pair< std::size_t, std::size_t > | currentStep () const |
returns current step and nanoStep | |
const GridType & | grid () const |
virtual void | update1 ()=0 |
Proceed the simulation exactly one nano step. | |
Static Public Attributes | |
static const int | DIM = Topology::DIM |
static const unsigned | NANO_STEPS = APITraits::SelectNanoSteps<CELL_TYPE>::VALUE |
Protected Member Functions | |
void | notifyPatchAccepters (const Region< DIM > ®ion, const typename ParentType::PatchType &patchType, std::size_t nanoStep) |
void | notifyPatchProviders (const Region< DIM > ®ion, const typename ParentType::PatchType &patchType, std::size_t nanoStep) |
std::size_t | globalNanoStep () const |
CoordBox< DIM > | initGridsCommon () |
unsigned | ghostZoneWidth () const |
const Region< DIM > & | rim (unsigned offset) const |
const Region< DIM > & | rim () const |
const Region< DIM > & | innerSet (unsigned offset) const |
const Region< DIM > & | getVolatileKernel () const |
const Region< DIM > & | getInnerRim () const |
void | resetValidGhostZoneWidth () |
void | saveRim (std::size_t nanoStep) |
void | restoreRim (bool remove) |
void | saveKernel () |
void | restoreKernel () |
Protected Attributes | |
std::size_t | curStep |
std::size_t | curNanoStep |
unsigned | validGhostZoneWidth |
boost::shared_ptr< GridType > | oldGrid |
boost::shared_ptr< GridType > | newGrid |
PatchBufferType2 | rimBuffer |
PatchBufferType1 | kernelBuffer |
Region< DIM > | kernelFraction |
typedef ParentType::GridType LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::GridType |
Reimplemented from LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >.
Reimplemented in LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >, and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >.
typedef class CommonStepper< CELL_TYPE > LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::ParentType |
typedef PartitionManager<Topology> LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::PartitionManagerType |
Reimplemented from LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >.
Reimplemented in LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >, and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >.
typedef ParentType::PatchAccepterVec LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::PatchAccepterVec |
Reimplemented from LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >.
Reimplemented in LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >, and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >.
typedef PatchBufferFixed<GridType, GridType, 1> LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::PatchBufferType1 |
typedef PatchBufferFixed<GridType, GridType, 2> LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::PatchBufferType2 |
typedef Stepper<CELL_TYPE>::Topology LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::Topology |
Reimplemented from LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >.
Reimplemented in LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >, and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >.
LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::CommonStepper | ( | boost::shared_ptr< PartitionManagerType > | partitionManager, | |
boost::shared_ptr< Initializer< CELL_TYPE > > | initializer, | |||
const PatchAccepterVec & | ghostZonePatchAccepters = PatchAccepterVec() , |
|||
const PatchAccepterVec & | innerSetPatchAccepters = PatchAccepterVec() | |||
) | [inline] |
std::pair<std::size_t, std::size_t> LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::currentStep | ( | ) | const [inline, virtual] |
returns current step and nanoStep
Implements LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >.
References LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::curNanoStep, and LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::curStep.
const Region<DIM>& LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::getInnerRim | ( | ) | const [inline, protected] |
const Region<DIM>& LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::getVolatileKernel | ( | ) | const [inline, protected] |
unsigned LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::ghostZoneWidth | ( | ) | const [inline, protected] |
Referenced by LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::resetValidGhostZoneWidth(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rim(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::saveKernel(), LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::update1(), LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >::update1(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
std::size_t LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::globalNanoStep | ( | ) | const [inline, protected] |
References LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::curNanoStep, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::curStep, and LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::NANO_STEPS.
Referenced by LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::initGrids(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::restoreKernel(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::restoreRim(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::saveKernel(), LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::update1(), LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >::update1(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
const GridType& LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::grid | ( | ) | const [inline, virtual] |
CoordBox<DIM> LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::initGridsCommon | ( | ) | [inline, protected] |
References LibGeoDecomp::CoordBox< DIM >::dimensions, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::getVolatileKernel(), LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::guessOffset(), LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::initializer, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::kernelBuffer, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::newGrid, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::oldGrid, LibGeoDecomp::CoordBox< DIM >::origin, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::resetValidGhostZoneWidth(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rim(), and LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rimBuffer.
Referenced by LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::initGrids().
const Region<DIM>& LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::innerSet | ( | unsigned | offset | ) | const [inline, protected] |
void LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::notifyPatchAccepters | ( | const Region< DIM > & | region, | |
const typename ParentType::PatchType & | patchType, | |||
std::size_t | nanoStep | |||
) | [inline, protected] |
References LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::chronometer, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::oldGrid, and LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::patchAccepters.
Referenced by LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::initGrids(), LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >::notifyPatchProvidersGhostZones(), LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::update1(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
void LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::notifyPatchProviders | ( | const Region< DIM > & | region, | |
const typename ParentType::PatchType & | patchType, | |||
std::size_t | nanoStep | |||
) | [inline, protected] |
References LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::chronometer, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::oldGrid, and LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::patchProviders.
Referenced by LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >::notifyPatchAcceptersInnerSet(), LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::update1(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
void LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::resetValidGhostZoneWidth | ( | ) | [inline, protected] |
References LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::ghostZoneWidth(), and LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::validGhostZoneWidth.
Referenced by LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::initGridsCommon(), LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::update1(), and LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >::update1().
void LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::restoreKernel | ( | ) | [inline, protected] |
References LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::get(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::getVolatileKernel(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::globalNanoStep(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::kernelBuffer, and LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::oldGrid.
Referenced by LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
void LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::restoreRim | ( | bool | remove | ) | [inline, protected] |
References LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::get(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::globalNanoStep(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::oldGrid, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rim(), and LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rimBuffer.
Referenced by LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
const Region<DIM>& LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rim | ( | unsigned | offset | ) | const [inline, protected] |
const Region<DIM>& LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rim | ( | ) | const [inline, protected] |
References LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::ghostZoneWidth().
Referenced by LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::initGrids(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::initGridsCommon(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::restoreRim(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::saveRim(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
void LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::saveKernel | ( | ) | [inline, protected] |
References LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::ghostZoneWidth(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::globalNanoStep(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::innerSet(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::kernelBuffer, LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::oldGrid, LibGeoDecomp::PatchAccepter< GRID_TYPE >::pushRequest(), and LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::put().
Referenced by LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
void LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::saveRim | ( | std::size_t | nanoStep | ) | [inline, protected] |
References LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::oldGrid, LibGeoDecomp::PatchAccepter< GRID_TYPE >::pushRequest(), LibGeoDecomp::PatchBufferFixed< GRID_TYPE1, GRID_TYPE2, SIZE >::put(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rim(), and LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rimBuffer.
Referenced by LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::initGrids(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
virtual void LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::update | ( | std::size_t | nanoSteps | ) | [inline, virtual] |
virtual void LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::update1 | ( | ) | [pure virtual] |
Proceed the simulation exactly one nano step.
Implemented in LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >, and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >.
Referenced by LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::update().
std::size_t LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::curNanoStep [protected] |
Referenced by LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::CommonStepper(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::currentStep(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::globalNanoStep(), LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::update1(), LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >::update1(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
std::size_t LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::curStep [protected] |
Referenced by LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::CommonStepper(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::currentStep(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::globalNanoStep(), LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::update1(), LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >::update1(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
const int LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::DIM = Topology::DIM [static] |
Reimplemented from LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >.
Reimplemented in LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >, and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >.
PatchBufferType1 LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::kernelBuffer [protected] |
Region<DIM> LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::kernelFraction [protected] |
const unsigned LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::NANO_STEPS = APITraits::SelectNanoSteps<CELL_TYPE>::VALUE [static] |
boost::shared_ptr<GridType> LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::newGrid [protected] |
Referenced by LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::initGridsCommon(), LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::update1(), LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >::update1(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
boost::shared_ptr<GridType> LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::oldGrid [protected] |
Referenced by LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::grid(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::initGridsCommon(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::notifyPatchAccepters(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::notifyPatchProviders(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::restoreKernel(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::restoreRim(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::saveKernel(), LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::saveRim(), LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::update1(), LibGeoDecomp::HiParSimulator::CUDAStepper< CELL_TYPE >::update1(), and LibGeoDecomp::HiParSimulator::VanillaStepper< CELL_TYPE >::updateGhost().
PatchBufferType2 LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::rimBuffer [protected] |
unsigned LibGeoDecomp::HiParSimulator::CommonStepper< CELL_TYPE >::validGhostZoneWidth [protected] |