Proto  3.2
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Proto::MBInterpLayout Class Reference

#include <Proto_MBInterpLayout.H>

Public Member Functions

 MBInterpLayout ()
 
 MBInterpLayout (const MBDisjointBoxLayout &layout, int order=4)
 
void addPointToBaseFootprint (Point a_point)
 
void ignoreAxis (int dir)
 Modifies the base footprint so that the designated axis is ignored. More...
 
bool isIgnoredAxis (int dir) const
 
void setCopy (int a_dir, bool a_flag)
 Allows stencils produced with this layout to be copied along the designated axis (optimization) More...
 
bool isCopied (int a_dir) const
 
std::set< PointbaseFootprint () const
 Returns the set of shifts that would be used in the bulk of a regular grid. More...
 
template<typename MAP , MemType MEM>
std::set< Pointfootprint (Point point, MBIndex index, const MBLevelMap< MAP, MEM > &map) const
 Returns the modified base footprint, adding extra points for dealing with boundaries. More...
 
template<typename MAP , MemType MEM>
std::vector< MBDataPointcomputeSourcePoints (const MBLevelMap< MAP, MEM > &map, Point center, MBIndex index, int minSources) const
 Converts a set of shifts (footprint) into a set of MBDataPoint used to access data for interpolation. More...
 
Point footprintMask () const
 Return contains 1 for axes participating in interpolation and 0 for axes not participating. More...
 
Box footprintSpan () const
 Returns the span of the base footprint (for 4th order this should be Box::Kernel(2) if no axes are ignored) More...
 
const MBDisjointBoxLayoutlayout () const
 

Private Member Functions

Point applyIgnoredAxes (Point basePoint, Point sourcePoint) const
 
template<typename MAP , MemType MEM>
void addRedundantBoundarySources (MBIndex localIndex, std::set< MBDataPoint > &sourcePoints, const MBLevelMap< MAP, MEM > &map) const
 
void addTriplePointFootprint (std::set< Point > &footprint, Point center, Point triplePointBoundary, MBIndex index) const
 
void addBoundaryFootprint (std::set< Point > &footprint, Point center, MBIndex index) const
 
void removeDomainBoundaryPoints (std::set< Point > &footprint, Point center, MBIndex index) const
 
void removeTriplePointPoints (std::set< Point > &footprint, Point center, MBIndex index) const
 
void addInwardPoints (std::set< Point > &footprint, MBIndex index) const
 
void augmentFootprint (Point shift, std::set< Point > &augmentedFootprint, const std::set< Point > &footprint) const
 
template<typename MAP , MemType MEM>
bool addSourceFromShiftedPoint (Point shiftedPoint, std::set< MBDataPoint > &sources, const MBLevelMap< MAP, MEM > &map, MBIndex index) const
 
template<typename MAP , MemType MEM>
bool addSourcePoint (std::set< MBDataPoint > &sourcePoints, Point localPoint, MBIndex localIndex, Point sourcePoint, MBIndex sourceIndex, const MBLevelMap< MAP, MEM > &map) const
 
template<typename MAP , MemType MEM>
void addSourcePointsNear (Point centerPoint, MBIndex centerIndex, MBIndex localIndex, std::set< MBDataPoint > &sourcePoints, const MBLevelMap< MAP, MEM > &map) const
 
void removeSourcePointsNear (Point trueCenterPoint, int numSourcesToKeep, std::set< MBDataPoint > &sourcePoints) const
 

Private Attributes

MBDisjointBoxLayout m_layout
 
std::set< Pointm_baseFootprint
 
Array< bool, DIM > m_copyAxes
 

Constructor & Destructor Documentation

◆ MBInterpLayout() [1/2]

Proto::MBInterpLayout::MBInterpLayout ( )
inline

References layout().

◆ MBInterpLayout() [2/2]

Proto::MBInterpLayout::MBInterpLayout ( const MBDisjointBoxLayout layout,
int  order = 4 
)
inline

Member Function Documentation

◆ addPointToBaseFootprint()

void Proto::MBInterpLayout::addPointToBaseFootprint ( Point  a_point)
inline

References dir, ignoreAxis(), and m_baseFootprint.

◆ ignoreAxis()

void Proto::MBInterpLayout::ignoreAxis ( int  dir)
inline

Modifies the base footprint so that the designated axis is ignored.

Parameters
dirThe axis to be ignored

Referenced by addPointToBaseFootprint().

◆ isIgnoredAxis()

bool Proto::MBInterpLayout::isIgnoredAxis ( int  dir) const
inline

◆ setCopy()

void Proto::MBInterpLayout::setCopy ( int  a_dir,
bool  a_flag 
)
inline

Allows stencils produced with this layout to be copied along the designated axis (optimization)

Parameters
a_dir
a_flag

References m_copyAxes.

◆ isCopied()

bool Proto::MBInterpLayout::isCopied ( int  a_dir) const
inline

References m_copyAxes.

◆ baseFootprint()

std::set<Point> Proto::MBInterpLayout::baseFootprint ( ) const
inline

Returns the set of shifts that would be used in the bulk of a regular grid.

Returns

References m_baseFootprint.

◆ footprint()

template<typename MAP , MemType MEM>
std::set<Point> Proto::MBInterpLayout::footprint ( Point  point,
MBIndex  index,
const MBLevelMap< MAP, MEM > &  map 
) const
inline

Returns the modified base footprint, adding extra points for dealing with boundaries.

Parameters
pointThe "center" of the stencil. This is the point being interpolated to
indexThe index of the patch which contains point (in its ghost region)
Returns

Referenced by layout().

◆ computeSourcePoints()

template<typename MAP , MemType MEM>
std::vector< MBDataPoint > Proto::MBInterpLayout::computeSourcePoints ( const MBLevelMap< MAP, MEM > &  map,
Point  center,
MBIndex  index,
int  minSources 
) const
inline

Converts a set of shifts (footprint) into a set of MBDataPoint used to access data for interpolation.

Parameters
footprintThe set of shifts returned from this->footprint above
mapUsed to convert local index space points into points in adjacent blocks as needed
centerThe point being interpolated to
indexThe index of the patch containing center
minSourcesThe minimum number of sources needed for operator to be fully determined
Returns

◆ footprintMask()

Point Proto::MBInterpLayout::footprintMask ( ) const
inline

Return contains 1 for axes participating in interpolation and 0 for axes not participating.

Returns

◆ footprintSpan()

Box Proto::MBInterpLayout::footprintSpan ( ) const
inline

Returns the span of the base footprint (for 4th order this should be Box::Kernel(2) if no axes are ignored)

Returns

Referenced by isIgnoredAxis().

◆ layout()

const MBDisjointBoxLayout& Proto::MBInterpLayout::layout ( ) const
inline

◆ applyIgnoredAxes()

Point Proto::MBInterpLayout::applyIgnoredAxes ( Point  basePoint,
Point  sourcePoint 
) const
inlineprivate

Referenced by layout().

◆ addRedundantBoundarySources()

template<typename MAP , MemType MEM>
void Proto::MBInterpLayout::addRedundantBoundarySources ( MBIndex  localIndex,
std::set< MBDataPoint > &  sourcePoints,
const MBLevelMap< MAP, MEM > &  map 
) const
inlineprivate

Referenced by layout().

◆ addTriplePointFootprint()

void Proto::MBInterpLayout::addTriplePointFootprint ( std::set< Point > &  footprint,
Point  center,
Point  triplePointBoundary,
MBIndex  index 
) const
inlineprivate

Referenced by layout().

◆ addBoundaryFootprint()

void Proto::MBInterpLayout::addBoundaryFootprint ( std::set< Point > &  footprint,
Point  center,
MBIndex  index 
) const
inlineprivate

Referenced by layout().

◆ removeDomainBoundaryPoints()

void Proto::MBInterpLayout::removeDomainBoundaryPoints ( std::set< Point > &  footprint,
Point  center,
MBIndex  index 
) const
inlineprivate

Referenced by layout().

◆ removeTriplePointPoints()

void Proto::MBInterpLayout::removeTriplePointPoints ( std::set< Point > &  footprint,
Point  center,
MBIndex  index 
) const
inlineprivate

Referenced by layout().

◆ addInwardPoints()

void Proto::MBInterpLayout::addInwardPoints ( std::set< Point > &  footprint,
MBIndex  index 
) const
inlineprivate

Referenced by layout().

◆ augmentFootprint()

void Proto::MBInterpLayout::augmentFootprint ( Point  shift,
std::set< Point > &  augmentedFootprint,
const std::set< Point > &  footprint 
) const
inlineprivate

Referenced by layout().

◆ addSourceFromShiftedPoint()

template<typename MAP , MemType MEM>
bool Proto::MBInterpLayout::addSourceFromShiftedPoint ( Point  shiftedPoint,
std::set< MBDataPoint > &  sources,
const MBLevelMap< MAP, MEM > &  map,
MBIndex  index 
) const
inlineprivate

◆ addSourcePoint()

template<typename MAP , MemType MEM>
bool Proto::MBInterpLayout::addSourcePoint ( std::set< MBDataPoint > &  sourcePoints,
Point  localPoint,
MBIndex  localIndex,
Point  sourcePoint,
MBIndex  sourceIndex,
const MBLevelMap< MAP, MEM > &  map 
) const
inlineprivate

◆ addSourcePointsNear()

template<typename MAP , MemType MEM>
void Proto::MBInterpLayout::addSourcePointsNear ( Point  centerPoint,
MBIndex  centerIndex,
MBIndex  localIndex,
std::set< MBDataPoint > &  sourcePoints,
const MBLevelMap< MAP, MEM > &  map 
) const
inlineprivate

◆ removeSourcePointsNear()

void Proto::MBInterpLayout::removeSourcePointsNear ( Point  trueCenterPoint,
int  numSourcesToKeep,
std::set< MBDataPoint > &  sourcePoints 
) const
inlineprivate

Member Data Documentation

◆ m_layout

MBDisjointBoxLayout Proto::MBInterpLayout::m_layout
private

Referenced by layout().

◆ m_baseFootprint

std::set<Point> Proto::MBInterpLayout::m_baseFootprint
private

◆ m_copyAxes

Array<bool, DIM> Proto::MBInterpLayout::m_copyAxes
private

Referenced by isCopied(), and setCopy().


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