Block-Structured AMR Software Framework
amrex::FabArrayCopyDescriptor< FAB > Class Template Reference

This class orchestrates filling a destination fab of size destFabBox from fabarray on the local processor (myProc). More...

#include <AMReX_FACopyDescriptor.H>

Public Member Functions

 FabArrayCopyDescriptor ()=default
 
 ~FabArrayCopyDescriptor ()
 
 FabArrayCopyDescriptor (const FabArrayCopyDescriptor< FAB > &)=delete
 
 FabArrayCopyDescriptor (FabArrayCopyDescriptor< FAB > &&)=delete
 
FabArrayCopyDescriptor< FAB > & operator= (const FabArrayCopyDescriptor< FAB > &)=delete
 
FabArrayCopyDescriptor< FAB > & operator= (FabArrayCopyDescriptor< FAB > &&)=delete
 
FabArrayId RegisterFabArray (FabArray< FAB > *fabarray)
 
FillBoxId AddBox (FabArrayId fabarrayid, const Box &destFabBox, BoxList *unfilledBoxes)
 
FillBoxId AddBox (FabArrayId fabarrayid, const Box &destFabBox, BoxList *unfilledBoxes, int srccomp, int destcomp, int numcomp)
 
FillBoxId AddBox (FabArrayId fabarrayid, const Box &destFabBox, BoxList *unfilledBoxes, int fabarrayindex, int srccomp, int destcomp, int numcomp, bool bUseValidBox=true)
 
void CollectData ()
 
void FillFab (FabArrayId faid, const FillBoxId &fillboxid, FAB &destFab)
 
void FillFab (FabArrayId faid, const FillBoxId &fillboxid, FAB &destFab, const Box &destBox)
 
void PrintStats () const
 
bool DataAvailable () const
 
void clear ()
 
int CurrentNFabArrays () const
 
int nFabComTags () const
 
int nFabCopyDescs () const
 

Private Types

using FCDMap = std::multimap< int, FabCopyDescriptor< FAB > * >
 
using FCDMapValueType = typename FCDMap::value_type
 
using FCDMapIter = typename FCDMap::iterator
 
using FCDMapConstIter = typename FCDMap::const_iterator
 
using FabComTagContainer = std::vector< FabArrayBase::FabComTag >
 
using FabComTagIterContainer = std::vector< FabComTagContainer::const_iterator >
 

Private Member Functions

void AddBoxDoIt (FabArrayId fabarrayid, const Box &destFabBox, BoxList *returnedUnfilledBoxes, int faindex, int srccomp, int destcomp, int numcomp, bool bUseValidBox, BoxDomain &unfilledBoxDomain)
 

Private Attributes

std::vector< FabArray< FAB > * > fabArrays
 
std::vector< FCDMapfabCopyDescList
 
FabComTagContainer fabComTagList
 
int nextFillBoxId {0}
 
bool dataAvailable {false}
 

Detailed Description

template<class FAB>
class amrex::FabArrayCopyDescriptor< FAB >

This class orchestrates filling a destination fab of size destFabBox from fabarray on the local processor (myProc).

Member Typedef Documentation

◆ FabComTagContainer

template<class FAB >
using amrex::FabArrayCopyDescriptor< FAB >::FabComTagContainer = std::vector<FabArrayBase::FabComTag>
private

Some useful typedefs.

◆ FabComTagIterContainer

template<class FAB >
using amrex::FabArrayCopyDescriptor< FAB >::FabComTagIterContainer = std::vector<FabComTagContainer::const_iterator>
private

◆ FCDMap

template<class FAB >
using amrex::FabArrayCopyDescriptor< FAB >::FCDMap = std::multimap<int,FabCopyDescriptor<FAB>*>
private

◆ FCDMapConstIter

template<class FAB >
using amrex::FabArrayCopyDescriptor< FAB >::FCDMapConstIter = typename FCDMap::const_iterator
private

◆ FCDMapIter

template<class FAB >
using amrex::FabArrayCopyDescriptor< FAB >::FCDMapIter = typename FCDMap::iterator
private

◆ FCDMapValueType

template<class FAB >
using amrex::FabArrayCopyDescriptor< FAB >::FCDMapValueType = typename FCDMap::value_type
private

Constructor & Destructor Documentation

◆ FabArrayCopyDescriptor() [1/3]

template<class FAB >
amrex::FabArrayCopyDescriptor< FAB >::FabArrayCopyDescriptor ( )
default

◆ ~FabArrayCopyDescriptor()

◆ FabArrayCopyDescriptor() [2/3]

template<class FAB >
amrex::FabArrayCopyDescriptor< FAB >::FabArrayCopyDescriptor ( const FabArrayCopyDescriptor< FAB > &  )
delete

