2 #ifndef _PROTO_MB_INTERP_LAYOUT_ 3 #define _PROTO_MB_INTERP_LAYOUT_ 39 template<
typename MAP, MemType MEM>
52 template<
typename MAP, MemType MEM>
69 template<
typename MAP, MemType MEM>
72 std::set<MBDataPoint>& sourcePoints,
77 Point triplePointBoundary,
81 std::set<Point>& footprint,
86 std::set<Point>& footprint,
91 std::set<Point>& footprint,
97 std::set<Point>& footprint,
102 std::set<Point>& augmentedFootprint,
103 const std::set<Point>& footprint)
const;
105 template<
typename MAP, MemType MEM>
108 std::set<MBDataPoint>& sources,
112 template<
typename MAP, MemType MEM>
114 std::set<MBDataPoint>& sourcePoints,
121 template<
typename MAP, MemType MEM>
126 std::set<MBDataPoint>& sourcePoints,
130 Point trueCenterPoint,
131 int numSourcesToKeep,
132 std::set<MBDataPoint>& sourcePoints)
const;
138 #include "implem/Proto_MBInterpLayoutImplem.H" 141 #endif // end include guard ACCEL_DECORATION std::size_t size(unsigned int a_dim) const
Edge Size.
bool addSourcePoint(std::set< MBDataPoint > &sourcePoints, Point localPoint, MBIndex localIndex, Point sourcePoint, MBIndex sourceIndex, const MBLevelMap< MAP, MEM > &map) const
Definition: Proto_MBInterpLayout.H:189
void addBoundaryFootprint(std::set< Point > &footprint, Point center, MBIndex index) const
MBDisjointBoxLayout m_layout
Definition: Proto_MBInterpLayout.H:134
Definition: Proto_MBInterpLayout.H:11
Box footprintSpan() const
Returns the span of the base footprint (for 4th order this should be Box::Kernel(2) if no axes are ig...
Definition: Proto_MBInterpLayout.H:306
bool isIgnoredAxis(int dir) const
Definition: Proto_MBInterpLayout.H:22
std::vector< MBDataPoint > computeSourcePoints(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...
Definition: Proto_MBInterpLayout.H:47
Single Level Mapped Multiblock Map.
Definition: Proto_MBLevelBoxData.H:19
void ignoreAxis(int dir)
Modifies the base footprint so that the designated axis is ignored.
Definition: Proto_MBInterpLayout.H:35
void removeSourcePointsNear(Point trueCenterPoint, int numSourcesToKeep, std::set< MBDataPoint > &sourcePoints) const
Definition: Proto_MBInterpLayout.H:227
std::set< Point > footprint(Point point, MBIndex index, const MBLevelMap< MAP, MEM > &map) const
Returns the modified base footprint, adding extra points for dealing with boundaries.
An interval in DIM dimensional space.
Definition: Proto_Box.H:29
Point footprintMask() const
Return contains 1 for axes participating in interpolation and 0 for axes not participating.
Definition: Proto_MBInterpLayout.H:295
bool addSourceFromShiftedPoint(Point shiftedPoint, std::set< MBDataPoint > &sources, const MBLevelMap< MAP, MEM > &map, MBIndex index) const
std::set< Point > baseFootprint() const
Returns the set of shifts that would be used in the bulk of a regular grid.
Definition: Proto_MBInterpLayout.H:33
void addSourcePointsNear(Point centerPoint, MBIndex centerIndex, MBIndex localIndex, std::set< MBDataPoint > &sourcePoints, const MBLevelMap< MAP, MEM > &map) const
Definition: Proto_MBInterpLayout.H:103
void addInwardPoints(std::set< Point > &footprint, MBIndex index) const
const MBDisjointBoxLayout & layout() const
Definition: Proto_MBInterpLayout.H:64
Array< bool, DIM > m_copyAxes
Definition: Proto_MBInterpLayout.H:136
void addPointToBaseFootprint(Point a_point)
Definition: Proto_MBInterpLayout.H:16
void setCopy(int a_dir, bool a_flag)
Allows stencils produced with this layout to be copied along the designated axis (optimization) ...
Definition: Proto_MBInterpLayout.H:27
Definition: Proto_Array.H:17
uint64_t index
Definition: Proto_MBBoxPartition.H:15
void removeDomainBoundaryPoints(std::set< Point > &footprint, Point center, MBIndex index) const
Integer Valued Vector.
Definition: Proto_Point.H:24
Definition: Proto_MBDisjointBoxLayout.H:14
void addTriplePointFootprint(std::set< Point > &footprint, Point center, Point triplePointBoundary, MBIndex index) const
bool isCopied(int a_dir) const
Definition: Proto_MBInterpLayout.H:29
std::set< Point > m_baseFootprint
Definition: Proto_MBInterpLayout.H:135
MBInterpLayout()
Definition: Proto_MBInterpLayout.H:14
Point applyIgnoredAxes(Point basePoint, Point sourcePoint) const
Definition: Proto_MBInterpLayout.H:316
Point dir
Definition: Proto_MBBoxPartition.H:16
void removeTriplePointPoints(std::set< Point > &footprint, Point center, MBIndex index) const
void augmentFootprint(Point shift, std::set< Point > &augmentedFootprint, const std::set< Point > &footprint) const
void addRedundantBoundarySources(MBIndex localIndex, std::set< MBDataPoint > &sourcePoints, const MBLevelMap< MAP, MEM > &map) const
Definition: Proto_MBInterpLayout.H:256