![]() |
Block-Structured AMR Software Framework
|
Manages multi-component copy operations out of one or more FabArrays. 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) |
| Register a FabArray from which copies may be requested. | |
| FillBoxId | AddBox (FabArrayId fabarrayid, const Box &destFabBox, BoxList *unfilledBoxes) |
| Describe a destination box that needs to be filled. | |
| FillBoxId | AddBox (FabArrayId fabarrayid, const Box &destFabBox, BoxList *unfilledBoxes, int srccomp, int destcomp, int numcomp) |
| Add a destination box specifying component ranges explicitly. | |
| FillBoxId | AddBox (FabArrayId fabarrayid, const Box &destFabBox, BoxList *unfilledBoxes, int fabarrayindex, int srccomp, int destcomp, int numcomp, bool bUseValidBox=true) |
| Add a destination box but restrict fills to a specific Fab index. | |
| void | CollectData () |
| Exchange staged data for all FillBox entries. | |
| void | FillFab (FabArrayId faid, const FillBoxId &fillboxid, FAB &destFab) |
| Copy staged data into the requested fill region of the destination Fab. | |
| void | FillFab (FabArrayId faid, const FillBoxId &fillboxid, FAB &destFab, const Box &destBox) |
| Copy staged data into a user-specified sub-box of the destination Fab. | |
| void | PrintStats () const |
| Print per-rank box-array information for each registered FabArray. | |
| bool | DataAvailable () const |
| Return true once all requested data have been staged locally. | |
| void | clear () |
| Reset the descriptor, unregistering all FabArrays and outstanding boxes. | |
| int | CurrentNFabArrays () const |
| Number of FabArrays currently registered with this descriptor. | |
| int | nFabComTags () const |
| Number of remote-transfer FabComTag entries currently stored. | |
| int | nFabCopyDescs () const |
| Number of per-FabArray FabCopyDescriptor maps held (one per registered FabArray). | |
Manages multi-component copy operations out of one or more FabArrays.
Each descriptor registers the FabArrays it can read from, tracks boxes that still require data, and knows how to pull data either locally or via MPI.
|
default |
| amrex::FabArrayCopyDescriptor< FAB >::~FabArrayCopyDescriptor | ( | ) |
|
delete |
|
delete |
| FillBoxId amrex::FabArrayCopyDescriptor< FAB >::AddBox | ( | FabArrayId | fabarrayid, |
| const Box & | destFabBox, | ||
| BoxList * | unfilledBoxes | ||
| ) |
Describe a destination box that needs to be filled.
| fabarrayid | Handle returned by RegisterFabArray. |
| destFabBox | Region to fill. |
| unfilledBoxes | Optional list to receive regions still missing data. |
| 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 destination box but restrict fills to a specific Fab index.
| fabarrayid | Handle returned by RegisterFabArray. |
| destFabBox | Region to fill. |
| unfilledBoxes | Optional list to receive regions still missing data. |
| fabarrayindex | Source Fab index to pull data from. |
| srccomp | First component to copy from the source. |
| destcomp | First destination component to write. |
| numcomp | Number of components to copy. |
| bUseValidBox | Restrict to valid-box intersection if true. |
| FillBoxId amrex::FabArrayCopyDescriptor< FAB >::AddBox | ( | FabArrayId | fabarrayid, |
| const Box & | destFabBox, | ||
| BoxList * | unfilledBoxes, | ||
| int | srccomp, | ||
| int | destcomp, | ||
| int | numcomp | ||
| ) |
Add a destination box specifying component ranges explicitly.
| void amrex::FabArrayCopyDescriptor< FAB >::clear | ( | ) |
Reset the descriptor, unregistering all FabArrays and outstanding boxes.
| void amrex::FabArrayCopyDescriptor< FAB >::CollectData | ( | ) |
Exchange staged data for all FillBox entries.
|
inline |
Number of FabArrays currently registered with this descriptor.
|
inline |
Return true once all requested data have been staged locally.
| void amrex::FabArrayCopyDescriptor< FAB >::FillFab | ( | FabArrayId | faid, |
| const FillBoxId & | fillboxid, | ||
| FAB & | destFab | ||
| ) |
Copy staged data into the requested fill region of the destination Fab.
| void amrex::FabArrayCopyDescriptor< FAB >::FillFab | ( | FabArrayId | faid, |
| const FillBoxId & | fillboxid, | ||
| FAB & | destFab, | ||
| const Box & | destBox | ||
| ) |
Copy staged data into a user-specified sub-box of the destination Fab.
|
inline |
Number of remote-transfer FabComTag entries currently stored.
|
inline |
Number of per-FabArray FabCopyDescriptor maps held (one per registered FabArray).
|
delete |
|
delete |
| void amrex::FabArrayCopyDescriptor< FAB >::PrintStats | ( | ) | const |
| FabArrayId amrex::FabArrayCopyDescriptor< FAB >::RegisterFabArray | ( | FabArray< FAB > * | fabarray | ) |
Register a FabArray from which copies may be requested.