Class NodeCellSynchCopyFillPattern is a concrete implementation of the abstract base class SAMRAI::xfer::VariableFillPattern. It is used to calculate overlaps according to a pattern which limits overlaps to the node-centered ghost region surrounding a patch appropriate for "synchronizing" node-centered values in an axis-by-axis manner at patch boundaries.
More...
#include <ibtk/NodeSynchCopyFillPattern.h>
|
| | NodeSynchCopyFillPattern (unsigned int axis) |
| | Constructor. More...
|
| |
| | ~NodeSynchCopyFillPattern ()=default |
| | Destructor. More...
|
| |
| SAMRAI::tbox::Pointer< SAMRAI::hier::BoxOverlap< NDIM > > | calculateOverlap (const SAMRAI::hier::BoxGeometry< NDIM > &dst_geometry, const SAMRAI::hier::BoxGeometry< NDIM > &src_geometry, const SAMRAI::hier::Box< NDIM > &dst_patch_box, const SAMRAI::hier::Box< NDIM > &src_mask, bool overwrite_interior, const SAMRAI::hier::IntVector< NDIM > &src_offset) const override |
| |
| SAMRAI::hier::IntVector< NDIM > & | getStencilWidth () override |
| |
| const std::string & | getPatternName () const override |
| |
| virtual tbox::Pointer< hier::BoxOverlap< DIM > > | calculateOverlap (const hier::BoxGeometry< DIM > &dst_geometry, const hier::BoxGeometry< DIM > &src_geometry, const hier::Box< DIM > &dst_patch_box, const hier::Box< DIM > &src_mask, const bool overwrite_interior, const hier::IntVector< DIM > &src_offset) const=0 |
| |
| virtual tbox::Pointer< hier::BoxOverlap< DIM > > | calculateOverlapOnLevel (const hier::BoxGeometry< DIM > &dst_geometry, const hier::BoxGeometry< DIM > &src_geometry, const hier::Box< DIM > &dst_patch_box, const hier::Box< DIM > &src_mask, const bool overwrite_interior, const hier::IntVector< DIM > &src_offset, const int dst_level_num, const int src_level_num) const |
| |
| virtual void | setTargetPatchLevelNumber (const int level_num) |
| |
| virtual const std::string & | getPatternName () const=0 |
| |
- Note
- We synchronize data one axis at a time because node-centered values can be shared by more than two patches. For instance, to synchronize nodal values in three spatial dimensions, we first synchronize values in the x direction, then in the y direction, and finally in the z direction.
◆ NodeSynchCopyFillPattern() [1/3]
| IBTK::NodeSynchCopyFillPattern::NodeSynchCopyFillPattern |
( |
unsigned int |
axis | ) |
|
◆ ~NodeSynchCopyFillPattern()
| IBTK::NodeSynchCopyFillPattern::~NodeSynchCopyFillPattern |
( |
| ) |
|
|
default |
◆ NodeSynchCopyFillPattern() [2/3]
| IBTK::NodeSynchCopyFillPattern::NodeSynchCopyFillPattern |
( |
| ) |
|
|
privatedelete |
- Note
- This constructor is not implemented and should not be used.
◆ NodeSynchCopyFillPattern() [3/3]
- Note
- This constructor is not implemented and should not be used.
- Parameters
-
| from | The value to copy to this object. |
◆ calculateOverlap() [1/2]
Calculate overlaps between the destination and source geometries according to the desired pattern. This will return the portion of the intersection of the geometries that lies in the ghost region of the specified width surrounding the patch, excluding all edges and corners. The patch is identified by the argument dst_patch_box.
- Parameters
-
| dst_geometry | geometry object for destination box |
| src_geometry | geometry object for source box |
| dst_patch_box | box for the destination patch |
| src_mask | the source mask, the box resulting from shifting the source box |
| overwrite_interior | controls whether or not to include the destination box interior in the overlap |
| src_offset | the offset between source and destination index space (src + src_offset = dst) |
- Returns
- pointer to the calculated overlap object
◆ getStencilWidth()
◆ getPatternName() [1/2]
| const std::string& IBTK::NodeSynchCopyFillPattern::getPatternName |
( |
| ) |
const |
|
override |
Returns a string name identifier "NODE_SYNCH_COPY_FILL_PATTERN".
◆ operator=()
- Note
- This operator is not implemented and should not be used.
- Parameters
-
| that | The value to assign to this object. |
- Returns
- A reference to this object.
◆ calculateOverlap() [2/2]
This pure virtual method provides an interface to calculate overlaps between the destination and source geometries.
- Parameters
-
| dst_geometry | geometry object for destination box |
| src_geometry | geometry object for source box |
| dst_patch_box | box for the destination patch |
| src_mask | the source mask, the box resulting from shifting the source box |
| overwrite_interior | controls whether or not to include the destination box interior in the overlap |
| src_offset | the offset between source and destination index space. src + src_offset = dst |
- Returns
- Pointer to the calculated overlap object
◆ calculateOverlapOnLevel()
This virtual method provides an interface to calculate overlaps between the destination and source geometries on a specified level of the patch hierarchy.
- Note
- A default implementation is provided that simply calls the pure virtual method calculateOverlap() for implementations that are level independent.
- Parameters
-
| dst_geometry | geometry object for destination box |
| src_geometry | geometry object for source box |
| dst_patch_box | box for the destination patch |
| src_mask | the source mask, the box resulting from shifting the source box |
| overwrite_interior | controls whether or not to include the destination box interior in the overlap |
| src_offset | the offset between source and destination index space. src + src_offset = dst |
| dst_level_num | the level of the patch hierarchy on which the dst boxes are located |
| src_level_num | the level of the patch hierarchy on which the src boxes are located |
- Returns
- Pointer to the calculated overlap object
◆ setTargetPatchLevelNumber()
◆ getPatternName() [2/2]
Return a string name identifying the concrete subclass.
◆ d_stencil_width
◆ d_axis
| const unsigned int IBTK::NodeSynchCopyFillPattern::d_axis |
|
private |
The documentation for this class was generated from the following file: