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

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

#include <hpxstepper.h>

Inherits LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >.

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

List of all members.

Public Types

typedef Stepper< CELL_TYPE >
::Topology 
Topology
typedef class Stepper< 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
typedef
ParentType::PatchProviderPtr 
PatchProviderPtr

Public Member Functions

 HpxStepper (boost::shared_ptr< PartitionManagerType > partitionManager, boost::shared_ptr< Initializer< CELL_TYPE > > initializer, const PatchAccepterVec &ghostZonePatchAccepters=PatchAccepterVec(), const PatchAccepterVec &innerSetPatchAccepters=PatchAccepterVec())
void update (std::size_t nanoSteps)
virtual std::pair< std::size_t,
std::size_t > 
currentStep () const
 returns current step and nanoStep
virtual const GridTypegrid () const

Static Public Attributes

static const int DIM = Topology::DIM
static const unsigned NANO_STEPS = APITraits::SelectNanoSteps<CELL_TYPE>::VALUE

Private Member Functions

hpx::future< void > update ()
hpx::future< void > updateGhostZones (const Region< DIM > &region)
hpx::future< void > updateGhostZones2 (const Region< DIM > &region)
hpx::future< void > notifyPatchAccepters (const Region< DIM > &region, const typename ParentType::PatchType &patchType, std::size_t nanoStep)
hpx::future< void > notifyPatchProviders (const Region< DIM > &region, const typename ParentType::PatchType &patchType, std::size_t nanoStep)
std::size_t globalNanoStep () const
void initGrids ()
void updateGhost ()
 computes the next ghost zone at time "t_1 = globalNanoStep() + ghostZoneWidth()".
unsigned ghostZoneWidth () const
const Region< DIM > & rim () const
void resetValidGhostZoneWidth ()
void saveRim (std::size_t nanoStep)
void restoreRim (bool remove)
void saveKernel ()
void restoreKernel ()

Static Private Member Functions

static void void_ ()

Private Attributes

std::size_t asyncThreshold
std::size_t curStep
std::size_t curNanoStep
unsigned validGhostZoneWidth
boost::shared_ptr< GridTypeoldGrid
boost::shared_ptr< GridTypenewGrid
std::shared_ptr< PatchBufferType2rimBuffer
std::shared_ptr< PatchBufferType1kernelBuffer
Region< DIMkernelFraction
hpx::lcos::local::spinlock gridMutex
double startTimeUpdate
std::vector< PatchProviderPtrsteererVector

Friends

class HpxStepperRegionTest
class HpxStepperBasicTest
class HpxStepperTest

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


Member Typedef Documentation

template<typename CELL_TYPE >
typedef ParentType::GridType LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::GridType
template<typename CELL_TYPE >
typedef class Stepper< CELL_TYPE > LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::ParentType
template<typename CELL_TYPE >
typedef PartitionManager<Topology> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::PartitionManagerType
template<typename CELL_TYPE >
typedef ParentType::PatchAccepterVec LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::PatchAccepterVec
template<typename CELL_TYPE >
typedef PatchBufferFixed<GridType, GridType, 1> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::PatchBufferType1
template<typename CELL_TYPE >
typedef PatchBufferFixed<GridType, GridType, 2> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::PatchBufferType2
template<typename CELL_TYPE >
typedef ParentType::PatchProviderPtr LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::PatchProviderPtr
template<typename CELL_TYPE >
typedef Stepper<CELL_TYPE>::Topology LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::Topology

Constructor & Destructor Documentation

template<typename CELL_TYPE >
LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::HpxStepper ( boost::shared_ptr< PartitionManagerType partitionManager,
boost::shared_ptr< Initializer< CELL_TYPE > >  initializer,
const PatchAccepterVec ghostZonePatchAccepters = PatchAccepterVec(),
const PatchAccepterVec innerSetPatchAccepters = PatchAccepterVec() 
) [inline]

Member Function Documentation

