2 #ifndef _PROTO_MB_FLUX_REGISTER_ 3 #define _PROTO_MB_FLUX_REGISTER_ 9 template<
typename T,
unsigned int C, MemType MEM>
11 template<
typename T,
unsigned int C, MemType MEM>
13 template<
typename T,
unsigned int C, MemType MEM>
16 template <
typename T,
unsigned int C, MemType MEM=MEMTYPE_DEFAULT>
28 template<
typename T,
unsigned int C=1, MemType MEM=MEMTYPE_DEFAULT>
54 template<
typename T,
unsigned int C=1, MemType MEM=MEMTYPE_DEFAULT>
56 :
public Copier<MBFluxRegisterCopierOp<T, C, MEM>, MBBoxPartition, MBBoxPartition, MEM, MEM>
75 template<
typename T,
unsigned int C, MemType MEM=MEMTYPE_DEFAULT>
86 const Point& a_refRatio);
94 const std::vector<Point>& a_refRatios,
104 const std::vector<Point>& a_refRatios,
107 void clearInternalData();
108 void initCoarseRegisters(T a_val = 0);
109 void initFineRegisters(T a_val = 0);
110 void initIncrement(T a_val = 0);
113 void incrementCoarseRegister(
117 const T& a_weight = 1.0);
123 const T& a_weight = 1.0);
140 const std::vector<Point> &a_refRatios,
143 void addCoarseRegisters(
PatchID a_finePatch,
MBIndex a_coarseIndex);
144 void addFineRegisters(
MBIndex a_fineIndex);
145 void initFineRegisterIndices();
146 bool adjacentInProblemDomain(
MBIndex a_fineIndex,
Point a_dir)
const;
148 void addFineRegisterFromAdjacent(
MBIndex a_fineIndex,
Point a_dir);
149 int computeTileIndex(
const Box& a_bx,
const MBIndex& a_di);
151 void defineAverageStencils();
173 std::vector<Array<Array<Stencil<T>, 2>, DIM>>
m_avgFlux;
175 #include "implem/Proto_MBLevelFluxRegisterImplem.H" 177 #endif // end include guard Definition: Proto_MBLevelFluxRegister.H:12
Definition: Proto_MBLevelFluxRegister.H:14
MBLevelFluxRegisterTester(const MBLevelFluxRegister< T, C, MEM > &a_register)
Definition: Proto_MBLevelFluxRegister.H:20
MBDisjointBoxLayout m_fineLayout
Definition: Proto_MBLevelFluxRegister.H:158
Definition: Proto_MBLevelFluxRegister.H:29
int linearSize(const T &inputT)
Definition: Proto_PointLIO.H:55
const std::vector< Register< T, C, MEM > > & getCoarseRegistersAtIndex(MBIndex a_coarseIndex) const
Definition: Proto_MBLevelFluxRegister.H:4
Multidimensional Rectangular Array.
Definition: Proto_BoxData.H:314
std::vector< Array< Array< int, 2 >, DIM > > m_fineIndices
Definition: Proto_MBLevelFluxRegister.H:172
void linearOut(void *const a_outBuf, const T &inputT)
Definition: Proto_PointLIO.H:67
MBDisjointBoxLayout m_crseLayout
Definition: Proto_MBLevelFluxRegister.H:157
MBLevelFluxRegister()
Definition: Proto_MBLevelFluxRegister.H:83
std::vector< std::vector< Register< T, C, MEM > > > m_crseRegisters
Definition: Proto_MBLevelFluxRegister.H:164
MBDisjointBoxLayout fineLayout() const
Definition: Proto_MBLevelFluxRegister.H:135
Multiblock Level Box Data.
Definition: Proto_MBLevelBoxData.H:17
std::vector< Array< Array< Stencil< T >, 2 >, DIM > > m_avgFlux
Definition: Proto_MBLevelFluxRegister.H:173
An interval in DIM dimensional space.
Definition: Proto_Box.H:29
void linearIn(void *a_buf, const MBMotionItem &a_info) const
Serial Read From Buffer.
Definition: Proto_MBLevelFluxRegister.H:42
MBFluxRegisterCopier< T, C, MEM > m_copier
Definition: Proto_MBLevelFluxRegister.H:160
const std::vector< Register< T, C, MEM > > & getFineRegistersAtIndex(MBIndex a_fineIndex) const
Definition: Proto_MBLevelFluxRegister.H:11
MBFluxRegisterCopier()
Definition: Proto_MBLevelFluxRegister.H:60
const MBLevelFluxRegister< T, C, MEM > & m_register
Definition: Proto_MBLevelFluxRegister.H:25
Definition: Proto_MBLevelFluxRegister.H:10
std::vector< std::vector< Register< T, C, MEM > > > m_fineRegisters
Definition: Proto_MBLevelFluxRegister.H:168
std::vector< unordered_map< unsigned int, unsigned int > > m_crseIndices
Definition: Proto_MBLevelFluxRegister.H:170
MBLevelFluxRegister< T, C, MEM > * m_register
Definition: Proto_MBLevelFluxRegister.H:33
std::vector< Array< T, DIM > > m_dxCrse
Definition: Proto_MBLevelFluxRegister.H:159
std::vector< std::vector< shared_ptr< BoxData< T, C, MEM > > > > m_crseIncrement
Definition: Proto_MBLevelFluxRegister.H:166
Definition: Proto_Array.H:17
Integer Valued Vector.
Definition: Proto_Point.H:24
Definition: Proto_MBDisjointBoxLayout.H:14
MBDisjointBoxLayout crseLayout() const
Access to layouts.
Definition: Proto_MBLevelFluxRegister.H:134
std::vector< Point > m_refRatios
Definition: Proto_MBLevelFluxRegister.H:161
MBFluxRegisterCopierOp()
Definition: Proto_MBLevelFluxRegister.H:36
Abstract Generic Parallel Copier.
Definition: Proto_Copier.H:60
Definition: Proto_Copier.H:22