#include <DynamicLayout.h>
Public Types | |
enum | { dimensions = 1 } |
enum | { repartitionEvent = 1 } |
enum | { dynamic = true } |
enum | { supportsGuards = false } |
typedef DynamicLayout | This_t |
typedef Observable< This_t > | Observable_t |
typedef DynamicLayoutData | LayoutData_t |
typedef LayoutData_t::Domain_t | Domain_t |
typedef LayoutData_t::BaseDomain_t | BaseDomain_t |
typedef LayoutData_t::Context_t | Context_t |
typedef LayoutData_t::ID_t | ID_t |
typedef LayoutData_t::Value_t | Value_t |
typedef LayoutData_t::List_t | List_t |
typedef DynamicEvents::PatchID_t | PatchID_t |
typedef DynamicEvents::CreateSize_t | CreateSize_t |
typedef DerefIterator< Value_t > | iterator |
typedef ConstDerefIterator < Value_t > | const_iterator |
Public Member Functions | |
DynamicLayout () | |
DynamicLayout (const Domain_t &) | |
DynamicLayout (const Domain_t &, int) | |
DynamicLayout (const Grid< 1 > &) | |
template<class Partitioner > | |
DynamicLayout (const Domain_t &gdom, const Partitioner &gpar) | |
template<class Partitioner > | |
DynamicLayout (const Domain_t &gdom, const Partitioner &gpar, const ContextMapper< 1 > &cmap) | |
DynamicLayout (const This_t &) | |
This_t & | operator= (const This_t &) |
~DynamicLayout () | |
void | initialize (const Domain_t &) |
void | initialize (const Domain_t &, int) |
void | initialize (const Domain_t &, const Grid< 1 > &) |
void | initialize (const Grid< 1 > &) |
template<class Partitioner > | |
void | initialize (const Domain_t &gdom, const Partitioner &gpar) |
template<class Partitioner > | |
void | initialize (const Domain_t &gdom, const Partitioner &gpar, const ContextMapper< 1 > &cmap) |
void | initialize (const Domain_t &gdom, const List_t &nodes) |
ID_t | ID () const |
ID_t | baseID () const |
bool | initialized () const |
int | first (int) const |
const Domain_t & | domain () const |
const Domain_t & | ownedDomain () const |
const Domain_t & | domain (int i) const |
const Domain_t & | ownedDomain (int i) const |
const Domain_t & | allocatedDomain (int i) const |
const Domain_t & | baseDomain () const |
const Domain_t & | patchDomain (int i) const |
const List_t & | nodeListGlobal () const |
const List_t & | nodeListLocal () const |
const List_t & | nodeListRemote () const |
template<class Layout > | |
bool | operator== (const Layout &layout) const |
template<class Layout > | |
bool | operator!= (const Layout &layout) const |
int | blocks () const |
int | globalID (const Loc< 1 > &loc) const |
int | globalID (int a1) const |
iterator | beginGlobal () |
iterator | endGlobal () |
const_iterator | beginGlobal () const |
const_iterator | endGlobal () const |
int | sizeGlobal () const |
iterator | beginLocal () |
iterator | endLocal () |
const_iterator | beginLocal () const |
const_iterator | endLocal () const |
int | sizeLocal () const |
iterator | beginRemote () |
iterator | endRemote () |
const_iterator | beginRemote () const |
const_iterator | endRemote () const |
int | sizeRemote () const |
template<class Partitioner > | |
bool | repartition (const Partitioner &gp) |
void | create (CreateSize_t num, PatchID_t patch=(-1)) |
template<class Dom , class DeleteMethod > | |
void | destroy (const Dom &killlist, const DeleteMethod &method) |
template<class Dom , class DeleteMethod > | |
void | destroy (const Dom &killlist, PatchID_t patch, const DeleteMethod &method) |
template<class Dom > | |
void | copy (const Dom ©list, PatchID_t toPatch=(-1)) |
template<class Dom > | |
void | copy (const Dom ©list, PatchID_t fromPatch, PatchID_t toPatch) |
void | copy (const IndirectionList< IndirectionList< int > > &domlists, const IndirectionList< int > &fromlist, PatchID_t toPatch, bool docreate) |
void | sync () |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touches (const OtherDomain &d, OutIter o, const ConstructTag &ctag) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesAlloc (const OtherDomain &d, OutIter o, const ConstructTag &ctag) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesLocal (const OtherDomain &d, OutIter o, const ConstructTag &ctag) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesAllocLocal (const OtherDomain &d, OutIter o, const ConstructTag &ctag) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesRemote (const OtherDomain &, OutIter, const ConstructTag &) const |
template<class OtherDomain , class OutIter , class ConstructTag > | |
int | touchesAllocRemote (const OtherDomain &, OutIter, const ConstructTag &) const |
template<class OtherDomain , class OutIter > | |
int | touches (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesAlloc (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesLocal (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesAllocLocal (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesRemote (const OtherDomain &d, OutIter o) const |
template<class OtherDomain , class OutIter > | |
int | touchesAllocRemote (const OtherDomain &d, OutIter o) const |
virtual void | notify (LayoutData_t &d, const ObserverEvent &event) |
The one virtual public interface method for Observer. | |
template<class Ostream > | |
void | print (Ostream &ostr) const |
This is an alternative to the more general tile Layout class that should perform faster since subdomains can be found using a set of 1-dimensional domainMap's, rather than by a more general search.
To construct a DynamicLayout, you can do any of the following:
typedef DynamicLayout DynamicLayout::This_t |
typedef Observable<This_t> DynamicLayout::Observable_t |
typedef DerefIterator<Value_t> DynamicLayout::iterator |
DynamicLayout::DynamicLayout | ( | ) |
DynamicLayout::DynamicLayout | ( | const Domain_t & | ) |
DynamicLayout::DynamicLayout | ( | const Domain_t & | , | |
int | ||||
) |
DynamicLayout::DynamicLayout | ( | const Grid< 1 > & | ) |
DynamicLayout::DynamicLayout | ( | const Domain_t & | gdom, | |
const Partitioner & | gpar | |||
) | [inline] |
DynamicLayout::DynamicLayout | ( | const Domain_t & | gdom, | |
const Partitioner & | gpar, | |||
const ContextMapper< 1 > & | cmap | |||
) | [inline] |
DynamicLayout::DynamicLayout | ( | const This_t & | ) |
DynamicLayout::~DynamicLayout | ( | ) | [inline] |
void DynamicLayout::initialize | ( | const Domain_t & | ) |
void DynamicLayout::initialize | ( | const Domain_t & | , | |
int | ||||
) |
void DynamicLayout::initialize | ( | const Grid< 1 > & | ) |
void DynamicLayout::initialize | ( | const Domain_t & | gdom, | |
const Partitioner & | gpar | |||
) | [inline] |
void DynamicLayout::initialize | ( | const Domain_t & | gdom, | |
const Partitioner & | gpar, | |||
const ContextMapper< 1 > & | cmap | |||
) | [inline] |
ID_t DynamicLayout::baseID | ( | ) | const [inline] |
Referenced by operator==().
bool DynamicLayout::initialized | ( | ) | const [inline] |
int DynamicLayout::first | ( | int | ) | const [inline] |
const Domain_t& DynamicLayout::domain | ( | ) | const [inline] |
Referenced by DynamicLayoutViewData::DynamicLayoutViewData(), print(), and repartition().
const Domain_t& DynamicLayout::ownedDomain | ( | ) | const [inline] |
const Domain_t& DynamicLayout::domain | ( | int | i | ) | const [inline] |
const Domain_t& DynamicLayout::ownedDomain | ( | int | i | ) | const [inline] |
const Domain_t& DynamicLayout::allocatedDomain | ( | int | i | ) | const [inline] |
const Domain_t& DynamicLayout::baseDomain | ( | ) | const [inline] |
Referenced by operator==().
const Domain_t& DynamicLayout::patchDomain | ( | int | i | ) | const [inline] |
const List_t& DynamicLayout::nodeListGlobal | ( | ) | const [inline] |
const List_t& DynamicLayout::nodeListLocal | ( | ) | const [inline] |
const List_t& DynamicLayout::nodeListRemote | ( | ) | const [inline] |
bool DynamicLayout::operator== | ( | const Layout & | layout | ) | const [inline] |
References baseDomain(), and baseID().
bool DynamicLayout::operator!= | ( | const Layout & | layout | ) | const [inline] |
int DynamicLayout::blocks | ( | ) | const [inline] |
Referenced by print().
int DynamicLayout::globalID | ( | const Loc< 1 > & | loc | ) | const [inline] |
Referenced by DynamicLayoutViewData::globalID().
int DynamicLayout::globalID | ( | int | a1 | ) | const [inline] |
const_iterator DynamicLayout::beginGlobal | ( | ) | const [inline] |
const_iterator DynamicLayout::endGlobal | ( | ) | const [inline] |
int DynamicLayout::sizeGlobal | ( | ) | const [inline] |
Referenced by initialized(), and print().
const_iterator DynamicLayout::beginLocal | ( | ) | const [inline] |
const_iterator DynamicLayout::endLocal | ( | ) | const [inline] |
int DynamicLayout::sizeLocal | ( | ) | const [inline] |
Referenced by print().
const_iterator DynamicLayout::beginRemote | ( | ) | const [inline] |
const_iterator DynamicLayout::endRemote | ( | ) | const [inline] |
int DynamicLayout::sizeRemote | ( | ) | const [inline] |
Referenced by print().
bool DynamicLayout::repartition | ( | const Partitioner & | gp | ) | [inline] |
References domain(), and repartitionEvent.
void DynamicLayout::create | ( | CreateSize_t | num, | |
PatchID_t | patch = (-1) | |||
) | [inline] |
void DynamicLayout::destroy | ( | const Dom & | killlist, | |
const DeleteMethod & | method | |||
) | [inline] |
void DynamicLayout::destroy | ( | const Dom & | killlist, | |
PatchID_t | patch, | |||
const DeleteMethod & | method | |||
) | [inline] |
void DynamicLayout::copy | ( | const Dom & | copylist, | |
PatchID_t | toPatch = (-1) | |||
) | [inline] |
void DynamicLayout::copy | ( | const Dom & | copylist, | |
PatchID_t | fromPatch, | |||
PatchID_t | toPatch | |||
) | [inline] |
void DynamicLayout::copy | ( | const IndirectionList< IndirectionList< int > > & | domlists, | |
const IndirectionList< int > & | fromlist, | |||
PatchID_t | toPatch, | |||
bool | docreate | |||
) | [inline] |
void DynamicLayout::sync | ( | ) | [inline] |
int DynamicLayout::touches | ( | const OtherDomain & | d, | |
OutIter | o, | |||
const ConstructTag & | ctag | |||
) | const [inline] |
Referenced by DynamicLayoutViewData::computeSubdomains(), DynamicLayoutViewData::touches(), and touches().
int DynamicLayout::touchesAlloc | ( | const OtherDomain & | d, | |
OutIter | o, | |||
const ConstructTag & | ctag | |||
) | const [inline] |
Referenced by touchesAlloc().
int DynamicLayout::touchesLocal | ( | const OtherDomain & | d, | |
OutIter | o, | |||
const ConstructTag & | ctag | |||
) | const [inline] |
Referenced by touchesLocal().
int DynamicLayout::touchesAllocLocal | ( | const OtherDomain & | d, | |
OutIter | o, | |||
const ConstructTag & | ctag | |||
) | const [inline] |
Referenced by touchesAllocLocal().
int DynamicLayout::touchesRemote | ( | const OtherDomain & | , | |
OutIter | , | |||
const ConstructTag & | ||||
) | const [inline] |
Referenced by touchesAllocRemote(), and touchesRemote().
int DynamicLayout::touchesAllocRemote | ( | const OtherDomain & | , | |
OutIter | , | |||
const ConstructTag & | ||||
) | const [inline] |
int DynamicLayout::touches | ( | const OtherDomain & | d, | |
OutIter | o | |||
) | const [inline] |
References touches().
int DynamicLayout::touchesAlloc | ( | const OtherDomain & | d, | |
OutIter | o | |||
) | const [inline] |
References touchesAlloc().
int DynamicLayout::touchesLocal | ( | const OtherDomain & | d, | |
OutIter | o | |||
) | const [inline] |
References touchesLocal().
int DynamicLayout::touchesAllocLocal | ( | const OtherDomain & | d, | |
OutIter | o | |||
) | const [inline] |
References touchesAllocLocal().
int DynamicLayout::touchesRemote | ( | const OtherDomain & | d, | |
OutIter | o | |||
) | const [inline] |
References touchesRemote().
int DynamicLayout::touchesAllocRemote | ( | const OtherDomain & | d, | |
OutIter | o | |||
) | const [inline] |
References touchesRemote().
virtual void DynamicLayout::notify | ( | LayoutData_t & | observed, | |
const ObserverEvent & | event | |||
) | [inline, virtual] |
The one virtual public interface method for Observer.
notify is called by an Observable when it needs to tell attached Observers that some event has occurred. It is up to the derived class, for the type T, to be able to interpret the meaning of the integer event code in the provided ObserverEvent object (or to ignore it, if it needs to). notify is called with a reference to the object being observed and the event which occurred. Note that event code '0' is special; it means that the given Observable is being destroyed, so this Observer should just note that it is no longer attached to that Observable.
Implements Observer< DynamicLayoutData >.
References Observable< T >::notify(), PAssert, and RefCountedPtr< T >::rawPointer().
void DynamicLayout::print | ( | Ostream & | ostr | ) | const [inline] |
References beginGlobal(), beginLocal(), beginRemote(), blocks(), domain(), endGlobal(), endLocal(), endRemote(), ID(), sizeGlobal(), sizeLocal(), and sizeRemote().