Chombo + EB + MF
3.2
|
An Iterator based on a BoxLayout object. More...
#include <LayoutIterator.H>
Public Member Functions | |
LayoutIterator () | |
a null constructed LayoutIterator will return false on ok() More... | |
virtual | ~LayoutIterator () |
const LayoutIndex & | operator() () const |
return the index that this iterator is at More... | |
LayoutIndex | i () const |
return a copy of the index that this iterator is at More... | |
virtual void | operator++ () |
move the iterator to the next Box in the layout More... | |
void | incr () |
move the iterator to the next Box in the layout More... | |
virtual bool | ok () const |
return true if this iterator is still in its Layout More... | |
void | begin () |
initialize this iterator to the first Box in its Layout More... | |
void | reset () |
same as begin() More... | |
void | end () |
move this iterator to after the last Box in the layout More... | |
const LayoutIndex & | operator[] (int ivec) const |
LayoutIndex & | operator[] (int ivec) |
Protected Member Functions | |
LayoutIterator (const BoxLayout &a_boxlayout, const int *a_layoutID) | |
Protected Attributes | |
BoxLayout | m_layout |
RefCountedPtr< Vector< LayoutIndex > > | m_indicies |
unsigned int | m_current |
Friends | |
class | BoxLayout |
class | DisjointBoxLayout |
class | TimedDataIterator |
An Iterator based on a BoxLayout object.
An Iterator based on a BoxLayout object. It does not support a dereferencing operation(1), since it is intended to work with all of BoxLayouts, DisjointBoxLayouts, BoxLayoutDatas LevelData's, and any object that is built on top of a BoxLayout object. LayoutIterator accesses the data in a BoxLayout-based object in a NON-data-parallel manner (i.e. every processor iterates through all the Boxes in the BoxLayout). This differs from the DataIterator class.
BoxLayout-based objects can act as the Factory for the LayoutIterator.
(1) STL-speak. not critical for comprehension, but can help people familiar with STL iterators and expecting similar behaviour.
|
inline |
a null constructed LayoutIterator will return false on ok()
|
inlinevirtual |
References operator()().
|
protected |
|
inline |
return the index that this iterator is at
References CH_assert, m_current, m_indicies, and ok().
Referenced by i(), DataIterator::operator()(), and ~LayoutIterator().
|
inline |
return a copy of the index that this iterator is at
References operator()(), and operator++().
|
inlinevirtual |
move the iterator to the next Box in the layout
Reimplemented in TimedDataIterator.
References m_current.
Referenced by i().
|
inline |
|
inlinevirtual |
return true if this iterator is still in its Layout
Reimplemented in TimedDataIterator.
References m_current, m_layout, and BoxLayout::size().
Referenced by LayoutData< Vector< IntVectSet > >::allocate(), BaseIFFactory< T >::BaseIFFactory(), BaseIVFactory< T >::BaseIVFactory(), blockWriteToBuffer(), BlockBaseRegister< FArrayBox >::buildBoxVectors(), BlockBaseRegister< FArrayBox >::buildInverseBlockBdryIndexMap(), ParticleData< P >::clear(), collectValidParticles(), BaseLevelTGA< LevelData< FArrayBox >, FluxBox, LevelFluxRegister >::computeDiffusion(), PetscSolver< LevelData< FArrayBox > >::create_mat_vec(), BlockBaseRegister< FArrayBox >::createDstBoxLayout(), BlockBaseRegister< FArrayBox >::createExchangeBoxLayout(), BlockBaseRegister< FArrayBox >::createSrcBoxLayout(), LevelData< BaseFab< int > >::degenerateLocalOnly(), ViscousTensorOp::diagonalScale(), NWOViscousTensorOp::diagonalScale(), VCAMRPoissonOp2::diagonalScale(), EBViscousTensorOp::diagonalScale(), NWOEBViscousTensorOp::diagonalScale(), ViscousTensorOp::divideByIdentityCoef(), NWOViscousTensorOp::divideByIdentityCoef(), VCAMRPoissonOp2::divideByIdentityCoef(), EBViscousTensorOp::divideByIdentityCoef(), NWOEBViscousTensorOp::divideByIdentityCoef(), MultilevelLinearOp< T >::dotProduct(), ParticleBC::enforcePeriodic(), BCFunction::fillGhostCells(), ParticleData< P >::fillGhosts(), ParticleData< P >::gatherOutcast(), getOffsets(), incr(), EBLevelRedist::increment(), BaseLevelHeatSolver< LevelData< FArrayBox >, FluxBox, LevelFluxRegister >::incrementFlux(), CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > >::interpolatePrime(), IVSFABFactory< T >::IVSFABFactory(), CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > >::NewtonRaphson(), ParticleData< P >::numParticlesLocal(), ParticleData< P >::numValidLocal(), operator()(), readParticlesFromHDF(), EBFastFR::reflux(), regionGather(), ParticleData< P >::remapOutcast(), PetscSolver< LevelData< FArrayBox > >::setup_solver(), MergeSolver< T >::solve(), PetscSolver< LevelData< FArrayBox > >::solve_mfree_private(), write(), WriteMultiData< T >::writeData(), writeParticlesToHDF(), zeroBoxLayoutData(), and LayoutData< Vector< IntVectSet > >::~LayoutData().
|
inline |
initialize this iterator to the first Box in its Layout
References m_current.
Referenced by LevelData< BaseFab< int > >::degenerateLocalOnly(), MultilevelLinearOp< T >::dotProduct(), incr(), and regionGather().
void LayoutIterator::reset | ( | ) |
same as begin()
Referenced by ParticleBC::enforcePeriodic(), and incr().
void LayoutIterator::end | ( | ) |
|
inline |
References m_indicies.
|
inline |
References m_indicies.
|
friend |
|
friend |
|
friend |
|
protected |
|
protected |
Referenced by operator()(), and operator[]().
|
protected |
Referenced by begin(), ok(), operator()(), and operator++().