|
| | ReductionCopier () |
| | null constructor, copy constructor and operator= can be compiler defined. More...
|
| |
| | ReductionCopier (const bool &a_usingFaceSumOp, const DisjointBoxLayout &a_sourceLayout, const BoxLayout &a_destLayout, const ProblemDomain &a_domain, const IntVect &a_destGhost, const IntVect &a_reduceDir, bool a_exchange=false) |
| | face sum op requires that destGhost -> destGhost + Unit; this helps cell-centerd box calculus work for face-centered data More...
|
| |
| | ReductionCopier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, int a_transverseDir, bool a_exchange=false) |
| |
| | ReductionCopier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, int a_transverseDir, bool a_exchange=false) |
| | this constructor contains support for periodic BC's More...
|
| |
| | ReductionCopier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const IntVect &a_destGhost, int a_transverseDir, bool a_exchange=false) |
| | Copier to copy data into the valid and invalid regions of a_dest from a_level. More...
|
| |
| | ReductionCopier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_destGhost, int a_transverseDir, bool a_exchange=false) |
| | Copier to copy data into the valid and invalid regions of a_dest from a_level with support for periodic BCs. More...
|
| |
| | ReductionCopier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const Vector< int > &a_transverseDir, bool a_exchange=false) |
| |
| | ReductionCopier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, const Vector< int > &a_transverseDir, bool a_exchange=false) |
| | this constructor contains support for periodic BC's More...
|
| |
| | ReductionCopier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const IntVect &a_destGhost, const Vector< int > &a_transverseDir, bool a_exchange=false) |
| | Copier to copy data into the valid and invalid regions of a_dest from a_level. More...
|
| |
| | ReductionCopier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_destGhost, const Vector< int > &a_transverseDir, bool a_exchange=false) |
| | Copier to copy data into the valid and invalid regions of a_dest from a_level with support for periodic BCs. More...
|
| |
| virtual | ~ReductionCopier () |
| |
| virtual void | define (const bool &a_usingFaceSumOp, const DisjointBoxLayout &a_sourceLayout, const BoxLayout &a_destLayout, const ProblemDomain &a_domain, const IntVect &a_ghostVect, const Vector< int > &a_reduceDir, bool a_exchange=false) |
| |
| virtual void | setMotionItems (const int &a_itemProcID, const Box &a_fromBox, const Box &a_toBox, const bool &a_firstLoop, const DataIndex &a_fromdi, const DataIndex &a_todi, const bool &a_exchange=false) |
| |
| virtual void | nestedDILoops (const bool &a_firstLoop, const BoxLayout &a_sourceLayout, const BoxLayout &a_destLayout, const IntVect &a_ghostVect, const Box &a_domainBox, vector< DataIndex > &a_outerLoop, vector< DataIndex > &a_innerLoop, const Vector< int > &a_reduceLo, const Vector< int > &a_reduceHi, bool a_exchange=false) |
| |
| virtual void | define (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, int a_transverseDir, bool a_exchange=false) |
| |
| virtual void | define (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, int a_transverseDir, bool a_exchange=false) |
| | contains support for periodic BCs More...
|
| |
| virtual void | define (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const IntVect &a_destGhost, int a_transverseDir, bool a_exchange=false) |
| |
| virtual void | define (const BoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_destGhost, int a_transverseDir, bool a_exchange=false) |
| | contains support for periodic BCs More...
|
| |
| virtual void | define (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const Vector< int > &a_transverseDir, bool a_exchange=false) |
| |
| virtual void | define (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, const Vector< int > &a_transverseDir, bool a_exchange=false) |
| | contains support for periodic BCs More...
|
| |
| virtual void | define (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const IntVect &a_destGhost, const Vector< int > &a_transverseDir, bool a_exchange=false) |
| |
| virtual void | define (const BoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_destGhost, const Vector< int > &a_transverseDir, bool a_exchange=false) |
| | contains support for periodic BCs More...
|
| |
| void | reverse () |
| | reverse the direction of copy for an already-defined ReductionCopier More...
|
| |
| bool | check (const DisjointBoxLayout &from, const BoxLayout &to) const |
| | check that this Copier object corresponds to these two BoxLayouts. More...
|
| |
| int | print () const |
| |
| | Copier () |
| | null constructor, copy constructor and operator= can be compiler defined. More...
|
| |
| | Copier (const Copier &a_rhs) |
| |
| | Copier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, bool a_exchange=false, IntVect a_shift=IntVect::Zero) |
| |
| | Copier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, bool a_exchange=false, IntVect a_shift=IntVect::Zero) |
| | this constructor contains support for periodic BC's More...
|
| |
| | Copier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const IntVect &a_destGhost, bool a_exchange=false, IntVect a_shift=IntVect::Zero) |
| | Copier to copy data into the valid and invalid regions of a_dest from a_level. More...
|
| |
| | Copier (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_destGhost, bool a_exchange=false, IntVect a_shift=IntVect::Zero) |
| | Copier to copy data into the valid and invalid regions of a_dest from a_level with support for periodic BCs. More...
|
| |
| virtual | ~Copier () |
| |
| virtual void | define (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, bool a_exchange=false, IntVect a_shift=IntVect::Zero) |
| |
| virtual void | define (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, bool a_exchange=false, IntVect a_shift=IntVect::Zero) |
| | contains support for periodic BCs More...
|
| |
| virtual void | define (const DisjointBoxLayout &a_level, const BoxLayout &a_dest, const IntVect &a_destGhost, bool a_exchange=false, IntVect a_shift=IntVect::Zero) |
| |
| virtual void | define (const BoxLayout &a_level, const BoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_destGhost, bool a_exchange=false, IntVect a_shift=IntVect::Zero) |
| | contains support for periodic BCs More...
|
| |
| virtual void | exchangeDefine (const DisjointBoxLayout &a_grids, const IntVect &a_ghost, bool a_includeSelf=false) |
| | alternative version of define for exchange copiers that uses new optimized neighborIterator More...
|
| |
| void | defineFixedBoxSize (const DisjointBoxLayout &a_src, const LMap &a_lmap, const IntVect &a_ghost, const ProblemDomain &a_domain, bool a_includeSelf=false, bool a_reverse=false) |
| |
| void | defineFixedBoxSize (const DisjointBoxLayout &a_src, const LMap &a_lmapSrc, const IntVect &a_refRatioSrc, const DisjointBoxLayout &a_dst, const LMap &a_lmapDst, const IntVect &a_refRatioDst, const IntVect &a_ghost, const ProblemDomain &a_domain, bool a_reverse=false) |
| |
| void | defineFixedSizeNodesCollect (const DisjointBoxLayout &a_layout, const LMap &a_lmap, const IntVect &a_ghostSrc, const IntVect &a_ghostDst, const ProblemDomain &a_domain) |
| |
| void | defineFixedSizeNodesCollect (const DisjointBoxLayout &a_src, const LMap &a_lmapSrc, const IntVect &a_refRatioSrc, const IntVect &a_ghostSrc, const DisjointBoxLayout &a_dst, const LMap &a_lmapDst, const IntVect &a_refRatioDst, const IntVect &a_ghostDst, const ProblemDomain &a_domain) |
| |
| void | ghostDefine (const DisjointBoxLayout &a_src, const DisjointBoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_srcGhost) |
| | performs the computation necessary for moving from ghost+valid cells to all valid cells in a_dest More...
|
| |
| void | ghostDefine (const DisjointBoxLayout &a_src, const DisjointBoxLayout &a_dest, const ProblemDomain &a_domain, const IntVect &a_srcGhost, const IntVect &a_destGhost) |
| | performs the computation necessary for moving from ghost+valid cells to all valid+ghost cells in a_dest More...
|
| |
| virtual void | clear () |
| |
| Copier & | operator= (const Copier &b) |
| |
| void | reverse () |
| |
| void | trimEdges (const DisjointBoxLayout &a_exchangedLayout, const IntVect &ghost) |
| |
| void | coarsen (int a_refRatio) |
| |
| bool | operator== (const Copier &rhs) const |
| |
| int | print () const |
| |
| bool | bufferAllocated () const |
| |
| void | setBufferAllocated (bool arg) const |
| |
| int | numLocalCellsToCopy () const |
| |
| int | numFromCellsToCopy () const |
| |
| int | numToCellsToCopy () const |
| |
| bool | isDefined () const |
| |
Specialized copier for doing reductions in dimensionality.
This is a specialized Copier designed to copy from a multi-dimensional DisjointBoxLayout to a smaller-dimensional one by copying all of the data in the transverse direction to the destination boxLayout. It is assumed that this will be used with a different sort of operator (like a summation operator, for example), since a straight copy operation wouldn't make much sense. Anyway, this just defines the intersection regions; what you do with them is your problem.
Note also that both the Spreading and Reduction Copiers ignore periodicity, since it can lead to unintended side-effects and multiple-counting of data. The way to handle periodicity is to do an exchange on the source data before calling the copyTo which does the reduction.