Class LocallyActiveDataCoarsenSchedule<DIM> performs the communication operations that coarsen locally-active data from a finer level to a coarser level.
More...
|
| | LocallyActiveDataCoarsenSchedule (const LocallyActiveDataCoarsenSchedule< DIM > &) |
| |
| void | operator= (const LocallyActiveDataCoarsenSchedule< DIM > &) |
| |
| void | generateSchedule () |
| | Main schedule generation routine which passes control to one of the algorithmic variations based on value of s_schedule_generation_method. More...
|
| |
| void | generateScheduleNSquared () |
| | This version of the schedule generation procedure uses N^2 algorithms to determine box intersections; i.e., the original SAMRAI implementation which checks every box against every other. More...
|
| |
| void | generateScheduleBoxGraph () |
| | This version of the schedule generation procedure uses a bipartite graph algorithm to determine which source patches contribute data to each destination patch. More...
|
| |
| void | generateScheduleBoxTree () |
| | This version of the schedule generation procedure uses a recursive binary box tree algorithm to determine which source patches contribute data to each destination patch and to compute unfilled_boxes. More...
|
| |
| void | generateTemporaryLevel () |
| | Generate a temporary coarse level by coarsening the fine level. Note that this function does not allocate patch data storage. More...
|
| |
| void | setupRefineAlgorithm () |
| | Set up refine algorithms to transfer coarsened data and to fill temporary coarse level before coarsening operations, if needed. More...
|
| |
| void | coarsenSourceData (xfer::LocallyActiveDataCoarsenPatchStrategy< DIM > *patch_strategy) const |
| | Coarsen source patch data from the fine patch level into the source patch data on the coarse temporary patch level. More...
|
| |
| hier::IntVector< DIM > | getMaxGhostsToGrow () const |
| | Calculate the maximum ghost cell width to grow boxes to check for overlaps. More...
|
| |
| void | constructScheduleTransactions (tbox::Pointer< hier::PatchLevel< DIM > > dst_level, tbox::Pointer< hier::LocallyActiveDataPatchLevelManager< DIM > > dst_level_mgr, int dst_patch_id, tbox::Pointer< hier::PatchLevel< DIM > > src_level, tbox::Pointer< hier::LocallyActiveDataPatchLevelManager< DIM > > src_level_mgr, int src_patch_id) |
| | Function that constructs schedule transactions that move data from source patch on source level to destination patch on destination level. More...
|
| |
| void | setCoarsenItems (const tbox::Pointer< xfer::CoarsenClasses< DIM > > coarsen_classes, bool called_from_reset) |
| | Utility function to set up local copies of patch data source, destination, etc. indices and necessary data coarsening information stored in the coarsen classes object generated by the coarsen algorithm. More...
|
| |
| void | clearCoarsenItems () |
| | Utility function to clear local copies of coarsen items. More...
|
| |
| void | resetTempCoarseLevelDataManager () |
| | Utility function to set locally-active data for temporary coarse level to current state of coarsen classes. More...
|
| |
| void | initialCheckCoarsenClassItems () const |
| | Utility function to check coarsen items to see whether source and destination patch data components have sufficient ghost cell widths to satisfy the "ghost width to coarsen" functionality described in the xfer::LocallyActiveDataCoarsenAlgorithm<DIM> class header. More...
|
| |
template<int DIM>
class SAMRAI::xfer::LocallyActiveDataCoarsenSchedule< DIM >
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.
- See also
- xfer::LocallyActiveDataCoarsenAlgorithm
-
xfer::LocallyActiveDataCoarsenPatchStrategy
-
xfer::CoarsenClasses
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().
- Parameters
-
| crse_level | Pointer to coarse (destination) patch level; cannot be null. |
| crse_level_mgr | Pointer to coarse level data manager; cannot be null. |
| fine_level | Pointer to fine (source) patch level; cannot be null. |
| fine_level_mgr | Pointer to fine level data manager; cannot be null. |
| coarsen_classes | Pointer to structure containing patch data and operator information. In general, this is constructed by the calling LocallyActiveDataCoarsenAlgorithm<DIM> object. |
| transaction_factory | Pointer to a factory object that will create data transactions. |
| patch_strategy | Pointer to a coarsen patch strategy object that provides user-defined coarsen operations. This ponter may be null, in which case no user-defined coarsen operations will be performed. |
| fill_coarse_data | Boolean indicating whether coarse data should be filled before coarsening operations are done. |
When assertion checking is active, unrecoverable assertions will result if either patch level pointer, or the refine classes pointer, is null.