3#include <AMReX_Config.H>
17template<
class T>
class FabArray;
110 unsigned char flags_=0);
119 unsigned char flags_=0);
126 const IntVect& tilesize,
unsigned char flags_=0);
211 std::unique_ptr<FabArrayBase>
m_fa;
234 explicit operator bool() const noexcept {
return flag; }
257 return x.DistributionMap() ==
y.DistributionMap()
#define AMREX_EXPORT
Definition AMReX_Extension.H:223
Common infrastructure shared by FabArray specializations.
Reference-counted collection of Boxes.
Definition AMReX_BoxArray.H:681
static bool SameRefs(const BoxArray &lhs, const BoxArray &rhs)
whether two BoxArrays share the same data
Definition AMReX_BoxArray.H:1251
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:51
Base class for FabArray.
Definition AMReX_FabArrayBase.H:47
static IntVect mfiter_tile_size
Default tilesize in MFIter.
Definition AMReX_FabArrayBase.H:306
const DistributionMapping & DistributionMap() const noexcept
Return constant reference to associated DistributionMapping.
Definition AMReX_FabArrayBase.H:135
Box box(int K) const noexcept
Return the Kth Box in the BoxArray. That is, the valid region of the Kth grid.
Definition AMReX_FabArrayBase.H:106
Box fabbox(int K) const noexcept
Return the Kth FABs Box in the FabArray. That is, the region the Kth fab is actually defined on.
Definition AMReX_FabArrayBase.cpp:217
Iterator for looping ever tiles and boxes of amrex::FabArray based containers.
Definition AMReX_MFIter.H:88
int LocalTileIndex() const noexcept
The current local tile index in the current grid;.
Definition AMReX_MFIter.H:185
static int nextDynamicIndex
Definition AMReX_MFIter.H:247
const Vector< Box > * tile_array
Definition AMReX_MFIter.H:243
unsigned char flags
Definition AMReX_MFIter.H:217
IndexType typ
Definition AMReX_MFIter.H:222
bool dynamic
Definition AMReX_MFIter.H:224
DeviceSync device_sync_pre
Definition AMReX_MFIter.H:238
Box growntilebox(int ng=-1000000) const noexcept
Return the tile box at the current index grown to include ghost cells.
Definition AMReX_MFIter.cpp:457
Box fabbox() const noexcept
Return the Box of the FAB at which we currently point.
Definition AMReX_MFIter.H:170
int length() const noexcept
The number of indices.
Definition AMReX_MFIter.H:182
bool finalized
Definition AMReX_MFIter.H:225
static int allowMultipleMFIters(int allow)
Definition AMReX_MFIter.cpp:14
MFIter & operator=(MFIter const &)=delete
int tileIndex() const noexcept
Definition AMReX_MFIter.H:199
int endIndex
Definition AMReX_MFIter.H:220
Box tilebox() const noexcept
Return the tile Box at the current index.
Definition AMReX_MFIter.cpp:389
static int depth
Definition AMReX_MFIter.H:248
MFIter(MFIter const &)=delete
DeviceSync device_sync
Definition AMReX_MFIter.H:237
const DistributionMapping & DistributionMap() const noexcept
Definition AMReX_MFIter.H:201
bool isValid() const noexcept
Is the iterator valid i.e. is it associated with a FAB?
Definition AMReX_MFIter.H:176
int streams
Definition AMReX_MFIter.H:221
int beginIndex
Definition AMReX_MFIter.H:219
MFIter(MFIter &&rhs)=default
const Vector< int > * local_tile_index_map
Definition AMReX_MFIter.H:244
Box validbox() const noexcept
Return the valid Box in which the current tile resides.
Definition AMReX_MFIter.H:167
Box nodaltilebox(int dir=-1) const noexcept
Return the dir-nodal (or all nodal if dir<0) tile Box at the current index. The Box is cell-centered ...
Definition AMReX_MFIter.cpp:448
void Finalize()
Definition AMReX_MFIter.cpp:231
const Vector< int > * local_index_map
Definition AMReX_MFIter.H:242
const Vector< int > * num_local_tiles
Definition AMReX_MFIter.H:245
DeviceSync device_sync_post
Definition AMReX_MFIter.H:239
int index() const noexcept
The index into the underlying BoxArray of the current FAB.
Definition AMReX_MFIter.H:179
~MFIter()
Definition AMReX_MFIter.cpp:225
static int allow_multiple_mfiters
Definition AMReX_MFIter.H:249
int LocalIndex() const noexcept
Return local index into the vector of fab pointers, m_fabs_v When AllBoxes is on, local_index_map is ...
Definition AMReX_MFIter.H:194
int currentIndex
Definition AMReX_MFIter.H:218
const Vector< int > * index_map
Definition AMReX_MFIter.H:241
const FabArrayBase & theFabArrayBase() const noexcept
Constant reference to FabArray over which we're iterating.
Definition AMReX_MFIter.H:197
static int currentDepth()
Definition AMReX_MFIter.cpp:21
void Initialize()
Definition AMReX_MFIter.cpp:278
std::unique_ptr< FabArrayBase > m_fa
This must be the first member!
Definition AMReX_MFIter.H:211
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.
Definition AMReX_MFIter.cpp:491
IntVect tile_size
Definition AMReX_MFIter.H:215
void operator++() noexcept
Increment iterator to the next tile we own.
Definition AMReX_MFIter.cpp:507
Flags
Flags that specify tiling modes. All these flags are off by default.
Definition AMReX_MFIter.H:91
@ Tiling
Tiling: Enabling the tiling mode.
Definition AMReX_MFIter.H:93
@ AllBoxes
AllBoxes: If on, all threads/workers loop over all boxes without tiling. This essentially loops over ...
Definition AMReX_MFIter.H:99
@ NoTeamBarrier
NoTeamBarrier: This option is for Team only. If on, there is no barrier in MFIter dtor.
Definition AMReX_MFIter.H:101
int numLocalTiles() const noexcept
The the number of tiles in the current grid;.
Definition AMReX_MFIter.H:188
const FabArrayBase * fabArray
Definition AMReX_MFIter.H:213
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition AMReX_Vector.H:29
bool notInLaunchRegion() noexcept
Definition AMReX_GpuControl.H:89
Definition AMReX_Amr.cpp:50
bool isMFIterSafe(const FabArrayBase &x, const FabArrayBase &y)
Definition AMReX_MFIter.H:256
bool TilingIfNotGPU() noexcept
Definition AMReX_MFIter.H:12
Definition AMReX_MFIter.H:20
MFItInfo & DisableDeviceSync() noexcept
Definition AMReX_MFIter.H:47
MFItInfo & SetDeviceSync(bool f) noexcept
Definition AMReX_MFIter.H:51
int num_streams
Definition AMReX_MFIter.H:26
MFItInfo & SetDynamic(bool f) noexcept
Definition AMReX_MFIter.H:43
MFItInfo & SetDeviceSyncPost(bool f) noexcept
Definition AMReX_MFIter.H:67
MFItInfo() noexcept
Definition AMReX_MFIter.H:28
MFItInfo & DisableDeviceSyncPost() noexcept
Definition AMReX_MFIter.H:63
MFItInfo & SetNumStreams(int n) noexcept
Definition AMReX_MFIter.H:71
bool device_sync_post
Definition AMReX_MFIter.H:25
IntVect tilesize
Definition AMReX_MFIter.H:27
MFItInfo & SetDeviceSyncPre(bool f) noexcept
Definition AMReX_MFIter.H:59
bool do_tiling
Definition AMReX_MFIter.H:21
bool device_sync
Definition AMReX_MFIter.H:23
MFItInfo & EnableTiling(const IntVect &ts=FabArrayBase::mfiter_tile_size) noexcept
Definition AMReX_MFIter.H:31
MFItInfo & UseDefaultStream() noexcept
Definition AMReX_MFIter.H:75
bool device_sync_pre
Definition AMReX_MFIter.H:24
MFItInfo & DisableDeviceSyncPre() noexcept
Definition AMReX_MFIter.H:55
MFItInfo & SetTiling(bool f) noexcept
Definition AMReX_MFIter.H:36
bool dynamic
Definition AMReX_MFIter.H:22
Definition AMReX_MFIter.H:227
DeviceSync & operator=(DeviceSync const &)=delete
DeviceSync(DeviceSync &&rhs) noexcept
Definition AMReX_MFIter.H:229
DeviceSync(bool f)
Definition AMReX_MFIter.H:228
DeviceSync(DeviceSync const &)=delete
bool flag
Definition AMReX_MFIter.H:235