1 #ifndef BL_FABARRAYBASE_H_
2 #define BL_FABARRAYBASE_H_
3 #include <AMReX_Config.H>
29 template <
typename FAB>
class FabFactory;
30 template <
typename FAB>
class FabArray;
77 [[nodiscard]]
int nGrow (
int direction = 0) const noexcept {
return n_grow[direction]; }
122 return static_cast<int>(low -
indexArray.begin());
139 [[nodiscard]]
bool is_nodal (
int dir) const noexcept;
169 : name(std::move(name_)) {;}
184 <<
" tot # of builds : " << nbuild <<
"\n"
185 <<
" tot # of erasures: " << nerase <<
"\n"
186 <<
" tot # of uses : " << nuse <<
"\n"
187 <<
" max cache size : " << maxsize <<
"\n"
188 <<
" max # of uses : " << maxuse <<
"\n";
234 return (
m_ba_id < rhs.m_ba_id) ||
307 const Box& dstdomain,
355 bool include_periodic,
356 bool include_physbndry);
361 bool include_periodic,
bool include_physbndry);
386 bool include_periodic,
387 bool include_physbndry);
467 bool no_assertion=
false)
const;
481 const Periodicity& period,
bool multi_ghost)
const;
490 bool enforce_periodicity_only,
bool override_sync,
504 #if defined(__CUDACC__) && defined (AMREX_USE_CUDA)
505 CudaGraph<CopyMemory> m_localCopy;
506 CudaGraph<CopyMemory> m_copyToBuffer;
507 CudaGraph<CopyMemory> m_copyFromBuffer;
516 bool build_recv_tag);
519 using FBCache = std::multimap<BDKey,FabArrayBase::FB*>;
526 bool cross=
false,
bool enforce_periodicity_only =
false,
527 bool override_sync =
false)
const;
539 const Periodicity& period,
bool to_ghost_cells_only =
false);
570 using CPCache = std::multimap<BDKey,FabArrayBase::CPC*>;
577 const Periodicity& period,
bool to_ghost_cells_only =
false)
const;
594 using RB90Cache = std::multimap<BDKey,FabArrayBase::RB90*>;
616 using RB180Cache = std::multimap<BDKey,FabArrayBase::RB180*>;
717 <<
" tot # of builds : " <<
num_build <<
"\n"
744 [[nodiscard]]
void*
alloc (std::size_t sz)
override;
755 [[nodiscard]]
void*
data () const noexcept {
return (
void*)
m_root; }
#define AMREX_EXPORT
Definition: AMReX_Extension.H:191
A virtual base class for objects that manage their own dynamic memory allocation.
Definition: AMReX_Arena.H:100
A collection of Boxes stored in an Array.
Definition: AMReX_BoxArray.H:550
IndexType ixType() const noexcept
Return index type of this BoxArray.
Definition: AMReX_BoxArray.H:837
RefID getRefID() const noexcept
Return a unique ID of the reference.
Definition: AMReX_BoxArray.H:834
Long size() const noexcept
Return the number of boxes in the BoxArray.
Definition: AMReX_BoxArray.H:597
bool empty() const noexcept
Return whether the BoxArray is empty.
Definition: AMReX_BoxArray.H:603
Definition: AMReX_Box.H:1193
AMREX_GPU_HOST_DEVICE const IntVectND< dim > & smallEnd() const &noexcept
Get the smallend of the BoxND.
Definition: AMReX_Box.H:105
Calculates the distribution of FABs to MPI processes.
Definition: AMReX_DistributionMapping.H:41
RefID getRefID() const noexcept
This gives a unique ID of the reference, which is different from dmID above.
Definition: AMReX_DistributionMapping.H:379
Definition: AMReX_EB2.H:26
Base class for FabArray.
Definition: AMReX_FabArrayBase.H:41
void flushTileArray(const IntVect &tilesize=IntVect::TheZeroVector(), bool no_assertion=false) const
IntVect nGrowVect() const noexcept
Definition: AMReX_FabArrayBase.H:79
static AMREX_EXPORT IntVect mfiter_tile_size
Default tilesize in MFIter.
Definition: AMReX_FabArrayBase.H:288
void clearThisBD(bool no_assertion=false) const
clear BD count and caches associated with this BD, if no other is using this BD.
void flushPolarB(bool no_assertion=false) const
This flushes its own PolarB.
static AMREX_EXPORT bool m_alloc_single_chunk
Definition: AMReX_FabArrayBase.H:725
std::multimap< BDKey, FabArrayBase::FPinfo * > FPinfoCache
Definition: AMReX_FabArrayBase.H:331
Vector< int > indexArray
Definition: AMReX_FabArrayBase.H:445
void flushCPC(bool no_assertion=false) const
This flushes its own CPC.
static std::map< std::string, meminfo > m_mem_usage
Definition: AMReX_FabArrayBase.H:402
const RB90 & getRB90(const IntVect &nghost, const Box &domain) const
void define_fb_metadata(CommMetaData &cmd, const IntVect &nghost, bool cross, const Periodicity &period, bool multi_ghost) const
FabArrayBase & operator=(const FabArrayBase &rhs)=default
FabArrayBase(const BoxArray &bxs, const DistributionMapping &dm, int nvar, int ngrow)
static bool getAllocSingleChunk()
Definition: AMReX_FabArrayBase.H:727
BDKey m_bdkey
Definition: AMReX_FabArrayBase.H:449
void addThisBD()
add the current BD into BD count database
static void printMemUsage()
void setNGrowFilled(IntVect const &ng) noexcept
Definition: AMReX_FabArrayBase.H:151
const RB180 & getRB180(const IntVect &nghost, const Box &domain) const
RB90Cache::iterator RB90CacheIter
Definition: AMReX_FabArrayBase.H:595
static CacheStats m_FPinfo_stats
Definition: AMReX_FabArrayBase.H:336
void flushParForInfo(bool no_assertion=false) const
static std::multimap< BDKey, ParForInfo * > m_TheParForCache
Definition: AMReX_FabArrayBase.H:676
void buildTileArray(const IntVect &tilesize, TileArray &ta) const
FBCache::iterator FBCacheIter
Definition: AMReX_FabArrayBase.H:520
static void flushRB180Cache()
This flushes the entire cache.
const TileArray * getTileArray(const IntVect &tilesize) const
FabArrayBase(FabArrayBase &&rhs) noexcept=default
const BoxArray & boxArray() const noexcept
Return a constant reference to the BoxArray that defines the valid region associated with this FabArr...
Definition: AMReX_FabArrayBase.H:94
int n_comp
Definition: AMReX_FabArrayBase.H:448
static void pushRegionTag(const char *t)
static const CFinfo & TheCFinfo(const FabArrayBase &finefa, const Geometry &finegm, const IntVect &ng, bool include_periodic, bool include_physbndry)
static CacheStats m_FBC_stats
Definition: AMReX_FabArrayBase.H:523
bool isFusingCandidate() const noexcept
Is this a good candidate for kernel fusing?
static void flushCPCache()
This flusheds the entire cache.
bool is_cell_centered() const noexcept
This tests on whether the FabArray is cell-centered.
bool is_nodal() const noexcept
This tests on whether the FabArray is fully nodal.
bool isOwner(int li) const noexcept
Definition: AMReX_FabArrayBase.H:438
static void flushTileArrayCache()
This flushes the entire cache.
IndexType ixType() const noexcept
Return index type.
Definition: AMReX_FabArrayBase.H:85
static void pushRegionTag(std::string t)
static FBCache m_TheFBCache
Definition: AMReX_FabArrayBase.H:522
static void updateMemUsage(std::string const &tag, Long nbytes, Arena const *ar)
static void flushPolarBCache()
This flushes the entire cache.
int size() const noexcept
Return the number of FABs in the FabArray.
Definition: AMReX_FabArrayBase.H:109
void flushCFinfo(bool no_assertion=false) const
std::multimap< BDKey, FabArrayBase::RB180 * > RB180Cache
Definition: AMReX_FabArrayBase.H:616
IntVect nGrowFilled() const noexcept
Definition: AMReX_FabArrayBase.H:150
void flushFPinfo(bool no_assertion=false) const
void define(const BoxArray &bxs, const DistributionMapping &dm, int nvar, int ngrow)
const Vector< int > & IndexArray() const noexcept
Return constant reference to indices in the FabArray that we have access.
Definition: AMReX_FabArrayBase.H:115
void setMultiGhost(bool a_multi_ghost)
Definition: AMReX_FabArrayBase.H:145
static PolarBCache m_ThePolarBCache
Definition: AMReX_FabArrayBase.H:641
static void popRegionTag()
const std::vector< bool > & OwnerShip() const noexcept
Return owenership of fabs. The concept of ownership only applies when UPC++ team is used....
Definition: AMReX_FabArrayBase.H:437
std::map< std::pair< IntVect, IntVect >, TileArray > TAMap
Definition: AMReX_FabArrayBase.H:458
int nGrow(int direction=0) const noexcept
Return the grow factor that defines the region of definition.
Definition: AMReX_FabArrayBase.H:77
static CacheStats m_CFinfo_stats
Definition: AMReX_FabArrayBase.H:381
static RB180Cache m_TheRB180Cache
Definition: AMReX_FabArrayBase.H:619
CPCache::iterator CPCacheIter
Definition: AMReX_FabArrayBase.H:571
CopyComTag::CopyComTagsContainer CopyComTagsContainer
Definition: AMReX_FabArrayBase.H:219
static AMREX_EXPORT int MaxComp
The maximum number of components to copy() at a time.
Definition: AMReX_FabArrayBase.H:291
std::multimap< BDKey, FabArrayBase::FB * > FBCache
Definition: AMReX_FabArrayBase.H:519
static Long queryMemUsage(const std::string &tag=std::string("All"))
RB180Cache::iterator RB180CacheIter
Definition: AMReX_FabArrayBase.H:617
BDKey getBDKey() const noexcept
Definition: AMReX_FabArrayBase.H:249
static CPCache m_TheCPCache
Definition: AMReX_FabArrayBase.H:573
CopyComTag::MapOfCopyComTagContainers MapOfCopyComTagContainers
Definition: AMReX_FabArrayBase.H:220
static CacheStats m_TAC_stats
Definition: AMReX_FabArrayBase.H:462
int localindex(int K) const noexcept
Return local index in the vector of FABs.
Definition: AMReX_FabArrayBase.H:118
FabArrayBase(const FabArrayBase &rhs)=default
int local_size() const noexcept
Return the number of local FABs in the FabArray.
Definition: AMReX_FabArrayBase.H:112
IntVect n_grow
Definition: AMReX_FabArrayBase.H:447
const CPC & getCPC(const IntVect &dstng, const FabArrayBase &src, const IntVect &srcng, const Periodicity &period, bool to_ghost_cells_only=false) const
void flushRB90(bool no_assertion=false) const
This flushes its own RB90.
static AMREX_EXPORT IntVect comm_tile_size
communication tile size
Definition: AMReX_FabArrayBase.H:301
std::vector< bool > ownership
Definition: AMReX_FabArrayBase.H:446
static CFinfoCache m_TheCrseFineCache
Definition: AMReX_FabArrayBase.H:379
static Long queryMemUsageHWM(const std::string &tag=std::string("All"))
std::multimap< BDKey, FabArrayBase::CPC * > CPCache
Definition: AMReX_FabArrayBase.H:570
FabArrayBase(const BoxArray &bxs, const DistributionMapping &dm, int nvar, const IntVect &ngrow)
std::multimap< BDKey, FabArrayBase::CFinfo * > CFinfoCache
Definition: AMReX_FabArrayBase.H:376
bool empty() const noexcept
Definition: AMReX_FabArrayBase.H:88
static void Initialize()
Initialize from ParmParse with "fabarray" prefix.
std::multimap< BDKey, FabArrayBase::RB90 * > RB90Cache
Definition: AMReX_FabArrayBase.H:594
const DistributionMapping & DistributionMap() const noexcept
Return constant reference to associated DistributionMapping.
Definition: AMReX_FabArrayBase.H:130
static void flushRB90Cache()
This flushes the entire cache.
static const FPinfo & TheFPinfo(const FabArrayBase &srcfa, const FabArrayBase &dstfa, const IntVect &dstng, const BoxConverter &coarsener, const Geometry &fgeom, const Geometry &cgeom, const EB2::IndexSpace *)
static RB90Cache m_TheRB90Cache
Definition: AMReX_FabArrayBase.H:597
void flushRB180(bool no_assertion=false) const
This flushes its own RB180.
static void flushFBCache()
This flushes the entire cache.
CpOp
parallel copy or add
Definition: AMReX_FabArrayBase.H:393
@ ADD
Definition: AMReX_FabArrayBase.H:393
@ COPY
Definition: AMReX_FabArrayBase.H:393
bool m_multi_ghost
Definition: AMReX_FabArrayBase.H:451
IntVect n_filled
Definition: AMReX_FabArrayBase.H:450
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:100
static FPinfoCache m_TheFillPatchCache
Definition: AMReX_FabArrayBase.H:334
std::map< BDKey, TAMap > TACache
Definition: AMReX_FabArrayBase.H:459
static CacheStats m_CPC_stats
Definition: AMReX_FabArrayBase.H:574
void flushFB(bool no_assertion=false) const
This flushes its own FB.
static AMREX_EXPORT std::vector< std::string > m_region_tag
Definition: AMReX_FabArrayBase.H:413
void define(const BoxArray &bxs, const DistributionMapping &dm, int nvar, const IntVect &ngrow)
static Long bytesOfMapOfCopyComTagContainers(const MapOfCopyComTagContainers &)
DistributionMapping distributionMap
Definition: AMReX_FabArrayBase.H:444
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.
ParForInfo const & getParForInfo(const IntVect &nghost, int nthreads) const
FPinfoCache::iterator FPinfoCacheIter
Definition: AMReX_FabArrayBase.H:332
friend void FillBoundary(Vector< FabArray< FAB > * > const &mf, const Periodicity &period)
CFinfoCache::iterator CFinfoCacheIter
Definition: AMReX_FabArrayBase.H:377
PolarBCache::iterator PolarBCacheIter
Definition: AMReX_FabArrayBase.H:639
BoxArray boxarray
Definition: AMReX_FabArrayBase.H:443
const PolarB & getPolarB(const IntVect &nghost, const Box &domain) const
int nComp() const noexcept
Return number of variables (aka components) associated with each point.
Definition: AMReX_FabArrayBase.H:82
std::multimap< BDKey, FabArrayBase::PolarB * > PolarBCache
Definition: AMReX_FabArrayBase.H:638
static AMREX_EXPORT FabArrayStats m_FA_stats
Definition: AMReX_FabArrayBase.H:723
const FB & getFB(const IntVect &nghost, const Periodicity &period, bool cross=false, bool enforce_periodicity_only=false, bool override_sync=false) const
static void flushParForCache()
static std::map< BDKey, int > m_BD_count
Keep track of how many FabArrays are built with the same BDKey.
Definition: AMReX_FabArrayBase.H:685
static TACache m_TheTileArrayCache
Definition: AMReX_FabArrayBase.H:461
An Array of FortranArrayBox(FAB)-like Objects.
Definition: AMReX_FabArray.H:344
Rectangular problem domain geometry.
Definition: AMReX_Geometry.H:73
AMREX_GPU_HOST_DEVICE static constexpr AMREX_FORCE_INLINE IntVectND< dim > TheZeroVector() noexcept
This static member function returns a reference to a constant IntVectND object, all of whose dim argu...
Definition: AMReX_IntVect.H:672
Definition: AMReX_MFIter.H:57
This provides length of period for periodic domains. 0 means it is not periodic in that direction....
Definition: AMReX_Periodicity.H:17
This class provides the user with a few print options.
Definition: AMReX_Print.H:35
static constexpr int AllProcs
Definition: AMReX_Print.H:38
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition: AMReX_Vector.H:27
Long size() const noexcept
Definition: AMReX_Vector.H:50
Definition: AMReX_FabArrayBase.H:733
bool isPinned() const override
void * alloc(std::size_t sz) override
bool isHostAccessible() const override
void * data() const noexcept
Definition: AMReX_FabArrayBase.H:755
std::size_t m_size
Definition: AMReX_FabArrayBase.H:761
SingleChunkArena(Arena *a_arena, std::size_t a_size)
SingleChunkArena()=delete
~SingleChunkArena() override
bool isDeviceAccessible() const override
char * m_root
Definition: AMReX_FabArrayBase.H:759
SingleChunkArena(const SingleChunkArena &rhs)=delete
void free(void *pt) override
A pure virtual function for deleting the arena pointed to by pt.
SingleChunkArena(SingleChunkArena &&rhs)=delete
bool isDevice() const override
char * m_free
Definition: AMReX_FabArrayBase.H:760
DataAllocator m_dallocator
Definition: AMReX_FabArrayBase.H:758
bool isManaged() const override
SingleChunkArena & operator=(const SingleChunkArena &rhs)=delete
int MyProc()
Definition: AMReX_MPMD.cpp:117
int MyProc() noexcept
return the rank number local to the current Parallel Context
Definition: AMReX_ParallelDescriptor.H:125
@ max
Definition: AMReX_ParallelReduce.H:17
Definition: AMReX_Amr.cpp:49
DistributionMapping const & DistributionMap(FabArrayBase const &fa)
int nComp(FabArrayBase const &fa)
IntVect nGrowVect(FabArrayBase const &fa)
BoxArray const & boxArray(FabArrayBase const &fa)
std::ostream & operator<<(std::ostream &os, AmrMesh const &amr_mesh)
Definition: AMReX_AmrMesh.cpp:1236
AMREX_GPU_HOST_DEVICE ItType lower_bound(ItType first, ItType last, const ValType &val)
Definition: AMReX_Algorithm.H:187
Definition: AMReX_FabArrayCommI.H:896
Definition: AMReX_BoxArray.H:822
Definition: AMReX_Box.H:2027
Definition: AMReX_DataAllocator.H:9
Definition: AMReX_DistributionMapping.H:365
Definition: AMReX_FabArrayBase.H:229
BoxArray::RefID m_ba_id
Definition: AMReX_FabArrayBase.H:245
bool operator==(const BDKey &rhs) const noexcept
Definition: AMReX_FabArrayBase.H:237
bool operator<(const BDKey &rhs) const noexcept
Definition: AMReX_FabArrayBase.H:233
bool operator!=(const BDKey &rhs) const noexcept
Definition: AMReX_FabArrayBase.H:240
DistributionMapping::RefID m_dm_id
Definition: AMReX_FabArrayBase.H:246
friend std::ostream & operator<<(std::ostream &os, const BDKey &id)
coarse/fine boundary
Definition: AMReX_FabArrayBase.H:351
Box m_fine_domain
Definition: AMReX_FabArrayBase.H:368
IntVect m_ng
Definition: AMReX_FabArrayBase.H:369
static Box Domain(const Geometry &geom, const IntVect &ng, bool include_periodic, bool include_physbndry)
CFinfo(const FabArrayBase &finefa, const Geometry &finegm, const IntVect &ng, bool include_periodic, bool include_physbndry)
bool m_include_periodic
Definition: AMReX_FabArrayBase.H:370
bool m_include_physbndry
Definition: AMReX_FabArrayBase.H:371
Long m_nuse
Definition: AMReX_FabArrayBase.H:373
BoxArray ba_cfb
Definition: AMReX_FabArrayBase.H:363
BDKey m_fine_bdk
Definition: AMReX_FabArrayBase.H:367
Vector< int > fine_grid_idx
local array
Definition: AMReX_FabArrayBase.H:365
DistributionMapping dm_cfb
Definition: AMReX_FabArrayBase.H:364
parallel copy or add
Definition: AMReX_FabArrayBase.H:536
BoxArray m_srcba
Definition: AMReX_FabArrayBase.H:556
CPC(const BoxArray &dstba, const DistributionMapping &dstdm, const Vector< int > &dstidx, const IntVect &dstng, const BoxArray &srcba, const DistributionMapping &srcdm, const Vector< int > &srcidx, const IntVect &srcng, const Periodicity &period, int myproc)
IntVect m_srcng
Definition: AMReX_FabArrayBase.H:552
bool m_tgco
Definition: AMReX_FabArrayBase.H:555
BoxArray m_dstba
Definition: AMReX_FabArrayBase.H:557
BDKey m_srcbdk
Definition: AMReX_FabArrayBase.H:550
void define(const BoxArray &ba_dst, const DistributionMapping &dm_dst, const Vector< int > &imap_dst, const BoxArray &ba_src, const DistributionMapping &dm_src, const Vector< int > &imap_src, int MyProc=ParallelDescriptor::MyProc())
BDKey m_dstbdk
Definition: AMReX_FabArrayBase.H:551
Long m_nuse
Definition: AMReX_FabArrayBase.H:559
CPC(const BoxArray &ba, const IntVect &ng, const DistributionMapping &dstdm, const DistributionMapping &srcdm)
CPC(const FabArrayBase &dstfa, const IntVect &dstng, const FabArrayBase &srcfa, const IntVect &srcng, const Periodicity &period, bool to_ghost_cells_only=false)
Periodicity m_period
Definition: AMReX_FabArrayBase.H:554
IntVect m_dstng
Definition: AMReX_FabArrayBase.H:553
Definition: AMReX_FabArrayBase.H:158
void recordUse() noexcept
Definition: AMReX_FabArrayBase.H:181
CacheStats(std::string name_)
Definition: AMReX_FabArrayBase.H:168
void recordErase(Long n) noexcept
Definition: AMReX_FabArrayBase.H:175
std::string name
name of the cache
Definition: AMReX_FabArrayBase.H:167
void recordBuild() noexcept
Definition: AMReX_FabArrayBase.H:170
void print() const
Definition: AMReX_FabArrayBase.H:182
Used by a bunch of routines when communicating via MPI.
Definition: AMReX_FabArrayBase.H:194
Box sbox
Definition: AMReX_FabArrayBase.H:196
CopyComTag() noexcept=default
std::vector< CopyComTag > CopyComTagsContainer
Definition: AMReX_FabArrayBase.H:212
bool operator<(const CopyComTag &rhs) const noexcept
Definition: AMReX_FabArrayBase.H:202
int srcIndex
Definition: AMReX_FabArrayBase.H:198
Box dbox
Definition: AMReX_FabArrayBase.H:195
int dstIndex
Definition: AMReX_FabArrayBase.H:197
std::map< int, CopyComTagsContainer > MapOfCopyComTagContainers
Definition: AMReX_FabArrayBase.H:214
FillBoundary.
Definition: AMReX_FabArrayBase.H:487
bool m_multi_ghost
Definition: AMReX_FabArrayBase.H:502
Long m_nuse
Definition: AMReX_FabArrayBase.H:501
void define_os(const FabArrayBase &fa)
IntVect m_ngrow
Definition: AMReX_FabArrayBase.H:495
void define_epo(const FabArrayBase &fa)
bool m_cross
Definition: AMReX_FabArrayBase.H:496
IndexType m_typ
Definition: AMReX_FabArrayBase.H:493
void define_fb(const FabArrayBase &fa)
Periodicity m_period
Definition: AMReX_FabArrayBase.H:499
void tag_one_box(int krcv, BoxArray const &ba, DistributionMapping const &dm, bool build_recv_tag)
bool m_epo
Definition: AMReX_FabArrayBase.H:497
bool m_override_sync
Definition: AMReX_FabArrayBase.H:498
IntVect m_crse_ratio
BoxArray in FabArrayBase may have crse_ratio.
Definition: AMReX_FabArrayBase.H:494
FB(const FabArrayBase &fa, const IntVect &nghost, bool cross, const Periodicity &period, bool enforce_periodicity_only, bool override_sync, bool multi_ghost)
Definition: AMReX_FabArrayBase.H:304
std::unique_ptr< FabFactory< FArrayBox > > fact_crse_patch
Definition: AMReX_FabArrayBase.H:319
DistributionMapping dm_patch
Definition: AMReX_FabArrayBase.H:318
BDKey m_srcbdk
Definition: AMReX_FabArrayBase.H:322
BoxArray ba_crse_patch
Definition: AMReX_FabArrayBase.H:316
std::unique_ptr< FabFactory< FArrayBox > > fact_fine_patch
Definition: AMReX_FabArrayBase.H:320
std::unique_ptr< BoxConverter > m_coarsener
Definition: AMReX_FabArrayBase.H:326
Box m_dstdomain
Definition: AMReX_FabArrayBase.H:324
FPinfo(const FabArrayBase &srcfa, const FabArrayBase &dstfa, const Box &dstdomain, const IntVect &dstng, const BoxConverter &coarsener, const Box &fdomain, const Box &cdomain, const EB2::IndexSpace *index_space)
IntVect m_dstng
Definition: AMReX_FabArrayBase.H:325
Long m_nuse
Definition: AMReX_FabArrayBase.H:328
BDKey m_dstbdk
Definition: AMReX_FabArrayBase.H:323
BoxArray ba_fine_patch
Definition: AMReX_FabArrayBase.H:317
Definition: AMReX_FabArrayBase.H:694
Long num_build
Definition: AMReX_FabArrayBase.H:699
void recordDelete() noexcept
Definition: AMReX_FabArrayBase.H:706
int max_num_boxarrays
Definition: AMReX_FabArrayBase.H:697
void recordMaxNumBAUse(int n) noexcept
Definition: AMReX_FabArrayBase.H:712
void recordMaxNumBoxArrays(int n) noexcept
Definition: AMReX_FabArrayBase.H:709
void print() const
Definition: AMReX_FabArrayBase.H:715
int max_num_fabarrays
Definition: AMReX_FabArrayBase.H:696
int max_num_ba_use
Definition: AMReX_FabArrayBase.H:698
int num_fabarrays
Definition: AMReX_FabArrayBase.H:695
void recordBuild() noexcept
Definition: AMReX_FabArrayBase.H:701
Used for collecting information used in communicating FABs.
Definition: AMReX_FabArrayBase.H:271
int srcComp
Definition: AMReX_FabArrayBase.H:276
int toProc
Definition: AMReX_FabArrayBase.H:273
int fromProc
Definition: AMReX_FabArrayBase.H:272
int fabArrayId
Definition: AMReX_FabArrayBase.H:280
int procThatHasData
Definition: AMReX_FabArrayBase.H:283
int procThatNeedsData
Definition: AMReX_FabArrayBase.H:282
int destComp
Definition: AMReX_FabArrayBase.H:277
int face
Definition: AMReX_FabArrayBase.H:279
Box box
Definition: AMReX_FabArrayBase.H:284
int fabIndex
Definition: AMReX_FabArrayBase.H:274
int nComp
Definition: AMReX_FabArrayBase.H:278
int fineIndex
Definition: AMReX_FabArrayBase.H:275
int fillBoxId
Definition: AMReX_FabArrayBase.H:281
For ParallelFor(FabArray)
Definition: AMReX_FabArrayBase.H:652
ParForInfo(ParForInfo const &)=delete
std::pair< int *, int * > const & getBlocks() const
Definition: AMReX_FabArrayBase.H:656
BATransformer m_bat
Definition: AMReX_FabArrayBase.H:665
ParForInfo(ParForInfo &&)=delete
int m_nthreads
Definition: AMReX_FabArrayBase.H:667
char * m_hp
Definition: AMReX_FabArrayBase.H:670
void operator=(ParForInfo const &)=delete
IntVect m_ng
Definition: AMReX_FabArrayBase.H:666
std::pair< int *, int * > m_nblocks_x
Definition: AMReX_FabArrayBase.H:668
char * m_dp
Definition: AMReX_FabArrayBase.H:671
ParForInfo(const FabArrayBase &fa, const IntVect &nghost, int nthreads)
BoxIndexer const * getBoxes() const
Definition: AMReX_FabArrayBase.H:657
BoxIndexer * m_boxes
Definition: AMReX_FabArrayBase.H:669
Fill polar boundary in spherical coordinates.
Definition: AMReX_FabArrayBase.H:630
void define(const FabArrayBase &fa)
Box m_domain
Definition: AMReX_FabArrayBase.H:633
PolarB(const FabArrayBase &fa, const IntVect &nghost, Box const &domain)
IntVect m_ngrow
Definition: AMReX_FabArrayBase.H:632
Rotate Boundary by 180.
Definition: AMReX_FabArrayBase.H:608
void define(const FabArrayBase &fa)
IntVect m_ngrow
Definition: AMReX_FabArrayBase.H:610
Box m_domain
Definition: AMReX_FabArrayBase.H:611
RB180(const FabArrayBase &fa, const IntVect &nghost, Box const &domain)
Rotate Boundary by 90.
Definition: AMReX_FabArrayBase.H:586
RB90(const FabArrayBase &fa, const IntVect &nghost, Box const &domain)
void define(const FabArrayBase &fa)
Box m_domain
Definition: AMReX_FabArrayBase.H:589
IntVect m_ngrow
Definition: AMReX_FabArrayBase.H:588
Definition: AMReX_FabArrayBase.H:414
~RegionTag()
Definition: AMReX_FabArrayBase.H:421
bool tagged
Definition: AMReX_FabArrayBase.H:423
RegionTag(RegionTag &&rhs) noexcept
Definition: AMReX_FabArrayBase.H:418
RegionTag(const std::string &t)
Definition: AMReX_FabArrayBase.H:416
RegionTag & operator=(RegionTag const &)=delete
RegionTag(RegionTag const &)=delete
RegionTag(const char *t)
Definition: AMReX_FabArrayBase.H:415
Tiling.
Definition: AMReX_FabArrayBase.H:258
Vector< int > indexMap
Definition: AMReX_FabArrayBase.H:261
Vector< int > localIndexMap
Definition: AMReX_FabArrayBase.H:262
Vector< int > localTileIndexMap
Definition: AMReX_FabArrayBase.H:263
Vector< int > numLocalTiles
Definition: AMReX_FabArrayBase.H:260
Long nuse
Definition: AMReX_FabArrayBase.H:259
Vector< Box > tileArray
Definition: AMReX_FabArrayBase.H:264
Definition: AMReX_FabArrayBase.H:398
Long nbytes
Definition: AMReX_FabArrayBase.H:399
Long nbytes_hwm
Definition: AMReX_FabArrayBase.H:400