PFASST++
pfasst::Controller< time >::LevelIter Class Reference

Level (MLSDC/PFASST) iterator. More...

#include <interface.hpp>

+ Inheritance diagram for pfasst::Controller< time >::LevelIter:
+ Collaboration diagram for pfasst::Controller< time >::LevelIter:

Public Types

typedef int difference_type
 
typedef shared_ptr< ISweeper< time > > value_type
 
typedef ISweeper< time > * pointer
 
typedef ISweeper< time > reference
 
typedef random_access_iterator_tag iterator_category
 

Public Member Functions

 LevelIter (int level, Controller *ts)
 
template<typename R = ISweeper<time>>
shared_ptr< R > current ()
 Get level this iterator is currently pointing at. More...
 
template<typename R = ISweeper<time>>
shared_ptr< R > fine ()
 Get the next finer level based on LevelIter::current() More...
 
template<typename R = ISweeper<time>>
shared_ptr< R > coarse ()
 Get the next coarser level based on LevelIter::current() More...
 
template<typename R = ITransfer<time>>
shared_ptr< R > transfer ()
 Get transfer operator for current level. More...
 
Standard Operators for Iterators
template<typename R = reference>
shared_ptr< R > operator* ()
 
template<typename R = reference>
shared_ptr< R > operator-> ()
 
virtual LevelIter operator++ ()
 
virtual bool operator== (LevelIter i)
 
virtual bool operator!= (LevelIter i)
 
virtual LevelIter operator-- ()
 
virtual LevelIter operator- (difference_type i)
 
virtual LevelIter operator+ (difference_type i)
 
virtual bool operator<= (LevelIter i)
 
virtual bool operator>= (LevelIter i)
 
virtual bool operator< (LevelIter i)
 
virtual bool operator> (LevelIter i)
 

Public Attributes

int level
 

Protected Attributes

Controllerts
 Controller this iterator is bound to. More...
 

Detailed Description

template<typename time = time_precision>
class pfasst::Controller< time >::LevelIter

Level (MLSDC/PFASST) iterator.

This iterator is used to walk through the MLSDC/PFASST hierarchy of sweepers. It keeps track of the current level, and has convenience routines to return the LevelIter::current(), LevelIter::fine() (i.e. current+1), and LevelIter::coarse() (current-1) sweepers.

Since
v0.1.0

Definition at line 306 of file interface.hpp.

Member Typedef Documentation

template<typename time = time_precision>
typedef int pfasst::Controller< time >::LevelIter::difference_type

Definition at line 318 of file interface.hpp.

template<typename time = time_precision>
typedef random_access_iterator_tag pfasst::Controller< time >::LevelIter::iterator_category

Definition at line 322 of file interface.hpp.

template<typename time = time_precision>
typedef ISweeper<time>* pfasst::Controller< time >::LevelIter::pointer

Definition at line 320 of file interface.hpp.

template<typename time = time_precision>
typedef ISweeper<time> pfasst::Controller< time >::LevelIter::reference

Definition at line 321 of file interface.hpp.

template<typename time = time_precision>
typedef shared_ptr<ISweeper<time> > pfasst::Controller< time >::LevelIter::value_type

Definition at line 319 of file interface.hpp.

Constructor & Destructor Documentation

template<typename time >
pfasst::Controller< time >::LevelIter::LevelIter ( int  level,
Controller ts 
)

Definition at line 172 of file interface_impl.hpp.

Member Function Documentation

template<typename time = time_precision>
template<typename R = ISweeper<time>>
shared_ptr<R> pfasst::Controller< time >::LevelIter::coarse ( )
inline

Get the next coarser level based on LevelIter::current()

Template Parameters
Rtype implementing ISweeper
Returns
next coarser sweeper with respect to current()

Definition at line 365 of file interface.hpp.

Referenced by pfasst::PFASST< time >::cycle_down(), pfasst::MLSDC< time >::cycle_down(), pfasst::PFASST< time >::cycle_up(), and pfasst::MLSDC< time >::cycle_up().

+ Here is the caller graph for this function:

template<typename time = time_precision>
template<typename R = ISweeper<time>>
shared_ptr<R> pfasst::Controller< time >::LevelIter::current ( )
inline

