#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. More... | |
MFIter (const FabArrayBase &fabarray, bool do_tiling) | |
Enable tiling with the default tile size, which is defined by FabArrayBase::mfiter_tile_size. More... | |
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) More... | |
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. More... | |
Box | tilebox (const IntVect &nodal) const noexcept |
Return the tilebox with provided nodal flag. More... | |
Box | tilebox (const IntVect &nodal, const IntVect &ngrow) const noexcept |
Return the tilebox with provided nodal flag and grown cells. More... | |
Box | nodaltilebox (int dir=-1) const noexcept |
Return the dir-nodal (or all nodal if dir<0) Box at the current index. More... | |
Box | growntilebox (int ng=-1000000) const noexcept |
Return the tile box at the current index grown to include ghost cells. More... | |
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. More... | |
Box | grownnodaltilebox (int dir, const IntVect &ng) const noexcept |
Box | validbox () const noexcept |
Return the valid Box in which the current tile resides. More... | |
Box | fabbox () const noexcept |
Return the Box of the FAB at which we currently point. More... | |
void | operator++ () noexcept |
Increment iterator to the next tile we own. More... | |
bool | isValid () const noexcept |
Is the iterator valid i.e. is it associated with a FAB? More... | |
int | index () const noexcept |
The index into the underlying BoxArray of the current FAB. More... | |
int | length () const noexcept |
The number of indices. More... | |
int | LocalTileIndex () const noexcept |
The current local tile index in the current grid;. More... | |
int | numLocalTiles () const noexcept |
The the number of tiles in the current grid;. More... | |
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. More... | |
const FabArrayBase & | theFabArrayBase () const noexcept |
Constant reference to FabArray over which we're iterating. More... | |
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! More... | |
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 AMREX_EXPORT int | nextDynamicIndex = std::numeric_limits<int>::min() |
static AMREX_EXPORT int | depth = 0 |
static AMREX_EXPORT 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 |
|
inlinenoexcept |
|
inlinenoexcept |
Return the Box of the FAB at which we currently point.
void amrex::MFIter::Finalize | ( | ) |
Return the dir-nodal (or all nodal if dir<0) box grown to include ghost cells.
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;.
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 |
This must be the first member!
|
protected |
|
protected |
|
protected |