2 #ifndef _PROTO_LEVELBOXDATA_H_ 3 #define _PROTO_LEVELBOXDATA_H_ 5 #include "Proto_MemType.H" 6 #include "Proto_Point.H" 8 #include "Proto_Copier.H" 9 #include "Proto_DisjointBoxLayout.H" 10 #include "Proto_LevelIterators.H" 11 #include "Proto_WriteBoxData.H" 12 #include "Proto_MayDay.H" 13 #include "Proto_SPMD.H" 17 #define LBD LevelBoxData<T, C, MEM, CTR> 25 template<
typename T,
unsigned int C, MemType MEM,
unsigned int CTR>
37 <
typename T,
unsigned int C=1, MemType MEM = MemType::HOST ,
unsigned int CTR=0 >
65 const Box& a_range,
const DataIndex& a_rangeIndex)
const;
74 template<
typename T,
unsigned int C=1, MemType MEM=MemType::HOST,
unsigned int CTR=0>
90 template<
typename T,
unsigned int C=1, MemType MEM=MemType::HOST,
unsigned int CTR=0>
109 <
typename T,
unsigned int C=1, MemType MEM=MemType::HOST,
unsigned int CTR=DIM >
136 inline unsigned int size()
const;
143 inline void setToZero();
157 template<
typename Func,
typename... Srcs>
158 inline void initialize(Func& a_func, Srcs... a_srcs);
166 inline void exchange();
181 inline unsigned int offset(
int a_proc)
const;
182 inline unsigned int offset()
const {
return offset(
Proto::procID()); }
189 inline unsigned int patchSize()
const;
200 inline void linearIn(
void* a_buffer,
249 inline void linearIn(
void* a_buffer);
254 inline void linearOut(
void* a_buffer)
const;
287 std::vector<shared_ptr<BoxData<T,C> > > m_data;
299 #include "implem/Proto_LevelBoxDataImplem.H" Definition: Proto_LevelIterators.H:19
int linearSize(const Box &a_bx, const DataIndex &a_index) const
Get Serialized Size.
Definition: Proto_LevelBoxData.H:257
Multidimensional Rectangular Array.
Definition: Proto_BoxData.H:458
Disjoint Box Layout.
Definition: Proto_DisjointBoxLayout.H:37
void localCopy(const Box &a_domain, const DataIndex &a_domainIndex, const Box &a_range, const DataIndex &a_rangeIndex) const
Local Copy.
Definition: Proto_LevelBoxData.H:288
Level Box Data.
Definition: Proto_LevelBoxData.H:26
Level Copier Operator.
Definition: Proto_LevelBoxData.H:38
An interval in DIM dimensional space.
Definition: Proto_Box.H:26
DisjointBoxLayout layout() const
Get Box Layout.
Definition: Proto_LevelBoxData.H:262
int procID()
local process ID
Definition: Proto_SPMD.H:52
Level Copier.
Definition: Proto_LevelBoxData.H:75
Definition: Proto_Box.H:11
void linearIn(void *a_buf, const Box &a_bx, const DataIndex &a_index) const
Serial Read From Buffer.
Definition: Proto_LevelBoxData.H:277
Integer Valued Vector.
Definition: Proto_Point.H:21
Point ghost() const
Get Ghost Size.
Definition: Proto_LevelBoxData.H:267
void linearOut(void *a_buf, const Box &a_bx, const DataIndex &a_index) const
Serial Write To Buffer.
Definition: Proto_LevelBoxData.H:266
Definition: Proto_DataIndex.H:17
DisjointBoxLayout getDBL() const
Get Box Layout (Overload)
Definition: Proto_LevelBoxData.H:264
Point getGhostVector() const
Get Ghost Size (Overload)
Definition: Proto_LevelBoxData.H:269
Abstract Generic Parallel Copier.
Definition: Proto_Copier.H:52
Exchange Copier.
Definition: Proto_LevelBoxData.H:91