#include <AMReX_MFIter.H>
Classes | |
| struct | DeviceSync |
Public Types | |
| enum | Flags { Tiling = 0x01 , AllBoxes = 0x02 , NoTeamBarrier = 0x04 } |
| Flags that specify tiling modes. All these flags are off by default. More... | |
Public Member Functions | |
| MFIter (const FabArrayBase &fabarray, unsigned char flags_=0) | |
| The default constructor does not enable tiling (flags_ is set to 0 by default). However, the tiling mode can be enabled by explicitly turning the tiling flag on (i.e. flags_ = Tiling). The tile size in this case is defined by FabArrayBase::mfiter_tile_size. | |
| MFIter (const FabArrayBase &fabarray, bool do_tiling) | |
| Enable tiling with the default tile size, which is defined by FabArrayBase::mfiter_tile_size. | |
| MFIter (const FabArrayBase &fabarray, const IntVect &tilesize, unsigned char flags_=0) | |
| Enable tiling with explicit tile size and flags (See type Flags for more information) | |
| MFIter (const BoxArray &ba, const DistributionMapping &dm, unsigned char flags_=0) | |
| MFIter (const BoxArray &ba, const DistributionMapping &dm, bool do_tiling) | |
| MFIter (const BoxArray &ba, const DistributionMapping &dm, const IntVect &tilesize, unsigned char flags_=0) | |
| MFIter (const FabArrayBase &fabarray, const MFItInfo &info) | |
| MFIter (const BoxArray &ba, const DistributionMapping &dm, const MFItInfo &info) | |
| MFIter (MFIter &&rhs)=default | |
| MFIter (MFIter const &)=delete | |
| MFIter & | operator= (MFIter const &)=delete |
| MFIter & | operator= (MFIter &&)=delete |
| ~MFIter () | |
| Box | tilebox () const noexcept |
| Return the tile Box at the current index. | |
| Box | tilebox (const IntVect &nodal) const noexcept |
| Return the tilebox with provided nodal flag. | |
| Box | tilebox (const IntVect &nodal, const IntVect &ngrow) const noexcept |
| Return the tilebox with provided nodal flag and grown cells. | |
| Box | nodaltilebox (int dir=-1) const noexcept |
| Return the dir-nodal (or all nodal if dir<0) Box at the current index. | |
| Box | growntilebox (int ng=-1000000) const noexcept |
| Return the tile box at the current index grown to include ghost cells. | |
| Box | growntilebox (const IntVect &ng) const noexcept |
| Box | grownnodaltilebox (int dir=-1, int ng=-1000000) const noexcept |
| Return the dir-nodal (or all nodal if dir<0) box grown to include ghost cells. | |
| Box | grownnodaltilebox (int dir, const IntVect &ng) const noexcept |
| Box | validbox () const noexcept |
| Return the valid Box in which the current tile resides. | |
| Box | fabbox () const noexcept |
| Return the Box of the FAB at which we currently point. | |
| void | operator++ () noexcept |
| Increment iterator to the next tile we own. | |
| bool | isValid () const noexcept |
| Is the iterator valid i.e. is it associated with a FAB? | |
| int | index () const noexcept |
| The index into the underlying BoxArray of the current FAB. | |
| int | length () const noexcept |
| The number of indices. | |
| int | LocalTileIndex () const noexcept |
| The current local tile index in the current grid;. | |
| int | numLocalTiles () const noexcept |
| The the number of tiles in the current grid;. | |
| int | LocalIndex () const noexcept |
| Return local index into the vector of fab pointers, m_fabs_v When AllBoxes is on, local_index_map is a nullptr and local index is current index. | |
| const FabArrayBase & | theFabArrayBase () const noexcept |
| Constant reference to FabArray over which we're iterating. | |
| int | tileIndex () const noexcept |
| const DistributionMapping & | DistributionMap () const noexcept |
| void | Finalize () |
Static Public Member Functions | |
| static int | allowMultipleMFIters (int allow) |
| static int | currentDepth () |
Protected Member Functions | |
| void | Initialize () |
Protected Attributes | |
| std::unique_ptr< FabArrayBase > | m_fa |
| This must be the first member! | |
| const FabArrayBase * | fabArray |
| IntVect | tile_size |
| unsigned char | flags |
| int | currentIndex |
| int | beginIndex |
| int | endIndex |
| int | streams |
| IndexType | typ |
| bool | dynamic |
| bool | finalized = false |
| DeviceSync | device_sync |
| const Vector< int > * | index_map |
| const Vector< int > * | local_index_map |
| const Vector< Box > * | tile_array |
| const Vector< int > * | local_tile_index_map |
| const Vector< int > * | num_local_tiles |
Static Protected Attributes | |
| static int | nextDynamicIndex = std::numeric_limits<int>::min() |
| static int | depth = 0 |
| static int | allow_multiple_mfiters = 0 |
| enum amrex::MFIter::Flags |
Flags that specify tiling modes. All these flags are off by default.
| Enumerator | |
|---|---|
| Tiling | Tiling: Enabling the tiling mode. |
| AllBoxes | AllBoxes: If on, all threads/workers loop over all boxes without tiling. This essentially loops over indexMap. Note that many functions won't work with this. |
| NoTeamBarrier | NoTeamBarrier: This option is for Team only. If on, there is no barrier in MFIter dtor. |
|
explicit |
The default constructor does not enable tiling (flags_ is set to 0 by default). However, the tiling mode can be enabled by explicitly turning the tiling flag on (i.e. flags_ = Tiling). The tile size in this case is defined by FabArrayBase::mfiter_tile_size.
| amrex::MFIter::MFIter | ( | const FabArrayBase & | fabarray, |
| bool | do_tiling | ||
| ) |
Enable tiling with the default tile size, which is defined by FabArrayBase::mfiter_tile_size.
| amrex::MFIter::MFIter | ( | const FabArrayBase & | fabarray, |
| const IntVect & | tilesize, | ||
| unsigned char | flags_ = 0 |
||
| ) |
Enable tiling with explicit tile size and flags (See type Flags for more information)
| amrex::MFIter::MFIter | ( | const BoxArray & | ba, |
| const DistributionMapping & | dm, | ||
| unsigned char | flags_ = 0 |
||
| ) |
| amrex::MFIter::MFIter | ( | const BoxArray & | ba, |
| const DistributionMapping & | dm, | ||
| bool | do_tiling | ||
| ) |
| amrex::MFIter::MFIter | ( | const BoxArray & | ba, |
| const DistributionMapping & | dm, | ||
| const IntVect & | tilesize, | ||
| unsigned char | flags_ = 0 |
||
| ) |
| amrex::MFIter::MFIter | ( | const FabArrayBase & | fabarray, |
| const MFItInfo & | info | ||
| ) |
| amrex::MFIter::MFIter | ( | const BoxArray & | ba, |
| const DistributionMapping & | dm, | ||
| const MFItInfo & | info | ||
| ) |
|
default |
|
delete |
| amrex::MFIter::~MFIter | ( | ) |
|
static |
|
static |
|
inlinenoexcept |
|
inlinenoexcept |
Return the Box of the FAB at which we currently point.
| void amrex::MFIter::Finalize | ( | ) |
|
noexcept |
Return the dir-nodal (or all nodal if dir<0) box grown to include ghost cells.
|
noexcept |
Return the tile box at the current index grown to include ghost cells.
|
inlinenoexcept |
The index into the underlying BoxArray of the current FAB.
|
protected |
|
inlinenoexcept |
Is the iterator valid i.e. is it associated with a FAB?
|
inlinenoexcept |
The number of indices.
|
inlinenoexcept |
Return local index into the vector of fab pointers, m_fabs_v When AllBoxes is on, local_index_map is a nullptr and local index is current index.
|
inlinenoexcept |
The current local tile index in the current grid;.
|
noexcept |
Return the dir-nodal (or all nodal if dir<0) Box at the current index.
|
inlinenoexcept |
The the number of tiles in the current grid;.
|
noexcept |
Increment iterator to the next tile we own.
|
inlinenoexcept |
Constant reference to FabArray over which we're iterating.
|
noexcept |
Return the tile Box at the current index.
Return the tilebox with provided nodal flag.
Return the tilebox with provided nodal flag and grown cells.
|
inlinenoexcept |
|
inlinenoexcept |
Return the valid Box in which the current tile resides.
|
staticprotected |
|
protected |
|
protected |
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
This must be the first member!
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
protected |