#include <source/transfer/datamovers/standard/RefineSchedule.h>
Public Member Functions | |
RefineSchedule (tbox::Pointer< hier::PatchLevel< DIM > > dst_level, tbox::Pointer< hier::PatchLevel< DIM > > src_level, const tbox::Pointer< xfer::RefineClasses< DIM > > refine_classes, tbox::Pointer< xfer::RefineTransactionFactory< DIM > > transaction_factory, xfer::RefinePatchStrategy< DIM > *patch_strategy, bool use_time_interpolation=false) | |
Constructor to create a refine schedule that moves data from the interiors of source patch data components on the source level into the interiors and ghost cells of destination patch data components on the destination level. | |
RefineSchedule (tbox::Pointer< hier::PatchLevel< DIM > > dst_level, tbox::Pointer< hier::PatchLevel< DIM > > src_level, int next_coarser_level, tbox::Pointer< hier::PatchHierarchy< DIM > > hierarchy, const tbox::Pointer< xfer::RefineClasses< DIM > > refine_classes, tbox::Pointer< xfer::RefineTransactionFactory< DIM > > transaction_factory, xfer::RefinePatchStrategy< DIM > *patch_strategy, bool use_time_interpolation=false) | |
Constructor to create a refine schedule that moves data from the interiors of source patch data components on the source level and coarser levels in the patch hierarchy into the interiors and ghost cells of destination patch data components on the destination level. | |
virtual | ~RefineSchedule () |
void | reset (const tbox::Pointer< xfer::RefineClasses< DIM > > refine_classes) |
Reset this refine schedule to perform data transfers asssociated with refine class items in function argument. | |
void | fillData (double fill_time, bool do_physical_boundary_fill=true) const |
Execute the stored communication schedule and perform the data movement. | |
void | initializeSourceVector (hier::ComponentSelector &allocate_vector) const |
Initialize a component selector to store the components needed to allocate source data. | |
void | allocateDestinationSpace (double fill_time, hier::ComponentSelector &allocate_vector) const |
Allocate destination space on the destination level and return the allocated patch data indices in the component selector for later deallocation. | |
void | allocateScratchSpace (tbox::Pointer< hier::PatchLevel< DIM > > level, double fill_time, hier::ComponentSelector &allocate_vector) const |
Allocate scratch space on the specified level and return the allocated patch data indices in the component selector for later deallocation. | |
void | initializeDestinationVector (hier::ComponentSelector &allocate_vector) const |
const tbox::Pointer< RefineClasses< DIM > > & | getEquivalenceClasses () const |
Return const reference to the pointer to refine equivalence classes used in schedule. | |
const hier::IntVector< DIM > & | getBoundaryFillGhostWidth () const |
void | printClassData (ostream &stream) const |
Static Public Member Functions | |
static void | setScheduleGenerationMethod (const string &method) |
Source data is copied into the provided scratch space for temporary processing. The scratch space must contain sufficient ghost cells to accommodate the stencil width of the given interpolation operators and any physical boundary data that must be filled. The scratch data is copied into the destination space at the end of the process. The communication schedule is executed by calling member function fillData().
Each schedule object is typically created by a refine algorithm and represents the communication dependencies for a particular configuration of the AMR hierarchy. The communication schedule is only valid for that particular configuration and must be regenerated when the AMR patch hierarchy changes. However, as long as the patch levels involved in the creation of the schedule remain unchanged, the schedule may be used for multiple communication cycles. For more information about creating refine schedules, see the RefineAlgorithm<DIM> header file.
NOTE: Algorithmic variations are available by calling the static method RefineSchedule<DIM>::setScheduleGenerationMethod(), which sets the option for all instances of the class.
|
Constructor to create a refine schedule that moves data from the interiors of source patch data components on the source level into the interiors and ghost cells of destination patch data components on the destination level. Only data on the intersection of the source and destination patch components will be copied. The source and destination patch levels must reside in the same index space. However, the levels do not have to be in the same AMR patch hierarchy. Generally, this constructor is called by a RefineAlgorithm<DIM> object.
|
|
Constructor to create a refine schedule that moves data from the interiors of source patch data components on the source level and coarser levels in the patch hierarchy into the interiors and ghost cells of destination patch data components on the destination level. Only data on the intersection of the source and destination patch components will be copied. If portions of the destination level remain unfilled, then the algorithm recursively fills those unfilled portions from coarser levels in the AMR hierarchy. The source and destination patch levels must reside in the same index space. However, the levels do not have to be in the same AMR patch hierarchy. In general, this constructor is called by a RefineAlgorithm<DIM> object.
|
|
Virtual destructor for the schedule releases all internal storage. |
|
Static function to set box intersection algorithm to use during schedule construction for all RefineSchedule objects. If this method is not called, the default will be used.
|
|
Reset this refine schedule to perform data transfers asssociated with refine class items in function argument. In general, this function is called by a RefineAlgorithm<DIM> object.
|
|
Execute the stored communication schedule and perform the data movement.
|
|
Initialize a component selector to store the components needed to allocate source data.
|
|
Allocate destination space on the destination level and return the allocated patch data indices in the component selector for later deallocation.
|
|
Allocate scratch space on the specified level and return the allocated patch data indices in the component selector for later deallocation.
|
|
Initialize a component selector to store the components needed to allocate source data.
|
|
Return const reference to the pointer to refine equivalence classes used in schedule.
|
|
Return width of ghost cell region to fill which is passed to user supplied physical boundary condition routine. |
|
Print the refine schedule data to the specified data stream.
|