#include <AMReX_ParIter.H>
Public Types | |
using | ContainerType = ParticleContainer_impl< T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor > |
using | ParticleTileType = typename ContainerType::ParticleTileType |
using | AoS = typename ContainerType::AoS |
using | SoA = typename ContainerType::SoA |
using | ParticleType = T_ParticleType |
using | RealVector = typename SoA::RealVector |
using | IntVector = typename SoA::IntVector |
using | ParticleVector = typename ContainerType::ParticleVector |
![]() | |
enum | Flags { Tiling = 0x01 , AllBoxes = 0x02 , NoTeamBarrier = 0x04 } |
Flags that specify tiling modes. All these flags are off by default. More... | |
Public Member Functions | |
ParIterBase_impl (ContainerRef pc, int level) | |
ParIterBase_impl (ContainerRef pc, int level, MFItInfo &info) | |
void | operator++ () |
ParticleTileRef | GetParticleTile () const |
AoSRef | GetArrayOfStructs () const |
SoARef | GetStructOfArrays () const |
int | numParticles () const |
int | numRealParticles () const |
int | numNeighborParticles () const |
int | GetLevel () const |
std::pair< int, int > | GetPairIndex () const |
const Geometry & | Geom (int lev) const |
![]() | |
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 Attributes | |
static constexpr int | NStructReal = ParticleType::NReal |
static constexpr int | NStructInt = ParticleType::NInt |
Protected Attributes | |
int | m_level |
ParticleTilePtr | m_particle_current_tile = nullptr |
ContainerPtr | m_pc |
![]() | |
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 |
Private Types | |
using | PCType = ParticleContainer_impl< T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor > |
using | ContainerRef = std::conditional_t< is_const, PCType const &, PCType & > |
using | ContainerPtr = std::conditional_t< is_const, PCType const *, PCType * > |
using | ParticleTileRef = std::conditional_t< is_const, typename PCType::ParticleTileType const &, typename PCType::ParticleTileType & > |
using | ParticleTilePtr = std::conditional_t< is_const, typename PCType::ParticleTileType const *, typename PCType::ParticleTileType * > |
using | AoSRef = std::conditional_t< is_const, typename PCType::AoS const &, typename PCType::AoS & > |
using | SoARef = std::conditional_t< is_const, typename PCType::SoA const &, typename PCType::SoA & > |
Additional Inherited Members | |
![]() | |
static int | allowMultipleMFIters (int allow) |
static int | currentDepth () |
![]() | |
void | Initialize () |
![]() | |
static AMREX_EXPORT int | nextDynamicIndex = std::numeric_limits<int>::min() |
static AMREX_EXPORT int | depth = 0 |
static AMREX_EXPORT int | allow_multiple_mfiters = 0 |
using amrex::ParIterBase_impl< is_const, T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::AoS = typename ContainerType::AoS |
|
private |
|
private |
|
private |
using amrex::ParIterBase_impl< is_const, T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::ContainerType = ParticleContainer_impl<T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor> |
using amrex::ParIterBase_impl< is_const, T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::IntVector = typename SoA::IntVector |
|
private |
|
private |
using amrex::ParIterBase_impl< is_const, T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::ParticleTileType = typename ContainerType::ParticleTileType |
using amrex::ParIterBase_impl< is_const, T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::ParticleType = T_ParticleType |
using amrex::ParIterBase_impl< is_const, T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::ParticleVector = typename ContainerType::ParticleVector |
|
private |
using amrex::ParIterBase_impl< is_const, T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::RealVector = typename SoA::RealVector |
using amrex::ParIterBase_impl< is_const, T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::SoA = typename ContainerType::SoA |
|
private |
amrex::ParIterBase_impl< is_const, T_ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::ParIterBase_impl | ( | ContainerRef | pc, |
int | level | ||
) |
amrex::ParIterBase_impl< is_const, ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >::ParIterBase_impl | ( | ContainerRef | pc, |
int | level, | ||
MFItInfo & | info | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |
|
staticconstexpr |
|
staticconstexpr |