IBAMR  IBAMR version 0.19.
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
SAMRAI::xfer::RefineTimeTransaction< DIM > Class Template Reference

Class RefineTimeTransaction<DIM> represents a single time interpolation communication transaction between two processors or a local data copy or refine schedules. Note that to there is an implicit hand-shaking between objects of this class and the RefineSchedule<DIM> object that constructs them. Following the refine schedule implementation, the source patch data indices for a time transaction are always refer to the old and new source data and the destination patch data index for a time transaction is always the scratch data, all as defined in the RefineClasses<DIM> class. This transaction is used by the refine schedule. More...

#include <RefineTimeTransaction.h>

Inheritance diagram for SAMRAI::xfer::RefineTimeTransaction< DIM >:
Inheritance graph
[legend]

Public Member Functions

 RefineTimeTransaction (tbox::Pointer< hier::PatchLevel< DIM > > dst_level, tbox::Pointer< hier::PatchLevel< DIM > > src_level, tbox::Pointer< hier::BoxOverlap< DIM > > overlap, int dst_patch, int src_patch, const hier::Box< DIM > &box, int refine_item_id)
 
virtual ~RefineTimeTransaction ()
 
virtual bool canEstimateIncomingMessageSize ()
 
virtual int computeIncomingMessageSize ()
 
virtual int computeOutgoingMessageSize ()
 
virtual int getSourceProcessor ()
 
virtual int getDestinationProcessor ()
 
virtual void packStream (tbox::AbstractStream &stream)
 
virtual void unpackStream (tbox::AbstractStream &stream)
 
virtual void copyLocalData ()
 
virtual void printClassData (std::ostream &stream) const
 

Static Public Member Functions

static void setRefineItems (const typename RefineClasses< DIM >::Data **refine_items, int num_refine_items)
 
static void unsetRefineItems ()
 
static void setTransactionTime (const double time)
 

Private Member Functions

 RefineTimeTransaction (const RefineTimeTransaction< DIM > &)
 
void operator= (const RefineTimeTransaction< DIM > &)
 
void timeInterpolate (const tbox::Pointer< hier::PatchData< DIM > > &pd_dst, const tbox::Pointer< hier::PatchData< DIM > > &pd_old, const tbox::Pointer< hier::PatchData< DIM > > &pd_new)
 

Private Attributes

tbox::Pointer< hier::PatchLevel< DIM > > d_dst_level
 
tbox::Pointer< hier::PatchLevel< DIM > > d_src_level
 
tbox::Pointer< hier::BoxOverlap< DIM > > d_overlap
 
int d_dst_patch
 
int d_src_patch
 
hier::Box< DIM > d_box
 
int d_refine_item_id
 
int d_incoming_bytes
 
int d_outgoing_bytes
 

Static Private Attributes

static double s_time
 
static const RefineClasses< DIM >::Data ** s_refine_items
 
static int s_num_refine_items
 

Detailed Description

template<int DIM>
class SAMRAI::xfer::RefineTimeTransaction< DIM >

See also
xfer::RefineSchedule
xfer::RefineClasses
tbox::Schedule
tbox::Transaction

Constructor & Destructor Documentation

◆ RefineTimeTransaction() [1/2]

template<int DIM>
SAMRAI::xfer::RefineTimeTransaction< DIM >::RefineTimeTransaction ( tbox::Pointer< hier::PatchLevel< DIM > >  dst_level,
tbox::Pointer< hier::PatchLevel< DIM > >  src_level,
tbox::Pointer< hier::BoxOverlap< DIM > >  overlap,
int  dst_patch,
int  src_patch,
const hier::Box< DIM > &  box,
int  refine_item_id 
)

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 RefineSchedule<DIM> object for each data transaction (involving time interpolation) that must occur. This transaction will be responsible for one of the following: (1) performing a local copy, (2) packing a message stream from the source, or (3) unpacking a message stream from the destination. The transaction will perform time interpolation between the source old and new times using the time interpolation operator found in the refine class item.

Parameters
dst_leveltbox::Pointer to destination patch level.
src_leveltbox::Pointer to source patch level.
overlaptbox::Pointer to overlap region between patches.
dst_patchInteger index of destination patch in destination patch level.
src_patchInteger index of source patch in source patch level.
boxhier::Box region in which to time interpolate.
refine_item_idInteger 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 are invalid (i.e., < 0);

◆ ~RefineTimeTransaction()

template<int DIM>
virtual SAMRAI::xfer::RefineTimeTransaction< DIM >::~RefineTimeTransaction ( )
virtual

The virtual destructor for time transaction releases all memory associated with the transaction.

◆ RefineTimeTransaction() [2/2]

template<int DIM>
SAMRAI::xfer::RefineTimeTransaction< DIM >::RefineTimeTransaction ( const RefineTimeTransaction< DIM > &  )
private

Member Function Documentation

◆ setRefineItems()

template<int DIM>
static void SAMRAI::xfer::RefineTimeTransaction< DIM >::setRefineItems ( const typename RefineClasses< DIM >::Data **  refine_items,
int  num_refine_items 
)
static

Static member function to set the array of refine class data items that is shared by all object instances of this time 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()

template<int DIM>
static void SAMRAI::xfer::RefineTimeTransaction< DIM >::unsetRefineItems ( )
static

Static member function to unset the array of refine class data items that is shared by all object instances of this time 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.

◆ setTransactionTime()