Get level this iterator is currently pointing at.

Template Parameters
Rtype implementing ISweeper
Returns
sweeper of type R this is currently pointing at

Definition at line 341 of file interface.hpp.

Referenced by pfasst::PFASST< time >::cycle_bottom(), pfasst::PFASST< time >::cycle_down(), pfasst::MLSDC< time >::cycle_down(), pfasst::PFASST< time >::cycle_up(), and pfasst::MLSDC< time >::cycle_up().

+ Here is the caller graph for this function:

template<typename time = time_precision>
template<typename R = ISweeper<time>>
shared_ptr<R> pfasst::Controller< time >::LevelIter::fine ( )
inline

Get the next finer level based on LevelIter::current()

Template Parameters
Rtype implementing ISweeper
Returns
next finer sweeper with respect to current()

Definition at line 353 of file interface.hpp.

template<typename time = time_precision>
bool pfasst::Controller< time >::LevelIter::operator!= ( LevelIter  i)
virtual

Definition at line 191 of file interface_impl.hpp.

References pfasst::Controller< time >::LevelIter::level.

template<typename time = time_precision>
template<typename R = reference>
shared_ptr<R> pfasst::Controller< time >::LevelIter::operator* ( )
inline

Definition at line 389 of file interface.hpp.

template<typename time >
Controller< time >::LevelIter pfasst::Controller< time >::LevelIter::operator+ ( difference_type  i)
virtual

Definition at line 210 of file interface_impl.hpp.

template<typename time >
Controller< time >::LevelIter pfasst::Controller< time >::LevelIter::operator++ ( )
virtual

Definition at line 178 of file interface_impl.hpp.

template<typename time >
Controller< time >::LevelIter pfasst::Controller< time >::LevelIter::operator- ( difference_type  i)
virtual

Definition at line 204 of file interface_impl.hpp.

template<typename time >
Controller< time >::LevelIter pfasst::Controller< time >::LevelIter::operator-- ( )
virtual

Definition at line 197 of file interface_impl.hpp.

template<typename time = time_precision>
template<typename R = reference>
shared_ptr<R> pfasst::Controller< time >::LevelIter::operator-> ( )
inline

Definition at line 396 of file interface.hpp.

template<typename time = time_precision>
bool pfasst::Controller< time >::LevelIter::operator< ( LevelIter  i)
virtual

Definition at line 228 of file interface_impl.hpp.

References pfasst::Controller< time >::LevelIter::level.

template<typename time = time_precision>
bool pfasst::Controller< time >::LevelIter::operator<= ( LevelIter  i)
virtual

Definition at line 216 of file interface_impl.hpp.

References pfasst::Controller< time >::LevelIter::level.

template<typename time = time_precision>
bool pfasst::Controller< time >::LevelIter::operator== ( LevelIter  i)
virtual

Definition at line 185 of file interface_impl.hpp.

References pfasst::Controller< time >::LevelIter::level.

template<typename time = time_precision>
bool pfasst::Controller< time >::LevelIter::operator> ( LevelIter  i)
virtual

Definition at line 234 of file interface_impl.hpp.

References pfasst::Controller< time >::LevelIter::level.

template<typename time = time_precision>
bool pfasst::Controller< time >::LevelIter::operator>= ( LevelIter  i)
virtual

Definition at line 222 of file interface_impl.hpp.

References pfasst::Controller< time >::LevelIter::level.

template<typename time = time_precision>
template<typename R = ITransfer<time>>
shared_ptr<R> pfasst::Controller< time >::LevelIter::transfer ( )
inline

Get transfer operator for current level.

Template Parameters
Rtype implementing ITransfer
Returns
transfer operator for current level

Definition at line 377 of file interface.hpp.

Referenced by pfasst::PFASST< time >::cycle_down(), pfasst::MLSDC< time >::cycle_down(), pfasst::PFASST< time >::cycle_up(), and pfasst::MLSDC< time >::cycle_up().

+ Here is the caller graph for this function:

Member Data Documentation

template<typename time = time_precision>
Controller* pfasst::Controller< time >::LevelIter::ts
protected

Controller this iterator is bound to.

Definition at line 314 of file interface.hpp.


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