UniformGridLayout< Dim > Class Template Reference

UniformGridLayout is a Layout class that breaks an N-dimensional Interval into equal sized sub-domains arranged in an N-dimensional grid. More...

#include <UniformGridLayout.h>

Inheritance diagram for UniformGridLayout< Dim >:

Inheritance graph
[legend]
Collaboration diagram for UniformGridLayout< Dim >:

Collaboration graph
[legend]

List of all members.

Public Types

enum  { dimensions = Dim }
enum  { repartitionEvent = LayoutData_t::repartitionEvent }
enum  { dynamic = false }
typedef UniformGridLayoutData
< Dim > 
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 UniformGridLayout< Dim > This_t
typedef Observable< This_tObservable_t
typedef DerefIterator< Value_titerator
 Iterator through nodes.
typedef ConstDerefIterator
< Value_t
const_iterator
typedef LayoutData_t::GCFillInfo_t GCFillInfo_t
 Iterator through guard-cell-fill requests.
typedef std::vector
< GCFillInfo_t >
::const_iterator 
FillIterator_t
typedef GuardLayers< Dim > GuardLayers_t

Public Member Functions

 UniformGridLayout ()
 The default constructor does not initialize the layout.
 UniformGridLayout (const Domain_t &, const DistributedTag &)
 UniformGridLayout (const Domain_t &, const GuardLayers_t &, const DistributedTag &)
 UniformGridLayout (const Domain_t &, const Loc< Dim > &, const DistributedTag &)
 UniformGridLayout (const Domain_t &, const Loc< Dim > &, const GuardLayers_t &, const DistributedTag &)
 UniformGridLayout (const Domain_t &, const Loc< Dim > &, const GuardLayers_t &, const GuardLayers_t &, const DistributedTag &)
 UniformGridLayout (const Domain_t &, const ReplicatedTag &)
 UniformGridLayout (const Domain_t &, const GuardLayers_t &, const ReplicatedTag &)
 UniformGridLayout (const Domain_t &, const Loc< Dim > &, const ReplicatedTag &)
 UniformGridLayout (const Domain_t &, const Loc< Dim > &, const GuardLayers_t &, const ReplicatedTag &)
 UniformGridLayout (const Domain_t &, const Loc< Dim > &, const GuardLayers_t &, const GuardLayers_t &, const ReplicatedTag &)
template<class Partitioner >
 UniformGridLayout (const Domain_t &, const Partitioner &, const ContextMapper< Dim > &)
template<class Partitioner >
 UniformGridLayout (const Domain_t &, const Partitioner &, const DistributedTag &)
template<class Partitioner >
 UniformGridLayout (const Domain_t &, const Partitioner &, const ReplicatedTag &)
 UniformGridLayout (const This_t &)
This_toperator= (const This_t &)
 ~UniformGridLayout ()
void initialize (const Domain_t &, const DistributedTag &)
void initialize (const Domain_t &, const ReplicatedTag &)
void initialize (const Domain_t &, const GuardLayers_t &, const DistributedTag &)
void initialize (const Domain_t &, const GuardLayers_t &, const ReplicatedTag &)
void initialize (const Domain_t &, const Loc< Dim > &, const DistributedTag &)
void initialize (const Domain_t &, const Loc< Dim > &, const ReplicatedTag &)
void initialize (const Domain_t &, const Loc< Dim > &, const GuardLayers_t &, const DistributedTag &)
void initialize (const Domain_t &, const Loc< Dim > &, const GuardLayers_t &, const ReplicatedTag &)
void initialize (const Domain_t &, const Loc< Dim > &, const GuardLayers_t &, const GuardLayers_t &, const DistributedTag &)
void initialize (const Domain_t &, const Loc< Dim > &, const GuardLayers_t &, const GuardLayers_t &, const ReplicatedTag &)
template<class Partitioner >
void initialize (const Domain_t &, const Partitioner &, const DistributedTag &)
template<class Partitioner >
void initialize (const Domain_t &, const Partitioner &, const ReplicatedTag &)
template<class Partitioner >
void initialize (const Domain_t &, const Partitioner &, const ContextMapper< Dim > &)
void initialize (const Domain_t &idom, const List_t &nodes, const Loc< Dim > &blocks, bool hasIG, bool hasEG, const GuardLayers_t &ig, const GuardLayers_t &eg)
virtual void notify (LayoutData_t &d, const ObserverEvent &event)
template<class Ostream >
void print (Ostream &ostr) const

Friends

class UniformGridLayoutView
class UniformGridLayoutData< Dim >


Detailed Description

template<int Dim>
class UniformGridLayout< Dim >

UniformGridLayout is a Layout class that breaks an N-dimensional Interval into equal sized sub-domains arranged in an N-dimensional grid.

This is an alternative to the more general Layout class that should perform somewhat faster since subdomains can be found arithmetically, rather than via a search. It is only able to represent grid-like layouts, however.

To construct a UniformGridLayout, you can do any of the following:

  1. provide a global domain, and let the UniformGridLayout perform its default partitioning by just using one single block;
  2. provide a global domain, a Loc with the number of blocks to use along each dimension
  3. provide a global domain and a UniformGridPartition object.

Alternatively, you can use the default UniformGridLayout constructor, and call the 'initialize' method later with the same possible set of arguments.

You can also specify internal and external guard layers for the domains. See the comments in UniformGridLayout below.


Member Typedef Documentation

template<int Dim>
typedef UniformGridLayoutData<Dim> UniformGridLayout< Dim >::LayoutData_t

template<int Dim>
typedef LayoutData_t::Domain_t UniformGridLayout< Dim >::Domain_t

template<int Dim>
typedef LayoutData_t::BaseDomain_t UniformGridLayout< Dim >::BaseDomain_t