template<int DIM>
static void SAMRAI::xfer::RefineTimeTransaction< DIM >::setTransactionTime ( const double  time)
static

Static member function to set the transaction time that will be shared by all object instances of this time transaction class during time interpolation. This transaction time must be set before any transactions are executed.

◆ canEstimateIncomingMessageSize()

template<int DIM>
virtual bool SAMRAI::xfer::RefineTimeTransaction< DIM >::canEstimateIncomingMessageSize ( )
virtual

Return a boolean indicating whether this transaction can estimate the size of an incoming message. If this is false, then a different communications protocol kicks in and the message size is transmitted between nodes.

Implements SAMRAI::tbox::Transaction.

◆ computeIncomingMessageSize()

template<int DIM>
virtual int SAMRAI::xfer::RefineTimeTransaction< DIM >::computeIncomingMessageSize ( )
virtual

Return the integer amount of buffer space (in bytes) needed for the incoming message. This routine is only called if the transaction can estimate the size of the incoming message.

Implements SAMRAI::tbox::Transaction.

◆ computeOutgoingMessageSize()

template<int DIM>
virtual int SAMRAI::xfer::RefineTimeTransaction< DIM >::computeOutgoingMessageSize ( )
virtual

Return the integer buffer space needed (in bytes) for the outgoing message.

Implements SAMRAI::tbox::Transaction.

◆ getSourceProcessor()

template<int DIM>
virtual int SAMRAI::xfer::RefineTimeTransaction< DIM >::getSourceProcessor ( )
virtual

Return the sending processor number for the communications transaction.

Implements SAMRAI::tbox::Transaction.

◆ getDestinationProcessor()

template<int DIM>
virtual int SAMRAI::xfer::RefineTimeTransaction< DIM >::getDestinationProcessor ( )
virtual

Return the receiving processor number for the communications transaction.

Implements SAMRAI::tbox::Transaction.

◆ packStream()

template<int DIM>
virtual void SAMRAI::xfer::RefineTimeTransaction< DIM >::packStream ( tbox::AbstractStream stream)
virtual

Pack the transaction data into the message stream.

Implements SAMRAI::tbox::Transaction.

◆ unpackStream()

template<int DIM>
virtual void SAMRAI::xfer::RefineTimeTransaction< DIM >::unpackStream ( tbox::AbstractStream stream)
virtual

Unpack the transaction data from the message stream.

Implements SAMRAI::tbox::Transaction.

◆ copyLocalData()

template<int DIM>
virtual void SAMRAI::xfer::RefineTimeTransaction< DIM >::copyLocalData ( )
virtual

Perform the local data copy for the transaction.

Implements SAMRAI::tbox::Transaction.

◆ printClassData()

template<int DIM>
virtual void SAMRAI::xfer::RefineTimeTransaction< DIM >::printClassData ( std::ostream &  stream) const
virtual

Print out transaction information.

Implements SAMRAI::tbox::Transaction.

◆ operator=()

template<int DIM>
void SAMRAI::xfer::RefineTimeTransaction< DIM >::operator= ( const RefineTimeTransaction< DIM > &  )
private

◆ timeInterpolate()

template<int DIM>
void SAMRAI::xfer::RefineTimeTransaction< DIM >::timeInterpolate ( const tbox::Pointer< hier::PatchData< DIM > > &  pd_dst,
const tbox::Pointer< hier::PatchData< DIM > > &  pd_old,
const tbox::Pointer< hier::PatchData< DIM > > &  pd_new 
)
private

Member Data Documentation

◆ s_time

template<int DIM>
double SAMRAI::xfer::RefineTimeTransaction< DIM >::s_time
staticprivate

◆ s_refine_items

template<int DIM>
const RefineClasses<DIM>::Data** SAMRAI::xfer::RefineTimeTransaction< DIM >::s_refine_items
staticprivate

◆ s_num_refine_items

template<int DIM>
int SAMRAI::xfer::RefineTimeTransaction< DIM >::s_num_refine_items
staticprivate

◆ d_dst_level

template<int DIM>
tbox::Pointer< hier::PatchLevel<DIM> > SAMRAI::xfer::RefineTimeTransaction< DIM >::d_dst_level
private

◆ d_src_level

template<int DIM>
tbox::Pointer< hier::PatchLevel<DIM> > SAMRAI::xfer::RefineTimeTransaction< DIM >::d_src_level
private

◆ d_overlap

template<int DIM>
tbox::Pointer< hier::BoxOverlap<DIM> > SAMRAI::xfer::RefineTimeTransaction< DIM >::d_overlap
private

◆ d_dst_patch

template<int DIM>
int SAMRAI::xfer::RefineTimeTransaction< DIM >::d_dst_patch
private

◆ d_src_patch

template<int DIM>
int SAMRAI::xfer::RefineTimeTransaction< DIM >::d_src_patch
private

◆ d_box

template<int DIM>
hier::Box<DIM> SAMRAI::xfer::RefineTimeTransaction< DIM >::d_box
private

◆ d_refine_item_id

template<int DIM>
int SAMRAI::xfer::RefineTimeTransaction< DIM >::d_refine_item_id
private

◆ d_incoming_bytes

template<int DIM>
int SAMRAI::xfer::RefineTimeTransaction< DIM >::d_incoming_bytes
private

◆ d_outgoing_bytes

template<int DIM>
int SAMRAI::xfer::RefineTimeTransaction< DIM >::d_outgoing_bytes
private

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