|
| | 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. More...
|
| |
| int | nComp () const |
| |
| Interval | interval () const |
| |
| void | generalCopyTo (const BoxLayout &a_destGrids, LayoutData< Vector< RefCountedPtr< T > > > &a_dest, const Interval &a_interval, const ProblemDomain &a_domain, const DataFactory< T > &factory=DefaultDataFactory< T >()) const |
| | General data copying operation. More...
|
| |
| void | generalCopyTo (const BoxLayout &a_destGrids, LayoutData< Vector< RefCountedPtr< T > > > &a_dest, const Interval &a_interval, const ProblemDomain &a_domain, const Copier &a_copier, const DataFactory< T > &factory=DefaultDataFactory< T >()) const |
| |
| void | addTo (const Interval &a_srcComps, BoxLayoutData< T > &a_dest, const Interval &a_destComps, const ProblemDomain &a_domain) const |
| |
| void | addTo (const Interval &a_srcComps, BoxLayoutData< T > &a_dest, const Interval &a_destComps, const ProblemDomain &a_domain, const Copier &a_copier) const |
| |
| virtual void | apply (void(*a_Function)(const Box &box, int comps, T &t)) |
| |
| virtual bool | isDefined () const |
| |
| virtual void | clear () |
| |
| | LayoutData () |
| |
| | LayoutData (const BoxLayout &a_dp) |
| |
| virtual | ~LayoutData () |
| |
| DataIterator | dataIterator () const |
| |
| TimedDataIterator | timedDataIterator () const |
| |
| const T & | operator[] (const DataIndex &a_index) const |
| | const accessor function More...
|
| |
| const T & | operator[] (const DataIterator &a_iterator) const |
| | const accessor function More...
|
| |
| T & | operator[] (const DataIndex &a_index) |
| | non-const accessor function More...
|
| |
| T & | operator[] (const DataIterator &a_iterator) |
| | non-const accessor function More...
|
| |
| Box | box (const DataIndex &a_index) const |
| |
| Box | box (const DataIterator &a_iterator) const |
| |
| const BoxLayout & | boxLayout () const |
| |
|
| void | setVector (const BoxLayoutData< T > &da, const Interval &srcComps, const Interval &destComps) |
| |
| void | allocateGhostVector (const DataFactory< T > &factory, const IntVect &ghost=IntVect::Zero) |
| |
| void | makeItSo (const Interval &a_srcComps, const BoxLayoutData< T > &a_src, BoxLayoutData< T > &a_dest, const Interval &a_destComps, const Copier &a_copier, const LDOperator< T > &a_op=LDOperator< T >()) const |
| |
| void | makeItSoBegin (const Interval &a_srcComps, const BoxLayoutData< T > &a_src, BoxLayoutData< T > &a_dest, const Interval &a_destComps, const Copier &a_copier, const LDOperator< T > &a_op=LDOperator< T >()) const |
| |
| void | makeItSoLocalCopy (const Interval &a_srcComps, const BoxLayoutData< T > &a_src, BoxLayoutData< T > &a_dest, const Interval &a_destComps, const Copier &a_copier, const LDOperator< T > &a_op=LDOperator< T >()) const |
| |
| void | makeItSoEnd (BoxLayoutData< T > &a_dest, const Interval &a_destComps, const LDOperator< T > &a_op=LDOperator< T >()) const |
| |
| void | completePendingSends () const |
| |
| void | allocateBuffers (const BoxLayoutData< T > &a_src, const Interval &a_srcComps, const BoxLayoutData< T > &a_dest, const Interval &a_destComps, const Copier &a_copier, const LDOperator< T > &a_op) const |
| |
| void | writeSendDataFromMeIntoBuffers (const BoxLayoutData< T > &a_src, const Interval &a_srcComps, const LDOperator< T > &a_op) const |
| |
| void | postSendsFromMe () const |
| |
| void | postReceivesToMe () const |
| |
| void | unpackReceivesToMe (BoxLayoutData< T > &a_dest, const Interval &a_destComps, const LDOperator< T > &a_op) const |
| |
| void | unpackReceivesToMe_append (LayoutData< Vector< RefCountedPtr< T > > > &a_dest, const Interval &a_destComps, int ncomp, const DataFactory< T > &factory, const LDOperator< T > &a_op) const |
| |
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:
T()
T(const Box& box, int comps)
define(const Box& box, int comps)
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
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.
int size(const Box& R, const Interval& comps)
void linearOut(void* buf, const Box& R, const Interval& comps)
void linearIn(void* buf, const Box& R, const Interval& comps)
In sequential codes, many of these functions will not be called, but in the general parallel case, they all will be.