|
Chombo + EB
3.2
|
#include <BoxLayoutData.H>

Public Member Functions | |
| 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... | |
| virtual bool | threadSafe () const |
| 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 () |
Public Member Functions inherited from LayoutData< T > | |
| 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 |
Static Public Attributes | |
| static int | s_verbosity = 0 |
Protected Member Functions | |
| 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 |
Protected Attributes | |
| int | m_comps |
| bool | m_threadSafe |
| bool | m_isdefined |
Parallel messaging members | |
| CopierBuffer * | m_buff |
Protected Attributes inherited from LayoutData< T > | |
| BoxLayout | m_boxLayout |
| Vector< T * > | m_vector |
| bool | m_callDelete |
Friends | |
| class | LevelData< 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 manipulating the template class T to become out of sync 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& Rfrom, const Interval& Cd, const Box& Rto, const T& source, const Interval Cs) Cs and Cd must have same length, but can be displaced; Rfrom and Rto must be the same size, but can be translated.
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)
writes the T object into the byte stream buf, already allocated. void linearIn(void* buf, const Box& R, const Interval& comps)
reads in the T object from the byte stream buf. In sequential codes, many of these functions will not be called, but in the general parallel case, they all will be.
|
inline |
|
virtual |
|
inline |
|
inlinevirtual |
Reimplemented in LevelData< T >, LevelData< EBGraph >, LevelData< NodeFArrayBox >, LevelData< CodimBox< FArrayBox > >, LevelData< BaseFab< IntVect > >, LevelData< FluxBox >, LevelData< BaseIVFAB< Real > >, LevelData< BaseFab< PetscInt > >, LevelData< BaseIFFAB< Real > >, LevelData< EBCellFAB >, LevelData< EdgeDataBox >, LevelData< BaseFab< bool > >, LevelData< FArrayBox >, LevelData< EBData >, LevelData< EBFluxFAB >, and LevelData< BaseFab< int > >.
Referenced by AliasDataFactory< T >::AliasDataFactory(), BoxLayoutData< BaseFab< int > >::generalCopyTo(), and read().
|
inlinevirtual |
Reimplemented in LevelData< T >, LevelData< EBGraph >, LevelData< NodeFArrayBox >, LevelData< CodimBox< FArrayBox > >, LevelData< BaseFab< IntVect > >, LevelData< FluxBox >, LevelData< BaseIVFAB< Real > >, LevelData< BaseFab< PetscInt > >, LevelData< BaseIFFAB< Real > >, LevelData< EBCellFAB >, LevelData< EdgeDataBox >, LevelData< BaseFab< bool > >, LevelData< FArrayBox >, LevelData< EBData >, LevelData< EBFluxFAB >, and LevelData< BaseFab< int > >.
|
inlinevirtual |
Define this BoxLayoutData to be the subset of the data in da defined by the Interval comps.
Reimplemented in LevelData< T >, LevelData< EBGraph >, LevelData< NodeFArrayBox >, LevelData< CodimBox< FArrayBox > >, LevelData< BaseFab< IntVect > >, LevelData< FluxBox >, LevelData< BaseIVFAB< Real > >, LevelData< BaseFab< PetscInt > >, LevelData< BaseIFFAB< Real > >, LevelData< EBCellFAB >, LevelData< EdgeDataBox >, LevelData< BaseFab< bool > >, LevelData< FArrayBox >, LevelData< EBData >, LevelData< EBFluxFAB >, and LevelData< BaseFab< int > >.
|
inlinevirtual |
overridden and throws an error.
Reimplemented from LayoutData< T >.
Reimplemented in LevelData< T >, LevelData< EBGraph >, LevelData< NodeFArrayBox >, LevelData< CodimBox< FArrayBox > >, LevelData< BaseFab< IntVect > >, LevelData< FluxBox >, LevelData< BaseIVFAB< Real > >, LevelData< BaseFab< PetscInt > >, LevelData< BaseIFFAB< Real > >, LevelData< EBCellFAB >, LevelData< EdgeDataBox >, LevelData< BaseFab< bool > >, LevelData< FArrayBox >, LevelData< EBData >, LevelData< EBFluxFAB >, and LevelData< BaseFab< int > >.
|
inlinevirtual |
|
inline |
Referenced by LevelDataOps< FArrayBox >::assign(), LevelData< BaseFab< int > >::copyTo(), LevelDataOps< FArrayBox >::copyToZero(), LevelDataOps< FArrayBox >::create(), BoxLayoutData< BaseFab< int > >::define(), LevelData< BaseFab< int > >::degenerate(), LevelData< BaseFab< int > >::degenerateLocalOnly(), MultilevelLinearOp< T >::dotProduct(), VCAMRPoissonOp2::getFlux(), AMRPoissonOp::getFlux(), LevelDataOps< FArrayBox >::incr(), LevelData< BaseFab< int > >::localCopyTo(), MergeSolver< T >::solve(), and WriteMultiData< T >::writeData().
|
inline |
Referenced by LevelData< BaseFab< int > >::copyTo(), AliasDataFactory< T >::define(), LevelData< BaseFab< int > >::exchange(), SimpleAdaptor::exchange(), LevelData< BaseFab< int > >::exchangeBegin(), LevelData< BaseFab< int > >::exchangeEnd(), LevelData< BaseFab< int > >::exchangeNoOverlap(), LevelData< BaseFab< int > >::LevelData(), LevelData< BaseFab< int > >::localCopyTo(), write(), and WriteMultiData< T >::writeData().
| void BoxLayoutData< T >::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.
| a_destGrids | BoxLayout for the destination data holder |
| a_dest | return argument. upon completion contains a Vector of T objects for each Box in a_destGrids that overlaps this->boxLayout() |
| a_interval | range of components to source |
| a_domain | ProblemDomain that this grid and a_destGrids reside on. |
| factory | optional data factory for template classes that have non-trivial construction |
Referenced by BoxLayoutData< BaseFab< int > >::generalCopyTo().
| void BoxLayoutData< T >::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 BoxLayoutData< T >::addTo | ( | const Interval & | a_srcComps, |
| BoxLayoutData< T > & | a_dest, | ||
| const Interval & | a_destComps, | ||
| const ProblemDomain & | a_domain | ||
| ) | const |
Special version of generalCopyTo that performs increment-on-intersection of the destination instead of replacement
Referenced by BoxLayoutData< BaseFab< int > >::addTo().
| void BoxLayoutData< T >::addTo | ( | const Interval & | a_srcComps, |
| BoxLayoutData< T > & | a_dest, | ||
| const Interval & | a_destComps, | ||
| const ProblemDomain & | a_domain, | ||
| const Copier & | a_copier | ||
| ) | const |
Special version of generalCopyTo that performs increment-on-intersection of the destination instead of replacement. This version lets the user send in a pre-built Copier.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlineprotected |
|
inlineprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
friend |
|
static |
Referenced by BoxLayoutData< BaseFab< int > >::unpackReceivesToMe_append().
|
protected |
|
protected |
|
protected |
|
mutableprotected |
1.8.13