Class OuteredgeSumTransaction<DIM> represents a single outeredge data sum communication transaction between two processors or a local data sum for refine schedules. Note that to there is an implicit hand-shaking between objects of this class and the xfer::RefineSchedule<DIM> object that constructs them. Following the refine schedule implementation, the source patch data index for a transaction always refers to the source data and the destination patch data index for a transaction is always the scratch data, all as defined in the xfer::RefineClasses<DIM> class.
More...
#include <OuteredgeSumTransaction.h>
template<int DIM>
class SAMRAI::algs::OuteredgeSumTransaction< DIM >
- See also
- xfer::RefineSchedule
-
xfer::RefineClasses
-
tbox::Schedule
-
tbox::Transaction
◆ OuteredgeSumTransaction() [1/2]
Construct a transaction with the specified source and destination levels, patches, and patch data components found in the refine class item with the given id owned by the calling refine schedule. In general, this constructor is called by a xfer::RefineSchedule<DIM> object for each data transaction (specifically summing outeredge data) that must occur. This transaction will be responsible for one of the following: (1) a local data copy and sum, or (2) packing a message stream with source patch data, or (3) unpacking and summing destination patch data from a message stream.
- Parameters
-
| dst_level | tbox::Pointer to destination patch level. |
| src_level | tbox::Pointer to source patch level. |
| overlap | tbox::Pointer to overlap region between patches. |
| dst_patch | Integer index of destination patch in destination patch level. |
| src_patch | Integer index of source patch in source patch level. |
| refine_item_id | Integer id of refine data item owned by refine schedule. |
When assertion checking is active, an assertion will result if any of the pointer arguments is null, or if any of the integer arguments is invalid (i.e., < 0).
◆ ~OuteredgeSumTransaction()
The virtual destructor for the copy transaction releases all memory associated with the transaction.
◆ OuteredgeSumTransaction() [2/2]
◆ setRefineItems()
Static member function to set the array of refine class data items that is shared by all object instances of this sum transaction class during data transfers. The array must be set before any transactions are executed. The array is set in the RefineSchedule<DIM> class.
◆ unsetRefineItems()
Static member function to unset the array of refine class data items that is shared by all object instances of this sum transaction class during data transfers. The unset function is used to prevent erroneous execution of different schedules. The array is unset in the RefineSchedule<DIM> class.
◆ canEstimateIncomingMessageSize()
Return a boolean indicating whether this transaction can estimate the size of an incoming message. If this is false, then a different communication protocol kicks in and the message size is transmitted between edges.
Implements SAMRAI::tbox::Transaction.
◆ computeIncomingMessageSize()
◆ computeOutgoingMessageSize()
◆ getSourceProcessor()
◆ getDestinationProcessor()
◆ packStream()
◆ unpackStream()
◆ copyLocalData()
◆ printClassData()
◆ operator=()
◆ s_refine_items
◆ s_num_refine_items
◆ d_dst_level
◆ d_src_level
◆ d_overlap
◆ d_dst_patch
◆ d_src_patch
◆ d_refine_item_id
◆ d_incoming_bytes
◆ d_outgoing_bytes
The documentation for this class was generated from the following file: