#include <source/transfer/datamovers/locally_active/LocallyActiveDataCoarsenSchedule.h>
Public Member Functions | |
LocallyActiveDataCoarsenSchedule (tbox::Pointer< hier::PatchLevel< DIM > > crse_level, tbox::Pointer< hier::LocallyActiveDataPatchLevelManager< DIM > > crse_level_mgr, tbox::Pointer< hier::PatchLevel< DIM > > fine_level, tbox::Pointer< hier::LocallyActiveDataPatchLevelManager< DIM > > fine_level_mgr, tbox::Pointer< xfer::CoarsenClasses< DIM > > coarsen_classes, tbox::Pointer< xfer::LocallyActiveDataCoarsenTransactionFactory< DIM > > transaction_factory, xfer::LocallyActiveDataCoarsenPatchStrategy< DIM > *patch_strategy, bool fill_coarse_data) | |
virtual | ~LocallyActiveDataCoarsenSchedule () |
void | coarsenData () const |
void | printClassData (ostream &stream) const |
Static Public Member Functions | |
static void | setScheduleGenerationMethod (const string &method) |
Typically, data is coarsened from the interiors of source patch components on the source patch level into interiors of destination patch components on the destination level. However, variations are possible for special situations; see the LocallyActiveDataCoarsenAlgorithm<DIM> class header for more information. Generally, the source patch data must contain sufficient ghost cells to satisfy the coarsening operators involved. If a coarsen operator has a non-zero ghost cell width, then the source ghost cells must be filled before the coarsen schedule is executed. The communication schedule is executed by calling member function coarsenData().
Each schedule object is typically created by a coarsen algorithm and represents 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 coarsen schedules, see the LocallyActiveDataCoarsenAlgorithm<DIM> header file.
NOTE: Algorithmic variations are available by calling the static method LocallyActiveCoarsenSchedule<DIM>::setScheduleGenerationMethod(), which sets the option for all instances of the class.
|
Constructor to create a coarsen schedule that coarsens data from source patch data components on the fine level into the destination patch data components on the coarse level. In general, this constructor is called by a LocallyActiveDataCoarsenAlgorithm<DIM> object. For possible variations on data coarsening, see the LocallyActiveDataCoarsenAlgorithm<DIM> class header information. If the coarsening operators require data from ghost cells, then the associated source patch data components must have a sufficient ghost cell width and and they must be filled with valid data before calling coarsenData().
|
|
The virtual destructor for the schedule releases all internal storage. |
|
Static function to set box intersection algorithm to use during schedule construction for all xfer::LocallyActiveDataCoarsenSchedule<DIM> objects. If this method is not called, the default will be used.
|
|
Execute the stored communication schedule and perform the data movement. |
|
Print the coarsen schedule state to the specified data stream.
|