template<typename CELL_TYPE >
virtual std::pair<std::size_t, std::size_t> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::currentStep (  )  const [inline, virtual]
template<typename CELL_TYPE >
unsigned LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::ghostZoneWidth (  )  const [inline, private]
template<typename CELL_TYPE >
std::size_t LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::globalNanoStep (  )  const [inline, private]
template<typename CELL_TYPE >
virtual const GridType& LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::grid (  )  const [inline, virtual]
template<typename CELL_TYPE >
void LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::initGrids (  )  [inline, private]
template<typename CELL_TYPE >
hpx::future<void> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::notifyPatchAccepters ( const Region< DIM > &  region,
const typename ParentType::PatchType &  patchType,
std::size_t  nanoStep 
) [inline, private]
template<typename CELL_TYPE >
hpx::future<void> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::notifyPatchProviders ( const Region< DIM > &  region,
const typename ParentType::PatchType &  patchType,
std::size_t  nanoStep 
) [inline, private]
template<typename CELL_TYPE >
void LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::resetValidGhostZoneWidth (  )  [inline, private]
template<typename CELL_TYPE >
void LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::restoreKernel (  )  [inline, private]
template<typename CELL_TYPE >
void LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::restoreRim ( bool  remove  )  [inline, private]
template<typename CELL_TYPE >
const Region<DIM>& LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::rim (  )  const [inline, private]
template<typename CELL_TYPE >
void LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::saveKernel (  )  [inline, private]
template<typename CELL_TYPE >
void LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::saveRim ( std::size_t  nanoStep  )  [inline, private]
template<typename CELL_TYPE >
void LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::update ( std::size_t  nanoSteps  )  [inline, virtual]
template<typename CELL_TYPE >
hpx::future<void> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::update (  )  [inline, private]
template<typename CELL_TYPE >
void LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::updateGhost (  )  [inline, private]

computes the next ghost zone at time "t_1 = globalNanoStep() + ghostZoneWidth()".

Expects that oldGrid has its kernel and its outer ghostzone updated to time "globalNanoStep()" and that the inner ghostzones (rim) at time t_1 can be retrieved from the internal patch buffer. Will leave oldgrid in a state so that its whole ownRegion() will be at time t_1 and the rim will be saved to the patchBuffer at "t2 = t1 + ghostZoneWidth()".

References LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::asyncThreshold, LibGeoDecomp::Region< DIM >::beginStreak(), LibGeoDecomp::HiParSimulator::Stepper< CELL_TYPE >::chronometer, LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::curNanoStep, LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::curStep, LibGeoDecomp::Region< DIM >::endStreak(), LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::ghostZoneWidth(), LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::globalNanoStep(), LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::NANO_STEPS, LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::newGrid, LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::notifyPatchAccepters(), LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::notifyPatchProviders(), LibGeoDecomp::Region< DIM >::numStreaks(), LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::oldGrid, LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::restoreKernel(), LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::restoreRim(), LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::rim(), LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::saveKernel(), and LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::saveRim().

Referenced by LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::initGrids(), and LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::updateGhostZones2().

template<typename CELL_TYPE >
hpx::future<void> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::updateGhostZones ( const Region< DIM > &  region  )  [inline, private]
template<typename CELL_TYPE >
hpx::future<void> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::updateGhostZones2 ( const Region< DIM > &  region  )  [inline, private]
template<typename CELL_TYPE >
static void LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::void_ (  )  [inline, static, private]

Friends And Related Function Documentation

template<typename CELL_TYPE >
friend class HpxStepperBasicTest [friend]
template<typename CELL_TYPE >
friend class HpxStepperRegionTest [friend]
template<typename CELL_TYPE >
friend class HpxStepperTest [friend]

Member Data Documentation

template<typename CELL_TYPE >
std::size_t LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::asyncThreshold [private]
template<typename CELL_TYPE >
std::size_t LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::curNanoStep [private]
template<typename CELL_TYPE >
std::size_t LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::curStep [private]
template<typename CELL_TYPE >
const int LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::DIM = Topology::DIM [static]
template<typename CELL_TYPE >
hpx::lcos::local::spinlock LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::gridMutex [private]
template<typename CELL_TYPE >
std::shared_ptr<PatchBufferType1> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::kernelBuffer [private]
template<typename CELL_TYPE >
Region<DIM> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::kernelFraction [private]
template<typename CELL_TYPE >
const unsigned LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::NANO_STEPS = APITraits::SelectNanoSteps<CELL_TYPE>::VALUE [static]
template<typename CELL_TYPE >
boost::shared_ptr<GridType> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::newGrid [private]
template<typename CELL_TYPE >
boost::shared_ptr<GridType> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::oldGrid [private]
template<typename CELL_TYPE >
std::shared_ptr<PatchBufferType2> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::rimBuffer [private]
template<typename CELL_TYPE >
double LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::startTimeUpdate [private]
template<typename CELL_TYPE >
std::vector<PatchProviderPtr> LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::steererVector [private]
template<typename CELL_TYPE >
unsigned LibGeoDecomp::HiParSimulator::HpxStepper< CELL_TYPE >::validGhostZoneWidth [private]

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