1#ifndef BL_FABARRAYBASE_H_
2#define BL_FABARRAYBASE_H_
3#include <AMReX_Config.H>
30template <
typename FAB>
class FabFactory;
31template <
typename FAB>
class FabArray;
78 [[nodiscard]]
int nGrow (
int direction = 0) const noexcept {
return n_grow[direction]; }
107 [[nodiscard]]
Box fabbox (
int K)
const noexcept;
123 return static_cast<int>(low -
indexArray.begin());
136 [[nodiscard]]
bool is_nodal () const noexcept;
140 [[nodiscard]]
bool is_nodal (
int dir) const noexcept;
169 explicit CacheStats (std::string name_)
170 :
name(std::move(name_)) {;}
171 void recordBuild () noexcept {
174 maxsize = std::max(maxsize,
size);
176 void recordErase (
Long n)
noexcept {
180 maxuse = std::max(maxuse, n);
182 void recordUse () noexcept { ++nuse; }
183 void print ()
const {
185 <<
" tot # of builds : " << nbuild <<
"\n"
186 <<
" tot # of erasures: " << nerase <<
"\n"
187 <<
" tot # of uses : " << nuse <<
"\n"
188 <<
" max cache size : " << maxsize <<
"\n"
189 <<
" max # of uses : " << maxuse <<
"\n";
233 : m_ba_id(baid), m_dm_id(dmid) {}
235 return (m_ba_id < rhs.m_ba_id) ||
236 ((m_ba_id == rhs.m_ba_id) && (m_dm_id < rhs.m_dm_id));
239 return m_ba_id == rhs.m_ba_id && m_dm_id == rhs.m_dm_id;
242 return m_ba_id != rhs.m_ba_id || m_dm_id != rhs.m_dm_id;
308 const Box& dstdomain,
356 bool include_periodic,
357 bool include_physbndry);
362 bool include_periodic,
bool include_physbndry);
387 bool include_periodic,
388 bool include_physbndry);
468 bool no_assertion=
false)
const;
482 const Periodicity& period,
bool multi_ghost)
const;
491 bool enforce_periodicity_only,
bool override_sync,
492 bool multi_ghost,
IntVect const& sumboundary_src_nghost);
494 std::uint64_t
m_id = std::numeric_limits<std::uint64_t>::max();
507#if defined(__CUDACC__) && defined (AMREX_USE_CUDA)
508 CudaGraph<CopyMemory> m_localCopy;
509 CudaGraph<CopyMemory> m_copyToBuffer;
510 CudaGraph<CopyMemory> m_copyFromBuffer;
520 bool build_recv_tag);
523 using FBCache = std::multimap<BDKey,FabArrayBase::FB*>;
530 bool cross=
false,
bool enforce_periodicity_only =
false,
531 bool override_sync =
false,
541 const Periodicity& period,
bool to_ghost_cells_only =
false,
553 std::uint64_t
m_id = std::numeric_limits<std::uint64_t>::max();
575 using CPCache = std::multimap<BDKey,FabArrayBase::CPC*>;
582 const Periodicity& period,
bool to_ghost_cells_only =
false,
597 using RB90Cache = std::multimap<BDKey,FabArrayBase::RB90*>;
604 void flushRB90 (
bool no_assertion=
false)
const;
619 using RB180Cache = std::multimap<BDKey,FabArrayBase::RB180*>;
626 void flushRB180 (
bool no_assertion=
false)
const;
720 <<
" tot # of builds : " <<
num_build <<
"\n"
736 void flushFB (
bool no_assertion=
false)
const;
737 static void flushFBCache ();
739 void flushCPC (
bool no_assertion=
false)
const;
740 static void flushCPCache ();
745 class SingleChunkArena final
749 SingleChunkArena (Arena* a_arena, std::size_t a_size);
750 ~SingleChunkArena ()
override;
752 SingleChunkArena () =
delete;
753 SingleChunkArena (
const SingleChunkArena& rhs) =
delete;
754 SingleChunkArena (SingleChunkArena&& rhs) =
delete;
755 SingleChunkArena& operator= (
const SingleChunkArena& rhs) =
delete;
756 SingleChunkArena& operator= (SingleChunkArena&& rhs) =
delete;
758 [[nodiscard]]
void* alloc (std::size_t sz)
override;
759 void free (
void* pt)
override;
762 [[nodiscard]]
bool isDeviceAccessible ()
const override;
763 [[nodiscard]]
bool isHostAccessible ()
const override;
765 [[nodiscard]]
bool isManaged ()
const override;
766 [[nodiscard]]
bool isDevice ()
const override;
767 [[nodiscard]]
bool isPinned ()
const override;
769 [[nodiscard]]
void* data () const noexcept {
return (
void*) m_root; }
772 DataAllocator m_dallocator;
773 char* m_root =
nullptr;
774 char* m_free =
nullptr;
775 std::size_t m_size = 0;
780[[nodiscard]]
int nComp (FabArrayBase
const& fa);
782[[nodiscard]] BoxArray
const&
boxArray (FabArrayBase
const& fa);
783[[nodiscard]] DistributionMapping
const&
DistributionMap (FabArrayBase
const& fa);
786bool CheckRcvStats (Vector<MPI_Status>& recv_stats,
const Vector<std::size_t>& recv_size,
int tag);
789std::ostream&
operator<< (std::ostream& os,
const FabArrayBase::BDKey&
id);
#define AMREX_EXPORT
Definition AMReX_Extension.H:191
Array4< int const > offset
Definition AMReX_HypreMLABecLap.cpp:1089
A virtual base class for objects that manage their own dynamic memory allocation.
Definition AMReX_Arena.H:124
A collection of Boxes stored in an Array.
Definition AMReX_BoxArray.H:567
IndexType ixType() const noexcept
Return index type of this BoxArray.
Definition AMReX_BoxArray.H:857
RefID getRefID() const noexcept
Return a unique ID of the reference.
Definition AMReX_BoxArray.H:854
Long size() const noexcept
Return the number of boxes in the BoxArray.
Definition AMReX_BoxArray.H:614
bool empty() const noexcept
Return whether the BoxArray is empty.
Definition AMReX_BoxArray.H:620
Definition AMReX_Box.H:1257
__host__ __device__ const IntVectND< dim > & smallEnd() const &noexcept
Return the inclusive lower bound of the box.
Definition AMReX_Box.H:111
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:43
RefID getRefID() const noexcept
This gives a unique ID of the reference, which is different from dmID above.
Definition AMReX_DistributionMapping.H:385
Definition AMReX_EB2.H:28
Base class for FabArray.
Definition AMReX_FabArrayBase.H:42
void flushTileArray(const IntVect &tilesize=IntVect::TheZeroVector(), bool no_assertion=false) const
Definition AMReX_FabArrayBase.cpp:2471
static Long bytesOfMapOfCopyComTagContainers(const MapOfCopyComTagContainers &)
Definition AMReX_FabArrayBase.cpp:226
IntVect nGrowVect() const noexcept
Definition AMReX_FabArrayBase.H:80
static std::multimap< BDKey, ParForInfo * > m_TheParForCache
Definition AMReX_FabArrayBase.H:679
void clearThisBD(bool no_assertion=false) const
clear BD count and caches associated with this BD, if no other is using this BD.
Definition AMReX_FabArrayBase.cpp:2522
void clear()
Definition AMReX_FabArrayBase.cpp:210
void flushPolarB(bool no_assertion=false) const
This flushes its own PolarB.
Definition AMReX_FabArrayBase.cpp:1839
std::multimap< BDKey, FabArrayBase::FPinfo * > FPinfoCache
Definition AMReX_FabArrayBase.H:332
Vector< int > indexArray
Definition AMReX_FabArrayBase.H:446
static void pushRegionTag(const char *t)
Definition AMReX_FabArrayBase.cpp:2671
static TACache m_TheTileArrayCache
Definition AMReX_FabArrayBase.H:462
const Vector< int > & IndexArray() const noexcept
Return constant reference to indices in the FabArray that we have access.
Definition AMReX_FabArrayBase.H:116
void define_fb_metadata(CommMetaData &cmd, const IntVect &nghost, bool cross, const Periodicity &period, bool multi_ghost) const
Definition AMReX_FabArrayBase.cpp:669
const TileArray * getTileArray(const IntVect &tilesize) const
Definition AMReX_FabArrayBase.cpp:2344
static void flushRB90Cache()
This flushes the entire cache.
Definition AMReX_FabArrayBase.cpp:1502
static FabArrayStats m_FA_stats
Definition AMReX_FabArrayBase.H:726
static bool getAllocSingleChunk()
Definition AMReX_FabArrayBase.H:730
BDKey m_bdkey
Definition AMReX_FabArrayBase.H:450
void addThisBD()
add the current BD into BD count database
Definition AMReX_FabArrayBase.cpp:2552
void setNGrowFilled(IntVect const &ng) noexcept
Definition AMReX_FabArrayBase.H:152
static void popRegionTag()
Definition AMReX_FabArrayBase.cpp:2683
static CFinfoCache m_TheCrseFineCache
Definition AMReX_FabArrayBase.H:380
RB90Cache::iterator RB90CacheIter
Definition AMReX_FabArrayBase.H:598
const RB90 & getRB90(const IntVect &nghost, const Box &domain) const
Definition AMReX_FabArrayBase.cpp:1511
static PolarBCache m_ThePolarBCache
Definition AMReX_FabArrayBase.H:644
void flushParForInfo(bool no_assertion=false) const
Definition AMReX_FabArrayBase.cpp:2776
void updateBDKey()
Definition AMReX_FabArrayBase.cpp:2564
static CacheStats m_FBC_stats
Definition AMReX_FabArrayBase.H:527
void buildTileArray(const IntVect &tilesize, TileArray &ta) const
Definition AMReX_FabArrayBase.cpp:2379
FBCache::iterator FBCacheIter
Definition AMReX_FabArrayBase.H:524
static void Initialize()
Initialize from ParmParse with "fabarray" prefix.
Definition AMReX_FabArrayBase.cpp:95
static std::vector< std::string > m_region_tag
Definition AMReX_FabArrayBase.H:414
FabArrayBase(FabArrayBase &&rhs) noexcept=default
static void flushRB180Cache()
This flushes the entire cache.
Definition AMReX_FabArrayBase.cpp:1666
int n_comp
Definition AMReX_FabArrayBase.H:449
static void printMemUsage()
Definition AMReX_FabArrayBase.cpp:2637
const FB & getFB(const IntVect &nghost, const Periodicity &period, bool cross=false, bool enforce_periodicity_only=false, bool override_sync=false, IntVect const &sumboundary_src_nghost=IntVect(-1)) const
Definition AMReX_FabArrayBase.cpp:1301
static CacheStats m_FPinfo_stats
Definition AMReX_FabArrayBase.H:337
bool isFusingCandidate() const noexcept
Is this a good candidate for kernel fusing?
Definition AMReX_FabArrayBase.cpp:2707
bool is_cell_centered() const noexcept
This tests on whether the FabArray is cell-centered.
Definition AMReX_FabArrayBase.cpp:2701
bool is_nodal() const noexcept
This tests on whether the FabArray is fully nodal.
Definition AMReX_FabArrayBase.cpp:2689
bool isOwner(int li) const noexcept
Definition AMReX_FabArrayBase.H:439
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 *)
Definition AMReX_FabArrayBase.cpp:2068
IndexType ixType() const noexcept
Return index type.
Definition AMReX_FabArrayBase.H:86
static Long queryMemUsageHWM(const std::string &tag=std::string("All"))
Definition AMReX_FabArrayBase.cpp:2660
int size() const noexcept
Return the number of FABs in the FabArray.
Definition AMReX_FabArrayBase.H:110
void flushCFinfo(bool no_assertion=false) const
Definition AMReX_FabArrayBase.cpp:2286
std::multimap< BDKey, FabArrayBase::RB180 * > RB180Cache
Definition AMReX_FabArrayBase.H:619
static CacheStats m_CPC_stats
Definition AMReX_FabArrayBase.H:579
static RB180Cache m_TheRB180Cache
Definition AMReX_FabArrayBase.H:622
IntVect nGrowFilled() const noexcept
Definition AMReX_FabArrayBase.H:151
FabArrayBase & operator=(const FabArrayBase &rhs)=default
void flushFPinfo(bool no_assertion=false) const
Definition AMReX_FabArrayBase.cpp:2128
void define(const BoxArray &bxs, const DistributionMapping &dm, int nvar, int ngrow)
Definition AMReX_FabArrayBase.cpp:178
const RB180 & getRB180(const IntVect &nghost, const Box &domain) const
Definition AMReX_FabArrayBase.cpp:1675
static CacheStats m_TAC_stats
Definition AMReX_FabArrayBase.H:463
static CacheStats m_CFinfo_stats
Definition AMReX_FabArrayBase.H:382
void setMultiGhost(bool a_multi_ghost)
Definition AMReX_FabArrayBase.H:146
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:438
const CPC & getCPC(const IntVect &dstng, const FabArrayBase &src, const IntVect &srcng, const Periodicity &period, bool to_ghost_cells_only=false, const IntVect &offset=IntVect(0)) const
Definition AMReX_FabArrayBase.cpp:579
static void updateMemUsage(std::string const &tag, Long nbytes, Arena const *ar)
Definition AMReX_FabArrayBase.cpp:2629
static FPinfoCache m_TheFillPatchCache
Definition AMReX_FabArrayBase.H:335
static IntVect mfiter_tile_size
Default tilesize in MFIter.
Definition AMReX_FabArrayBase.H:289
ParForInfo const & getParForInfo(const IntVect &nghost) const
Definition AMReX_FabArrayBase.cpp:2757
static std::map< BDKey, int > m_BD_count
Keep track of how many FabArrays are built with the same BDKey.
Definition AMReX_FabArrayBase.H:688
static bool m_alloc_single_chunk
Definition AMReX_FabArrayBase.H:728
std::map< std::pair< IntVect, IntVect >, TileArray > TAMap
Definition AMReX_FabArrayBase.H:459
int nGrow(int direction=0) const noexcept
Return the grow factor that defines the region of definition.
Definition AMReX_FabArrayBase.H:78
CPCache::iterator CPCacheIter
Definition AMReX_FabArrayBase.H:576
CopyComTag::CopyComTagsContainer CopyComTagsContainer
Definition AMReX_FabArrayBase.H:220
static FBCache m_TheFBCache
Definition AMReX_FabArrayBase.H:526
std::multimap< BDKey, FabArrayBase::FB * > FBCache
Definition AMReX_FabArrayBase.H:523
RB180Cache::iterator RB180CacheIter
Definition AMReX_FabArrayBase.H:620
BDKey getBDKey() const noexcept
Definition AMReX_FabArrayBase.H:250
static void flushParForCache()
Definition AMReX_FabArrayBase.cpp:2788
CopyComTag::MapOfCopyComTagContainers MapOfCopyComTagContainers
Definition AMReX_FabArrayBase.H:221
static std::map< std::string, meminfo > m_mem_usage
Definition AMReX_FabArrayBase.H:403
int localindex(int K) const noexcept
Return local index in the vector of FABs.
Definition AMReX_FabArrayBase.H:119
FabArrayBase(const FabArrayBase &rhs)=default
const DistributionMapping & DistributionMap() const noexcept
Return constant reference to associated DistributionMapping.
Definition AMReX_FabArrayBase.H:131
static CPCache m_TheCPCache
Definition AMReX_FabArrayBase.H:578
int local_size() const noexcept
Return the number of local FABs in the FabArray.
Definition AMReX_FabArrayBase.H:113
IntVect n_grow
Definition AMReX_FabArrayBase.H:448
static const CFinfo & TheCFinfo(const FabArrayBase &finefa, const Geometry &finegm, const IntVect &ng, bool include_periodic, bool include_physbndry)
Definition AMReX_FabArrayBase.cpp:2244
void flushRB90(bool no_assertion=false) const
This flushes its own RB90.
Definition AMReX_FabArrayBase.cpp:1490
static Long queryMemUsage(const std::string &tag=std::string("All"))
Definition AMReX_FabArrayBase.cpp:2649
std::vector< bool > ownership
Definition AMReX_FabArrayBase.H:447
std::multimap< BDKey, FabArrayBase::CPC * > CPCache
Definition AMReX_FabArrayBase.H:575
std::multimap< BDKey, FabArrayBase::CFinfo * > CFinfoCache
Definition AMReX_FabArrayBase.H:377
bool empty() const noexcept
Definition AMReX_FabArrayBase.H:89
std::multimap< BDKey, FabArrayBase::RB90 * > RB90Cache
Definition AMReX_FabArrayBase.H:597
static RB90Cache m_TheRB90Cache
Definition AMReX_FabArrayBase.H:600
static void flushTileArrayCache()
This flushes the entire cache.
Definition AMReX_FabArrayBase.cpp:2508
void flushRB180(bool no_assertion=false) const
This flushes its own RB180.
Definition AMReX_FabArrayBase.cpp:1654
CpOp
parallel copy or add
Definition AMReX_FabArrayBase.H:394
@ ADD
Definition AMReX_FabArrayBase.H:394
@ COPY
Definition AMReX_FabArrayBase.H:394
bool m_multi_ghost
Definition AMReX_FabArrayBase.H:452
IntVect n_filled
Definition AMReX_FabArrayBase.H:451
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:101
std::map< BDKey, TAMap > TACache
Definition AMReX_FabArrayBase.H:460
static void flushPolarBCache()
This flushes the entire cache.
Definition AMReX_FabArrayBase.cpp:1851
DistributionMapping distributionMap
Definition AMReX_FabArrayBase.H:445
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:220
FPinfoCache::iterator FPinfoCacheIter
Definition AMReX_FabArrayBase.H:333
friend void FillBoundary(Vector< FabArray< FAB > * > const &mf, const Periodicity &period)
CFinfoCache::iterator CFinfoCacheIter
Definition AMReX_FabArrayBase.H:378
static std::uint64_t getNextCommMetaDataId()
Definition AMReX_FabArrayBase.cpp:2799
static void Finalize()
Definition AMReX_FabArrayBase.cpp:2303
PolarBCache::iterator PolarBCacheIter
Definition AMReX_FabArrayBase.H:642
static int MaxComp
The maximum number of components to copy() at a time.
Definition AMReX_FabArrayBase.H:292
BoxArray boxarray
Definition AMReX_FabArrayBase.H:444
static IntVect comm_tile_size
communication tile size
Definition AMReX_FabArrayBase.H:302
int nComp() const noexcept
Return number of variables (aka components) associated with each point.
Definition AMReX_FabArrayBase.H:83
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:95
std::multimap< BDKey, FabArrayBase::PolarB * > PolarBCache
Definition AMReX_FabArrayBase.H:641
const PolarB & getPolarB(const IntVect &nghost, const Box &domain) const
Definition AMReX_FabArrayBase.cpp:1860
An Array of FortranArrayBox(FAB)-like Objects.
Definition AMReX_FabArray.H:347
Rectangular problem domain geometry.
Definition AMReX_Geometry.H:74
__host__ static __device__ constexpr 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:679
Iterator for looping ever tiles and boxes of amrex::FabArray based containers.
Definition AMReX_MFIter.H:85
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:28
Long size() const noexcept
Definition AMReX_Vector.H:53
amrex_long Long
Definition AMReX_INT.H:30
int MyProc() noexcept
Definition AMReX_ParallelDescriptor.H:128
std::string const & name()
Definition AMReX_Machine.cpp:46
Definition AMReX_Amr.cpp:49
int nComp(FabArrayBase const &fa)
Definition AMReX_FabArrayBase.cpp:2854
DistributionMapping const & DistributionMap(FabArrayBase const &fa)
Definition AMReX_FabArrayBase.cpp:2869
IntVect nGrowVect(FabArrayBase const &fa)
Definition AMReX_FabArrayBase.cpp:2859
IntVectND< 3 > IntVect
IntVect is an alias for amrex::IntVectND instantiated with AMREX_SPACEDIM.
Definition AMReX_BaseFwd.H:33
const int[]
Definition AMReX_BLProfiler.cpp:1664
std::ostream & operator<<(std::ostream &os, AmrMesh const &amr_mesh)
Definition AMReX_AmrMesh.cpp:1237
BoxArray const & boxArray(FabArrayBase const &fa)
Definition AMReX_FabArrayBase.cpp:2864
Definition AMReX_BoxArray.H:842
Definition AMReX_Box.H:2152
Definition AMReX_DistributionMapping.H:371
Definition AMReX_FabArrayBase.H:230
bool operator==(const BDKey &rhs) const noexcept
Definition AMReX_FabArrayBase.H:238
bool operator<(const BDKey &rhs) const noexcept
Definition AMReX_FabArrayBase.H:234
bool operator!=(const BDKey &rhs) const noexcept
Definition AMReX_FabArrayBase.H:241
friend std::ostream & operator<<(std::ostream &os, const BDKey &id)
Definition AMReX_FabArrayBase.cpp:2622
coarse/fine boundary
Definition AMReX_FabArrayBase.H:352
Box m_fine_domain
Definition AMReX_FabArrayBase.H:369
IntVect m_ng
Definition AMReX_FabArrayBase.H:370
Long bytes() const
Definition AMReX_FabArrayBase.cpp:2235
bool m_include_periodic
Definition AMReX_FabArrayBase.H:371
static Box Domain(const Geometry &geom, const IntVect &ng, bool include_periodic, bool include_physbndry)
Definition AMReX_FabArrayBase.cpp:2216
bool m_include_physbndry
Definition AMReX_FabArrayBase.H:372
Long m_nuse
Definition AMReX_FabArrayBase.H:374
BoxArray ba_cfb
Definition AMReX_FabArrayBase.H:364
BDKey m_fine_bdk
Definition AMReX_FabArrayBase.H:368
Vector< int > fine_grid_idx
local array
Definition AMReX_FabArrayBase.H:366
DistributionMapping dm_cfb
Definition AMReX_FabArrayBase.H:365
parallel copy or add
Definition AMReX_FabArrayBase.H:538
BoxArray m_srcba
Definition AMReX_FabArrayBase.H:561
IntVect m_srcng
Definition AMReX_FabArrayBase.H:556
bool m_tgco
Definition AMReX_FabArrayBase.H:560
BoxArray m_dstba
Definition AMReX_FabArrayBase.H:562
BDKey m_srcbdk
Definition AMReX_FabArrayBase.H:554
std::uint64_t m_id
Definition AMReX_FabArrayBase.H:553
Long bytes() const
Definition AMReX_FabArrayBase.cpp:237
BDKey m_dstbdk
Definition AMReX_FabArrayBase.H:555
Long m_nuse
Definition AMReX_FabArrayBase.H:564
IntVect m_offset
Definition AMReX_FabArrayBase.H:558
Periodicity m_period
Definition AMReX_FabArrayBase.H:559
IntVect m_dstng
Definition AMReX_FabArrayBase.H:557
Used by a bunch of routines when communicating via MPI.
Definition AMReX_FabArrayBase.H:195
Box sbox
Definition AMReX_FabArrayBase.H:197
CopyComTag() noexcept=default
std::vector< CopyComTag > CopyComTagsContainer
Definition AMReX_FabArrayBase.H:213
bool operator<(const CopyComTag &rhs) const noexcept
Definition AMReX_FabArrayBase.H:203
int srcIndex
Definition AMReX_FabArrayBase.H:199
Box dbox
Definition AMReX_FabArrayBase.H:196
int dstIndex
Definition AMReX_FabArrayBase.H:198
std::map< int, CopyComTagsContainer > MapOfCopyComTagContainers
Definition AMReX_FabArrayBase.H:215
FillBoundary.
Definition AMReX_FabArrayBase.H:488
bool m_multi_ghost
Definition AMReX_FabArrayBase.H:505
Long m_nuse
Definition AMReX_FabArrayBase.H:504
IntVect m_ngrow
Definition AMReX_FabArrayBase.H:497
bool m_cross
Definition AMReX_FabArrayBase.H:499
IndexType m_typ
Definition AMReX_FabArrayBase.H:495
Long bytes() const
Definition AMReX_FabArrayBase.cpp:257
Periodicity m_period
Definition AMReX_FabArrayBase.H:502
std::uint64_t m_id
Definition AMReX_FabArrayBase.H:494
bool m_epo
Definition AMReX_FabArrayBase.H:500
bool m_override_sync
Definition AMReX_FabArrayBase.H:501
IntVect m_crse_ratio
BoxArray in FabArrayBase may have crse_ratio.
Definition AMReX_FabArrayBase.H:496
IntVect m_sb_snghost
Definition AMReX_FabArrayBase.H:498
Definition AMReX_FabArrayBase.H:305
std::unique_ptr< FabFactory< FArrayBox > > fact_crse_patch
Definition AMReX_FabArrayBase.H:320
DistributionMapping dm_patch
Definition AMReX_FabArrayBase.H:319
BDKey m_srcbdk
Definition AMReX_FabArrayBase.H:323
Long bytes() const
Definition AMReX_FabArrayBase.cpp:2059
BoxArray ba_crse_patch
Definition AMReX_FabArrayBase.H:317
std::unique_ptr< FabFactory< FArrayBox > > fact_fine_patch
Definition AMReX_FabArrayBase.H:321
std::unique_ptr< BoxConverter > m_coarsener
Definition AMReX_FabArrayBase.H:327
Box m_dstdomain
Definition AMReX_FabArrayBase.H:325
IntVect m_dstng
Definition AMReX_FabArrayBase.H:326
Long m_nuse
Definition AMReX_FabArrayBase.H:329
BDKey m_dstbdk
Definition AMReX_FabArrayBase.H:324
BoxArray ba_fine_patch
Definition AMReX_FabArrayBase.H:318
Definition AMReX_FabArrayBase.H:697
Long num_build
Definition AMReX_FabArrayBase.H:702
void recordDelete() noexcept
Definition AMReX_FabArrayBase.H:709
int max_num_boxarrays
Definition AMReX_FabArrayBase.H:700
void recordMaxNumBAUse(int n) noexcept
Definition AMReX_FabArrayBase.H:715
void recordMaxNumBoxArrays(int n) noexcept
Definition AMReX_FabArrayBase.H:712
void print() const
Definition AMReX_FabArrayBase.H:718
int max_num_fabarrays
Definition AMReX_FabArrayBase.H:699
int max_num_ba_use
Definition AMReX_FabArrayBase.H:701
int num_fabarrays
Definition AMReX_FabArrayBase.H:698
void recordBuild() noexcept
Definition AMReX_FabArrayBase.H:704
Used for collecting information used in communicating FABs.
Definition AMReX_FabArrayBase.H:272
int srcComp
Definition AMReX_FabArrayBase.H:277
int toProc
Definition AMReX_FabArrayBase.H:274
int fromProc
Definition AMReX_FabArrayBase.H:273
int fabArrayId
Definition AMReX_FabArrayBase.H:281
int procThatHasData
Definition AMReX_FabArrayBase.H:284
int procThatNeedsData
Definition AMReX_FabArrayBase.H:283
int destComp
Definition AMReX_FabArrayBase.H:278
int face
Definition AMReX_FabArrayBase.H:280
Box box
Definition AMReX_FabArrayBase.H:285
int fabIndex
Definition AMReX_FabArrayBase.H:275
int nComp
Definition AMReX_FabArrayBase.H:279
int fineIndex
Definition AMReX_FabArrayBase.H:276
int fillBoxId
Definition AMReX_FabArrayBase.H:282
For ParallelFor(FabArray)
Definition AMReX_FabArrayBase.H:655
ParForInfo(ParForInfo const &)=delete
Long m_ncellsmax
Definition AMReX_FabArrayBase.H:672
BATransformer m_bat
Definition AMReX_FabArrayBase.H:670
ParForInfo(ParForInfo &&)=delete
BoxIndexer const * getBoxes() const
Definition AMReX_FabArrayBase.H:662
char * m_hp
Definition AMReX_FabArrayBase.H:674
int getNBlocksPerBox(int nthreads) const
Definition AMReX_FabArrayBase.H:659
void operator=(ParForInfo const &)=delete
~ParForInfo()
Definition AMReX_FabArrayBase.cpp:2751
IntVect m_ng
Definition AMReX_FabArrayBase.H:671
BoxIndexer * m_boxes
Definition AMReX_FabArrayBase.H:673
Fill polar boundary in spherical coordinates.
Definition AMReX_FabArrayBase.H:633
Box m_domain
Definition AMReX_FabArrayBase.H:636
IntVect m_ngrow
Definition AMReX_FabArrayBase.H:635
Rotate Boundary by 180.
Definition AMReX_FabArrayBase.H:611
IntVect m_ngrow
Definition AMReX_FabArrayBase.H:613
Box m_domain
Definition AMReX_FabArrayBase.H:614
Rotate Boundary by 90.
Definition AMReX_FabArrayBase.H:589
Box m_domain
Definition AMReX_FabArrayBase.H:592
IntVect m_ngrow
Definition AMReX_FabArrayBase.H:591
Definition AMReX_FabArrayBase.H:415
~RegionTag()
Definition AMReX_FabArrayBase.H:422
RegionTag & operator=(RegionTag const &)=delete
RegionTag(RegionTag &&rhs) noexcept
Definition AMReX_FabArrayBase.H:419
RegionTag(const std::string &t)
Definition AMReX_FabArrayBase.H:417
RegionTag(RegionTag const &)=delete
RegionTag(const char *t)
Definition AMReX_FabArrayBase.H:416
Tiling.
Definition AMReX_FabArrayBase.H:259
Vector< int > indexMap
Definition AMReX_FabArrayBase.H:262
Vector< int > localIndexMap
Definition AMReX_FabArrayBase.H:263
Long bytes() const
Definition AMReX_FabArrayBase.cpp:277
Vector< int > localTileIndexMap
Definition AMReX_FabArrayBase.H:264
Vector< int > numLocalTiles
Definition AMReX_FabArrayBase.H:261
Long nuse
Definition AMReX_FabArrayBase.H:260
Vector< Box > tileArray
Definition AMReX_FabArrayBase.H:265
Definition AMReX_FabArrayBase.H:399
Long nbytes
Definition AMReX_FabArrayBase.H:400
Long nbytes_hwm
Definition AMReX_FabArrayBase.H:401