2 #ifndef _PROTO_AMR_GRID_ 3 #define _PROTO_AMR_GRID_ 40 template<
typename T,
unsigned int C=1, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
46 unsigned int a_comp = 0);
52 template<
typename T,
unsigned int C=1,
59 unsigned int a_comp = 0);
65 inline static void buffer(LevelTagData& a_tags,
Point a_bufferSize);
71 inline static void buffer(LevelTagData& a_tags,
int a_bufferSize);
86 const std::vector<DisjointBoxLayout>& a_layouts,
87 const std::vector<Point>& a_refRatios,
100 const std::vector<Point>& a_refRatios,
113 const std::vector<DisjointBoxLayout>& a_layouts,
114 const std::vector<Point>& a_refRatios,
128 const std::vector<Point>& a_refRatios,
148 inline void regrid(LevelTagData& a_tags,
unsigned int a_level,
Point a_boxSize);
149 inline void regrid(LevelTagData& a_tags,
unsigned int a_level);
157 inline void enforceNesting(
unsigned int a_level,
int a_nestingDistance = 1);
160 inline void enforceNesting2(
unsigned int a_level,
int a_nestingDistance = 1);
184 inline void addFinerTags(LevelTagData& a_tags,
unsigned int a_level);
186 inline void print()
const;
197 #include "implem/Proto_AMRGridImplem.H" 199 #endif //end include guard LevelBoxData< short, 1, MEMTYPE_DEFAULT, PR_CELL > LevelTagData
Definition: Proto_AMRGrid.H:16
static void computeTags(LevelTagData &a_tags, LevelBoxData< T, C, MEM, CTR > &a_data, Point a_bufferSize, T a_threshold, unsigned int a_comp=0)
Compute Tags.
Definition: Proto_AMRGrid.H:12
AMRGrid()
Trivial Constructor.
Definition: Proto_AMRGrid.H:74
BoxData< short, 1, MemType::HOST > TagDataHost
Definition: Proto_AMRGrid.H:19
Multidimensional Rectangular Array.
Definition: Proto_BoxData.H:314
bool compatible(const AMRGrid &a_grid) const
Query Compatibility.
Definition: Proto_AMRGrid.H:261
Disjoint Box Layout.
Definition: Proto_DisjointBoxLayout.H:30
void enforceNesting2(unsigned int a_level, int a_nestingDistance=1)
Trim a_level grids so that they properly nest in a_level-1 grids.
Definition: Proto_AMRGrid.H:377
void enforceNesting(unsigned int a_level, int a_nestingDistance=1)
Enforce Nesting.
Definition: Proto_AMRGrid.H:272
int m_maxLevels
Definition: Proto_AMRGrid.H:194
MemType
Definition: Proto_MemType.H:7
int numLevels() const
Query Number of Levels.
Definition: Proto_AMRGrid.H:163
Level Box Data.
Definition: Proto_HDF5.H:17
int maxLevels() const
Query Max Number of Levels.
Definition: Proto_AMRGrid.H:166
std::vector< DisjointBoxLayout > m_layouts
Definition: Proto_AMRGrid.H:191
AMR Grid.
Definition: Proto_AMRGrid.H:26
void addFinerGrids(LevelTagData &a_tags, int a_level)
Augments set of a_level tags by set intersecting a_level+2 grids.
Definition: Proto_AMRGrid.H:332
void addFinerTags(LevelTagData &a_tags, unsigned int a_level)
Definition: Proto_AMRGrid.H:404
void print() const
Definition: Proto_AMRGrid.H:451
LevelBoxData< short, 1, MemType::HOST, PR_CELL > LevelTagDataHost
Definition: Proto_AMRGrid.H:17
BoxData< short, 1, MEMTYPE_DEFAULT > TagData
Definition: Proto_AMRGrid.H:18
void regrid(LevelTagData &a_tags, unsigned int a_level, Point a_boxSize)
Regrid.
Definition: Proto_AMRGrid.H:205
Definition: Proto_Array.H:17
void define(const std::vector< DisjointBoxLayout > &a_layouts, const std::vector< Point > &a_refRatios, int a_maxLevels)
Multi-Level Define.
Definition: Proto_AMRGrid.H:123
const DisjointBoxLayout & operator[](unsigned int a_level) const
Layout Access (Const)
Definition: Proto_AMRGrid.H:173
std::vector< Point > m_refRatios
Definition: Proto_AMRGrid.H:192
static void buffer(LevelTagData &a_tags, Point a_bufferSize)
Buffer Tags.
Definition: Proto_AMRGrid.H:80
Integer Valued Vector.
Definition: Proto_Point.H:24
bool m_defined
Definition: Proto_AMRGrid.H:190
Definition: Proto_Centering.H:9
#define MEMTYPE_DEFAULT
Definition: Proto_MemType.H:24
Centering
Definition: Proto_Centering.H:7
Point refRatio(int a_level) const
Query Refinement Ratio.
Definition: Proto_AMRGrid.H:252