2 #ifndef _PROTO_MB_BOX_LAYOUT_ 3 #define _PROTO_MB_BOX_LAYOUT_ 27 std::vector<Point> a_boxSizes);
31 std::vector<MBPoint> a_patches,
32 std::vector<Point> a_boxSizes);
35 std::shared_ptr<MBBoxPartition> a_partition,
36 std::vector<Point> a_boxSizes);
40 std::vector<Point> a_boxSizes);
44 std::vector<MBPoint> a_patches,
45 std::vector<Point> a_boxSizes);
48 std::shared_ptr<MBBoxPartition> a_partition,
49 std::vector<Point> a_boxSizes);
53 inline unsigned int procID(
const MBIndex& a_index)
const;
55 inline unsigned int numBoxes()
const;
56 inline unsigned int numBoxes(
unsigned int a_proc)
const;
57 inline unsigned int numProcs()
const;
58 inline std::vector<MBPoint>
patches()
const;
61 inline MBIterator
begin()
const;
62 inline MBIterator
end()
const;
63 inline Point point(
const MBIndex& a_index)
const;
64 inline Box box(
const MBIndex& a_index)
const;
68 inline unsigned int block(
const MBIndex& a_index)
const;
76 inline size_t offset(
unsigned int a_proc)
const;
78 inline bool compatible(
const MBIndex& a_index)
const;
84 const MBIndex& i2)
const;
89 const MBIndex& patch_1,
90 const MBIndex& patch_2)
const;
136 inline unsigned int size()
const;
138 inline std::vector<Point>
boxSizes()
const;
145 inline void print()
const;
154 inline std::ostream& operator<< (std::ostream& os, const DataIndex<MBBoxPartition>& a_index);
155 #include "implem/Proto_MBDisjointBoxLayoutImplem.H" 157 #endif //end include guard Array< double, DIM > dx(BlockIndex a_block) const
Definition: Proto_MBDisjointBoxLayout.H:177
DisjointBoxLayout & getBlock(BlockIndex a_block)
Definition: Proto_MBDisjointBoxLayout.H:203
void define(MBProblemDomain &a_domain, std::vector< Point > a_boxSizes)
Definition: Proto_MBDisjointBoxLayout.H:32
std::shared_ptr< MBBoxPartition > m_partition
Definition: Proto_MBDisjointBoxLayout.H:151
void validateSelf(std::string methodName) const
Definition: Proto_MBDisjointBoxLayout.H:526
bool isBlockBoundary(const MBPoint &patch_1, const MBPoint &patch_2) const
Definition: Proto_MBDisjointBoxLayout.H:264
bool isPatchInBlockBoundary(const MBPoint &patch) const
Definition: Proto_MBDisjointBoxLayout.H:332
Distributed Data Iterator.
Definition: Proto_DataIndex.H:10
bool isPatchOnRefinementBoundary(const MBPoint &patch) const
Definition: Proto_MBDisjointBoxLayout.H:402
bool isPatchOnDomainBoundary(const MBPoint &patch) const
Definition: Proto_MBDisjointBoxLayout.H:362
Definition: Proto_MBBoxPartition.H:92
Box box() const
Get Box.
Definition: Proto_ProblemDomain.H:132
std::vector< MBPoint > patches() const
Definition: Proto_MBDisjointBoxLayout.H:123
unsigned int numBoxes() const
Definition: Proto_MBDisjointBoxLayout.H:105
bool isPatchInTriplePointRegion(const MBPoint &patch) const
Definition: Proto_MBDisjointBoxLayout.H:421
Definition: Proto_MBProblemDomain.H:10
int BlockIndex
Defines what type is used for indexing block entities.
Definition: Proto_MBGraph.H:9
MBIndex find(Point a_point, BlockIndex a_block) const
Definition: Proto_MBDisjointBoxLayout.H:222
Disjoint Box Layout.
Definition: Proto_DisjointBoxLayout.H:30
unsigned int localSize() const
Definition: Proto_MBDisjointBoxLayout.H:475
MBDisjointBoxLayout coarsen(const Point &a_refRatio) const
Definition: Proto_MBDisjointBoxLayout.H:500
bool compatible(const MBDisjointBoxLayout &a_rhs) const
Definition: Proto_MBDisjointBoxLayout.H:235
Box box(const MBIndex &a_index) const
Definition: Proto_MBDisjointBoxLayout.H:169
const MBProblemDomain & domain() const
Definition: Proto_MBDisjointBoxLayout.H:87
bool m_defined
Definition: Proto_MBDisjointBoxLayout.H:148
Point connectivity(const MBPoint &patch_1, const MBPoint &patch_2) const
Definition: Proto_MBDisjointBoxLayout.H:247
An interval in DIM dimensional space.
Definition: Proto_Box.H:29
const MBProblemDomain & domain() const
Definition: Proto_MBBoxPartition.H:108
std::shared_ptr< MBBoxPartition > partitionPtr() const
Definition: Proto_MBDisjointBoxLayout.H:75
Mapped Multi-Block Problem Domain.
Definition: Proto_MBProblemDomain.H:76
size_t offset(unsigned int a_proc) const
Definition: Proto_MBDisjointBoxLayout.H:229
DataIndex< MBBoxPartition > MBIndex
Definition: Proto_MBDisjointBoxLayout.H:17
std::vector< DisjointBoxLayout > m_layouts
Definition: Proto_MBDisjointBoxLayout.H:150
bool isPatchInDomainBoundary(const MBPoint &patch) const
Definition: Proto_MBDisjointBoxLayout.H:381
ProblemDomain domain() const
Get Problem Domain.
Definition: Proto_DisjointBoxLayout.H:302
void validateBlock(const BlockIndex &block, std::string methodName) const
Definition: Proto_MBDisjointBoxLayout.H:540
DataIndex< BoxPartition > blockIndex(const MBIndex &a_index) const
Definition: Proto_MBDisjointBoxLayout.H:135
Box operator[](const MBIndex &a_index) const
Definition: Proto_MBDisjointBoxLayout.H:143
DataIndex< MBBoxPartition > MBIndex
Definition: Proto_MBDisjointBoxLayout.H:11
unsigned int numProcs() const
Definition: Proto_MBDisjointBoxLayout.H:117
unsigned int numBlocks() const
Definition: Proto_MBDisjointBoxLayout.H:99
MBIterator begin() const
Definition: Proto_MBDisjointBoxLayout.H:149
unsigned int procID(const MBIndex &a_index) const
Definition: Proto_MBDisjointBoxLayout.H:93
Point boxSize(BlockIndex a_block) const
Definition: Proto_MBDisjointBoxLayout.H:492
bool isInteriorBoundary(const MBPoint &patch, Point dir) const
Definition: Proto_MBDisjointBoxLayout.H:413
MBDisjointBoxLayout()
Definition: Proto_MBDisjointBoxLayout.H:19
Definition: Proto_Array.H:17
uint64_t index
Definition: Proto_MBBoxPartition.H:15
bool isRefinementBoundary(const MBPoint &patch, Point dir) const
Definition: Proto_MBDisjointBoxLayout.H:395
const MBBoxPartition & partition() const
Definition: Proto_MBDisjointBoxLayout.H:73
MBProblemDomain m_domain
Definition: Proto_MBDisjointBoxLayout.H:149
unsigned int block(const MBIndex &a_index) const
Definition: Proto_MBDisjointBoxLayout.H:191
bool isPatchOnBlockBoundary(const MBPoint &patch) const
Definition: Proto_MBDisjointBoxLayout.H:313
Integer Valued Vector.
Definition: Proto_Point.H:24
Definition: Proto_MBDisjointBoxLayout.H:14
Box blockDomainBox(BlockIndex a_block) const
Definition: Proto_MBDisjointBoxLayout.H:67
void print() const
Definition: Proto_MBDisjointBoxLayout.H:549
MBPoint patch(const MBIndex &a_index) const
Definition: Proto_MBDisjointBoxLayout.H:197
void validateIndex(const MBIndex &index, std::string methodName) const
Definition: Proto_MBDisjointBoxLayout.H:533
MBIterator end() const
Definition: Proto_MBDisjointBoxLayout.H:156
bool defined() const
Definition: Proto_MBDisjointBoxLayout.H:146
bool isDomainBoundary(const MBPoint &patch, Point dir) const
Definition: Proto_MBDisjointBoxLayout.H:347
Point dir
Definition: Proto_MBBoxPartition.H:16
std::vector< Point > boxSizes() const
Definition: Proto_MBDisjointBoxLayout.H:481
unsigned int size() const
Definition: Proto_MBDisjointBoxLayout.H:469
std::vector< MBIndex > adjacentIndices(const MBPoint &patch) const
Definition: Proto_MBDisjointBoxLayout.H:434
const MBProblemDomain & domainPtr() const
const MBProblemDomain & patchDomain() const
Definition: Proto_MBDisjointBoxLayout.H:74
DataIterator< MBBoxPartition > MBIterator
Definition: Proto_MBDisjointBoxLayout.H:12
Point point(const MBIndex &a_index) const
Definition: Proto_MBDisjointBoxLayout.H:163