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 >:

Inheritance graph
[legend]
Collaboration diagram for BoxLayoutData< T >:

Collaboration graph
[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]
 

template<class T>
BoxLayoutData< T >::BoxLayoutData const BoxLayout   boxes,
int    comps,
const DataFactory< T > &    factory = DefaultDataFactory< T >()
[inline]
 


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]
 

overridden and throws an error.

Reimplemented from LayoutData< T >.

Reimplemented in LevelData< T >, LevelData< FluxBox >, and LevelData< FArrayBox >.

template<class T>
void BoxLayoutData< T >::define const BoxLayoutData< T > &    da,
const Interval   comps,
const DataFactory< T > &    factory = DefaultDataFactory< T >()
[inline, virtual]
 

Define this BoxLayoutData to be the subset of the data in da defined by the Interval comps.

Reimplemented in LevelData< T >, LevelData< FluxBox >, and LevelData< FArrayBox >.

template<class T>
void BoxLayoutData< T >::define const BoxLayoutData< T > &    da,
const DataFactory< T > &    factory = DefaultDataFactory< T >()
[inline, virtual]
 

Reimplemented in LevelData< T >, LevelData< FluxBox >, and LevelData< FArrayBox >.

template<class T>
void BoxLayoutData< T >::define const BoxLayout   boxes,
int    comps,
const DataFactory< T > &    factory = DefaultDataFactory< T >()
[inline, virtual]
 

Reimplemented in LevelData< T >, LevelData< FluxBox >, and LevelData< FArrayBox >.

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 Thu Aug 29 11:07:37 2002 for Chombo&INS by doxygen1.2.16