template<int Dim>
typedef LayoutData_t::Context_t UniformGridLayout< Dim >::Context_t

template<int Dim>
typedef LayoutData_t::ID_t UniformGridLayout< Dim >::ID_t

template<int Dim>
typedef LayoutData_t::Value_t UniformGridLayout< Dim >::Value_t

template<int Dim>
typedef LayoutData_t::List_t UniformGridLayout< Dim >::List_t

template<int Dim>
typedef UniformGridLayout<Dim> UniformGridLayout< Dim >::This_t

template<int Dim>
typedef Observable<This_t> UniformGridLayout< Dim >::Observable_t

template<int Dim>
typedef DerefIterator<Value_t> UniformGridLayout< Dim >::iterator

Iterator through nodes.

Basically the same as the vector iterator except it dereferences automatically.

Reimplemented from LayoutBase< Dim, UniformGridLayoutData< Dim > >.

template<int Dim>
typedef ConstDerefIterator<Value_t> UniformGridLayout< Dim >::const_iterator

template<int Dim>
typedef LayoutData_t::GCFillInfo_t UniformGridLayout< Dim >::GCFillInfo_t

Iterator through guard-cell-fill requests.

Reimplemented from LayoutBase< Dim, UniformGridLayoutData< Dim > >.

template<int Dim>
typedef std::vector<GCFillInfo_t>::const_iterator UniformGridLayout< Dim >::FillIterator_t

template<int Dim>
typedef GuardLayers<Dim> UniformGridLayout< Dim >::GuardLayers_t


Member Enumeration Documentation

template<int Dim>
anonymous enum

Enumerator:
dimensions 

template<int Dim>
anonymous enum

Enumerator:
repartitionEvent 

template<int Dim>
anonymous enum

Enumerator:
dynamic 


Constructor & Destructor Documentation

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout (  ) 

The default constructor does not initialize the layout.

In this case, layout initialization must be completed with the 'initialize' method before the layout can be used. A default layout has an empty global domain, and empty subdomain lists.

This is also the only constructor that doesn't demand either ReplicatedTag or DistributedTag

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const DistributedTag  
)

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const GuardLayers_t ,
const DistributedTag  
)

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const Loc< Dim > &  ,
const DistributedTag  
)

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const Loc< Dim > &  ,
const GuardLayers_t ,
const DistributedTag  
)

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const Loc< Dim > &  ,
const GuardLayers_t ,
const GuardLayers_t ,
const DistributedTag  
)

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const ReplicatedTag  
)

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const GuardLayers_t ,
const ReplicatedTag  
)

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const Loc< Dim > &  ,
const ReplicatedTag  
)

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const Loc< Dim > &  ,
const GuardLayers_t ,
const ReplicatedTag  
)

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const Loc< Dim > &  ,
const GuardLayers_t ,
const GuardLayers_t ,
const ReplicatedTag  
)

template<int Dim>
template<class Partitioner >
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const Partitioner &  ,
const ContextMapper< Dim > &   
) [inline]

template<int Dim>
template<class Partitioner >
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const Partitioner &  ,
const DistributedTag  
) [inline]

template<int Dim>
template<class Partitioner >
UniformGridLayout< Dim >::UniformGridLayout ( const Domain_t ,
const Partitioner &  ,
const ReplicatedTag  
) [inline]

template<int Dim>
UniformGridLayout< Dim >::UniformGridLayout ( const This_t  ) 

template<int Dim>
UniformGridLayout< Dim >::~UniformGridLayout (  )  [inline]


Member Function Documentation

template<int Dim>
This_t& UniformGridLayout< Dim >::operator= ( const This_t  ) 

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const DistributedTag  
)

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const ReplicatedTag  
)

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const GuardLayers_t ,
const DistributedTag  
)

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const GuardLayers_t ,
const ReplicatedTag  
)

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const Loc< Dim > &  ,
const DistributedTag  
)

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const Loc< Dim > &  ,
const ReplicatedTag  
)

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const Loc< Dim > &  ,
const GuardLayers_t ,
const DistributedTag  
)

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const Loc< Dim > &  ,
const GuardLayers_t ,
const ReplicatedTag  
)

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const Loc< Dim > &  ,
const GuardLayers_t ,
const GuardLayers_t ,
const DistributedTag  
)

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const Loc< Dim > &  ,
const GuardLayers_t ,
const GuardLayers_t ,
const ReplicatedTag  
)

template<int Dim>
template<class Partitioner >
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const Partitioner &  ,
const DistributedTag  
) [inline]

template<int Dim>
template<class Partitioner >
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const Partitioner &  ,
const ReplicatedTag  
) [inline]

template<int Dim>
template<class Partitioner >
void UniformGridLayout< Dim >::initialize ( const Domain_t ,
const Partitioner &  ,
const ContextMapper< Dim > &   
) [inline]

template<int Dim>
void UniformGridLayout< Dim >::initialize ( const Domain_t idom,
const List_t nodes,
const Loc< Dim > &  blocks,
bool  hasIG,
bool  hasEG,
const GuardLayers_t ig,
const GuardLayers_t eg 
)

template<int Dim>
virtual void UniformGridLayout< Dim >::notify ( LayoutData_t d,
const ObserverEvent event 
) [inline, virtual]

template<int Dim>
template<class Ostream >
void UniformGridLayout< Dim >::print ( Ostream &  ostr  )  const [inline]

Referenced by operator<<().


Friends And Related Function Documentation

template<int Dim>
friend class UniformGridLayoutView [friend]

template<int Dim>
friend class UniformGridLayoutData< Dim > [friend]


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

Generated on Wed Mar 16 06:20:40 2011 for FreePOOMA by  doxygen 1.5.9