Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Compound Members File Members
BoxLayoutData< T > Class Template Reference
Data on a BoxLayout.
More...
#include <BoxLayoutData.H>
Inheritance diagram for BoxLayoutData< T >:
[legend]Collaboration diagram for BoxLayoutData< T >:
[legend]List of all members.
Public Methods |
| BoxLayoutData () |
virtual | ~BoxLayoutData () |
| BoxLayoutData (const BoxLayout &boxes, int comps, const DataFactory< T > &factory=DefaultDataFactory< T >()) |
virtual void | define (const BoxLayout &boxes, int comps, const DataFactory< T > &factory=DefaultDataFactory< T >()) |
virtual void | define (const BoxLayoutData< T > &da, const DataFactory< T > &factory=DefaultDataFactory< T >()) |
virtual void | define (const BoxLayoutData< T > &da, const Interval &comps, const DataFactory< T > &factory=DefaultDataFactory< T >()) |
virtual void | define (const BoxLayout &boxes) |
| overridden and throws an error.
|
int | nComp () const |
Interval | interval () const |
void | setVal (void(*setFunction)(const Box &box, int comps, T &t)) |
virtual bool | isDefined () const |
Protected Methods |
void | setVector (const BoxLayoutData< T > &da, const Interval &srcComps, const Interval &destComps) |
void | allocateGhostVector (const DataFactory< T > &factory, const IntVect &ghost=IntVect::TheZeroVector()) |
Protected Attributes |
int | m_comps |
bool | m_isdefined |
Friends |
class | LevelData< T > |
Detailed Description
template<class T>
class BoxLayoutData< T >
Data on a BoxLayout.
A collection of Box-oriented objects. The arrangement of Boxes is given by the underlying BoxLayout object. BoxLayoutData attempt to prevent users from maniupulating the template class T to become out of synch with the boxes in the BoxLayout. Caveat emptor.
All access to the data in a BoxLayoutData is forced to be data-parallel, by use of the DataIterator.
class T must provide the following methods: \begin{itemize} \item {\tt T()} \item {\tt T(const Box& box, int comps)} \item {\tt define(const Box& box, int comps)} \item {\tt void copy(const Box& R, const Interval& Cd, const T& source, const Interval Cs)} Cs and Cd must have same length, but can be displaced
\item {\tt static int preAllocatable()} returns 0 if the size(...) function is strictly a function of Box and Interval, and does not depend on the current state of the T object. return 1 if size(..) is symmetric, in that sender and receiver T object can size their message buffers, but a static object cannot. returns 2 if the object is truly dynamic. the message size is subject to unique object data. \item {\tt int size(const Box& R, const Interval& comps)} \item {\tt void linearOut(void* buf, const Box& R, const Interval& comps)} \item {\tt void linearIn(void* buf, const Box& R, const Interval& comps)} \end{itemize}
In sequential codes, many of these functions will not be called, but in the general parallel case, they all will be.
Constructor & Destructor Documentation
template<class T> |
BoxLayoutData< T >::BoxLayoutData |
( |
|
) |
[inline] |
|
template<class T> |
virtual BoxLayoutData< T >::~BoxLayoutData |
( |
|
) |
[inline, virtual] |
|
Member Function Documentation
template<class T> |
void BoxLayoutData< T >::allocateGhostVector |
( |
const DataFactory< T > & |
factory, |
|
|
const IntVect & |
ghost = IntVect::TheZeroVector() |
|
) |
[inline, protected] |
|
template<class T> |
void BoxLayoutData< T >::define |
( |
const BoxLayout & |
boxes |
) |
[inline, virtual] |
|
template<class T> |
void BoxLayoutData< T >::define |
( |
const BoxLayoutData< T > & |
da, |
|
|
const Interval & |
comps, |
|
|
const DataFactory< T > & |
factory = DefaultDataFactory< T >() |
|
) |
[inline, virtual] |
|
template<class T> |
void BoxLayoutData< T >::define |
( |
const BoxLayoutData< T > & |
da, |
|
|
const DataFactory< T > & |
factory = DefaultDataFactory< T >() |
|
) |
[inline, virtual] |
|
template<class T> |
Interval BoxLayoutData< T >::interval |
( |
|
) |
const [inline] |
|
template<class T> |
bool BoxLayoutData< T >::isDefined |
( |
|
) |
const [inline, virtual] |
|
template<class T> |
int BoxLayoutData< T >::nComp |
( |
|
) |
const [inline] |
|
template<class T> |
void BoxLayoutData< T >::setVal |
( |
void(* |
setFunction)(const Box &box, int comps, T &t) |
) |
[inline] |
|
template<class T> |
void BoxLayoutData< T >::setVector |
( |
const BoxLayoutData< T > & |
da, |
|
|
const Interval & |
srcComps, |
|
|
const Interval & |
destComps |
|
) |
[inline, protected] |
|
Friends And Related Function Documentation
template<class T> |
friend class LevelData< T > [friend]
|
|
Member Data Documentation
template<class T> |
int BoxLayoutData< T >::m_comps [protected]
|
|
template<class T> |
bool BoxLayoutData< T >::m_isdefined [protected]
|
|
The documentation for this class was generated from the following file:
Generated on Wed Apr 16 14:35:03 2003 for EBChombo by
1.2.16