#include <FabArray.H>
Public Member Functions | |
FabArrayCopyDescriptor () | |
~FabArrayCopyDescriptor () | |
FabArrayId | RegisterFabArray (FabArray< FAB > *fabarray) |
FillBoxId | AddBox (FabArrayId fabarrayid, const Box &destFabBox, BoxList *unfilledBoxes, bool bUseValidBox=true) |
FillBoxId | AddBox (FabArrayId fabarrayid, const Box &destFabBox, BoxList *unfilledBoxes, int srccomp, int destcomp, int numcomp, bool bUseValidBox=true) |
FillBoxId | AddBox (FabArrayId fabarrayid, const Box &destFabBox, BoxList *unfilledBoxes, int fabarrayindex, int srccomp, int destcomp, int numcomp, bool bUseValidBox=true) |
void | CollectData (Array< int > *snd_cache=0, CommDataCache *cd_cache=0) |
void | FillFab (FabArrayId fabarrayid, const FillBoxId &fillboxid, FAB &destFab) |
void | FillFab (FabArrayId fabarrayid, const FillBoxId &fillboxid, FAB &destFab, const Box &destBox) |
void | PrintStats () const |
bool | DataAvailable () const |
void | clear () |
int | nFabArrays () const |
int | nFabComTags () const |
int | nFabCopyDescs () const |
Protected Member Functions | |
void | AddBoxDoIt (FabArrayId fabarrayid, const Box &destFabBox, BoxList *returnedUnfilledBoxes, int faindex, int srccomp, int destcomp, int numcomp, bool bUseValidBox, BoxDomain &unfilledBoxDomain, BoxList &filledBoxes) |
Protected Attributes | |
std::vector< FabArray< FAB > * > | fabArrays |
std::vector< FCDMap > | fabCopyDescList |
std::vector< FabComTag > | fabComTagList |
int | nextFillBoxId |
bool | dataAvailable |
FabArrayCopyDescriptor< FAB >::FabArrayCopyDescriptor | ( | ) | [inline] |
FabArrayCopyDescriptor< FAB >::~FabArrayCopyDescriptor | ( | ) | [inline] |
References FabArrayCopyDescriptor< FAB >::clear().
FabArrayId FabArrayCopyDescriptor< FAB >::RegisterFabArray | ( | FabArray< FAB > * | fabarray | ) | [inline] |
FillBoxId FabArrayCopyDescriptor< FAB >::AddBox | ( | FabArrayId | fabarrayid, | |
const Box & | destFabBox, | |||
BoxList * | unfilledBoxes, | |||
bool | bUseValidBox = true | |||
) | [inline] |
References FabArrayCopyDescriptor< FAB >::fabArrays, and FabArrayId::Id().
Referenced by MultiFab::FillBoundary(), and BoxLib::linInterpAddBox().
FillBoxId FabArrayCopyDescriptor< FAB >::AddBox | ( | FabArrayId | fabarrayid, | |
const Box & | destFabBox, | |||
BoxList * | unfilledBoxes, | |||
int | srccomp, | |||
int | destcomp, | |||
int | numcomp, | |||
bool | bUseValidBox = true | |||
) | [inline] |
FillBoxId FabArrayCopyDescriptor< FAB >::AddBox | ( | FabArrayId | fabarrayid, | |
const Box & | destFabBox, | |||
BoxList * | unfilledBoxes, | |||
int | fabarrayindex, | |||
int | srccomp, | |||
int | destcomp, | |||
int | numcomp, | |||
bool | bUseValidBox = true | |||
) | [inline] |
void FabArrayCopyDescriptor< FAB >::CollectData | ( | Array< int > * | snd_cache = 0 , |
|
CommDataCache * | cd_cache = 0 | |||
) | [inline] |
References Arena::alloc(), ParallelDescriptor::Arecv(), BL_ASSERT, FabComTag::box, CommData::box(), FabArrayCopyDescriptor< FAB >::dataAvailable, Array< T >::dataPtr(), CommData::DIM, FabComTag::fabArrayId, CommData::fabarrayid(), FabArrayCopyDescriptor< FAB >::fabArrays, FabArrayCopyDescriptor< FAB >::fabComTagList, FabArrayCopyDescriptor< FAB >::fabCopyDescList, CommData::fabindex(), FabCopyDescriptor< FAB >::fillBoxId, FabComTag::fillBoxId, Arena::free(), CommData::fromproc(), ParallelDescriptor::Gather(), CommData::id(), CommDataCache::isValid(), FabCopyDescriptor< FAB >::localFabSource, BoxLib::max(), MPI_REQUEST_NULL, ParallelDescriptor::MyProc(), FabComTag::nComp, CommData::nComp(), ParallelDescriptor::NProcs(), Box::numPts(), ParallelDescriptor::Send(), ParallelDescriptor::SeqNum(), Array< T >::size(), CommData::srcComp(), FabCopyDescriptor< FAB >::subBox, BoxLib::The_Arena(), CommDataCache::theCommData(), and ParallelDescriptor::Waitsome().
Referenced by MultiFab::FillBoundary().
void FabArrayCopyDescriptor< FAB >::FillFab | ( | FabArrayId | fabarrayid, | |
const FillBoxId & | fillboxid, | |||
FAB & | destFab | |||
) | [inline] |
References BL_ASSERT, FabArrayCopyDescriptor< FAB >::dataAvailable, FabCopyDescriptor< FAB >::destComp, FabArrayCopyDescriptor< FAB >::fabCopyDescList, FabCopyDescriptor< FAB >::fillBoxId, FillLocally, FabCopyDescriptor< FAB >::fillType, FillBoxId::Id(), FabArrayId::Id(), FabCopyDescriptor< FAB >::localFabSource, FabCopyDescriptor< FAB >::nComp, FabCopyDescriptor< FAB >::srcComp, and FabCopyDescriptor< FAB >::subBox.
Referenced by MultiFab::FillBoundary(), and BoxLib::linInterpFillFab().
void FabArrayCopyDescriptor< FAB >::FillFab | ( | FabArrayId | fabarrayid, | |
const FillBoxId & | fillboxid, | |||
FAB & | destFab, | |||
const Box & | destBox | |||
) | [inline] |
References BL_ASSERT, FabArrayCopyDescriptor< FAB >::dataAvailable, FabCopyDescriptor< FAB >::destComp, FabArrayCopyDescriptor< FAB >::fabCopyDescList, FabCopyDescriptor< FAB >::fillBoxId, FillLocally, FabCopyDescriptor< FAB >::fillType, FillBoxId::Id(), FabArrayId::Id(), FabCopyDescriptor< FAB >::localFabSource, FabCopyDescriptor< FAB >::nComp, Box::sameSize(), FabCopyDescriptor< FAB >::srcComp, and FabCopyDescriptor< FAB >::subBox.
void FabArrayCopyDescriptor< FAB >::PrintStats | ( | ) | const [inline] |
References FabArrayCopyDescriptor< FAB >::fabArrays, and ParallelDescriptor::MyProc().
bool FabArrayCopyDescriptor< FAB >::DataAvailable | ( | ) | const [inline] |
void FabArrayCopyDescriptor< FAB >::clear | ( | ) | [inline] |
References FabArrayCopyDescriptor< FAB >::dataAvailable, FabArrayCopyDescriptor< FAB >::fabArrays, FabArrayCopyDescriptor< FAB >::fabComTagList, FabArrayCopyDescriptor< FAB >::fabCopyDescList, and FabArrayCopyDescriptor< FAB >::nextFillBoxId.
Referenced by FabArrayCopyDescriptor< FAB >::~FabArrayCopyDescriptor().
int FabArrayCopyDescriptor< FAB >::nFabArrays | ( | ) | const [inline] |
int FabArrayCopyDescriptor< FAB >::nFabComTags | ( | ) | const [inline] |
int FabArrayCopyDescriptor< FAB >::nFabCopyDescs | ( | ) | const [inline] |
void FabArrayCopyDescriptor< FAB >::AddBoxDoIt | ( | FabArrayId | fabarrayid, | |
const Box & | destFabBox, | |||
BoxList * | returnedUnfilledBoxes, | |||
int | faindex, | |||
int | srccomp, | |||
int | destcomp, | |||
int | numcomp, | |||
bool | bUseValidBox, | |||
BoxDomain & | unfilledBoxDomain, | |||
BoxList & | filledBoxes | |||
) | [inline, protected] |
References BL_ASSERT, FabComTag::box, FabArrayBase::box(), FabCopyDescriptor< FAB >::cacheDataAllocated, FabCopyDescriptor< FAB >::copyFromIndex, FabCopyDescriptor< FAB >::copyFromProc, FabArrayCopyDescriptor< FAB >::dataAvailable, FabComTag::destComp, FabCopyDescriptor< FAB >::destComp, FabArrayBase::DistributionMap(), FabComTag::fabArrayId, FabArrayCopyDescriptor< FAB >::fabArrays, FabArrayBase::fabbox(), FabArrayCopyDescriptor< FAB >::fabComTagList, FabArrayCopyDescriptor< FAB >::fabCopyDescList, FabComTag::fabIndex, FabComTag::fillBoxId, FabCopyDescriptor< FAB >::fillBoxId, FillLocally, FillRemotely, FabCopyDescriptor< FAB >::fillType, FabArrayId::Id(), BoxLib::intersect(), FabCopyDescriptor< FAB >::localFabSource, FabCopyDescriptor< FAB >::myProc, ParallelDescriptor::MyProc(), FabComTag::nComp, FabCopyDescriptor< FAB >::nComp, FabArrayCopyDescriptor< FAB >::nextFillBoxId, Box::ok(), FabComTag::procThatHasData, FabComTag::procThatNeedsData, BoxList::push_back(), BoxDomain::rmBox(), FabComTag::srcComp, FabCopyDescriptor< FAB >::srcComp, and FabCopyDescriptor< FAB >::subBox.
Referenced by FabArrayCopyDescriptor< FAB >::AddBox().
std::vector<FabArray<FAB>*> FabArrayCopyDescriptor< FAB >::fabArrays [protected] |
std::vector<FCDMap> FabArrayCopyDescriptor< FAB >::fabCopyDescList [protected] |
std::vector<FabComTag> FabArrayCopyDescriptor< FAB >::fabComTagList [protected] |
int FabArrayCopyDescriptor< FAB >::nextFillBoxId [protected] |
bool FabArrayCopyDescriptor< FAB >::dataAvailable [protected] |