◆ FabArrayCopyDescriptor() [3/3]

template<class FAB >
amrex::FabArrayCopyDescriptor< FAB >::FabArrayCopyDescriptor ( FabArrayCopyDescriptor< FAB > &&  )
delete

Member Function Documentation

◆ AddBox() [1/3]

template<class FAB >
FillBoxId amrex::FabArrayCopyDescriptor< FAB >::AddBox ( FabArrayId  fabarrayid,
const Box destFabBox,
BoxList unfilledBoxes 
)

◆ AddBox() [2/3]

template<class FAB >
FillBoxId amrex::FabArrayCopyDescriptor< FAB >::AddBox ( FabArrayId  fabarrayid,
const Box destFabBox,
BoxList unfilledBoxes,
int  fabarrayindex,
int  srccomp,
int  destcomp,
int  numcomp,
bool  bUseValidBox = true 
)

Add a box but only from FabArray[fabarrayindex].

◆ AddBox() [3/3]

template<class FAB >
FillBoxId amrex::FabArrayCopyDescriptor< FAB >::AddBox ( FabArrayId  fabarrayid,
const Box destFabBox,
BoxList unfilledBoxes,
int  srccomp,
int  destcomp,
int  numcomp 
)

◆ AddBoxDoIt()

template<class FAB >
void amrex::FabArrayCopyDescriptor< FAB >::AddBoxDoIt ( FabArrayId  fabarrayid,
const Box destFabBox,
BoxList returnedUnfilledBoxes,
int  faindex,
int  srccomp,
int  destcomp,
int  numcomp,
bool  bUseValidBox,
BoxDomain unfilledBoxDomain 
)
private

Helper function for AddBox() routines.

◆ clear()

template<class FAB >
void amrex::FabArrayCopyDescriptor< FAB >::clear

◆ CollectData()

template<class FAB >
void amrex::FabArrayCopyDescriptor< FAB >::CollectData

◆ CurrentNFabArrays()

template<class FAB >
int amrex::FabArrayCopyDescriptor< FAB >::CurrentNFabArrays ( ) const
inline

◆ DataAvailable()

template<class FAB >
bool amrex::FabArrayCopyDescriptor< FAB >::DataAvailable ( ) const
inline

◆ FillFab() [1/2]

template<class FAB >
void amrex::FabArrayCopyDescriptor< FAB >::FillFab ( FabArrayId  faid,
const FillBoxId fillboxid,
FAB &  destFab 
)

◆ FillFab() [2/2]

template<class FAB >
void amrex::FabArrayCopyDescriptor< FAB >::FillFab ( FabArrayId  faid,
const FillBoxId fillboxid,
FAB &  destFab,
const Box destBox 
)

◆ nFabComTags()

template<class FAB >
int amrex::FabArrayCopyDescriptor< FAB >::nFabComTags ( ) const
inline

◆ nFabCopyDescs()

template<class FAB >
int amrex::FabArrayCopyDescriptor< FAB >::nFabCopyDescs ( ) const
inline

◆ operator=() [1/2]

template<class FAB >
FabArrayCopyDescriptor<FAB>& amrex::FabArrayCopyDescriptor< FAB >::operator= ( const FabArrayCopyDescriptor< FAB > &  )
delete

◆ operator=() [2/2]

template<class FAB >
FabArrayCopyDescriptor<FAB>& amrex::FabArrayCopyDescriptor< FAB >::operator= ( FabArrayCopyDescriptor< FAB > &&  )
delete

◆ PrintStats()

template<class FAB >
void amrex::FabArrayCopyDescriptor< FAB >::PrintStats

◆ RegisterFabArray()

template<class FAB >
FabArrayId amrex::FabArrayCopyDescriptor< FAB >::RegisterFabArray ( FabArray< FAB > *  fabarray)

Member Data Documentation

◆ dataAvailable

template<class FAB >
bool amrex::FabArrayCopyDescriptor< FAB >::dataAvailable {false}
private

◆ fabArrays

template<class FAB >
std::vector<FabArray<FAB>*> amrex::FabArrayCopyDescriptor< FAB >::fabArrays
private

The data.

◆ fabComTagList

template<class FAB >
FabComTagContainer amrex::FabArrayCopyDescriptor< FAB >::fabComTagList
private

◆ fabCopyDescList

template<class FAB >
std::vector<FCDMap> amrex::FabArrayCopyDescriptor< FAB >::fabCopyDescList
private

◆ nextFillBoxId

template<class FAB >
int amrex::FabArrayCopyDescriptor< FAB >::nextFillBoxId {0}
private

The documentation for this class was generated from the following file: