Proto  3.2
Public Types | Public Member Functions | Private Attributes | List of all members
Proto::MBBoundaryRegister< T, C, MEM, CTR > Class Template Reference

Boundary Register. More...

#include <Proto_MBBoundaryRegister.H>

Public Types

typedef std::tuple< Point, unsigned int, PointboundsKey_t
 

Public Member Functions

 MBBoundaryRegister ()
 Trivial Constructor. More...
 
 MBBoundaryRegister (const MBDisjointBoxLayout &a_layout, int a_depth, Point a_ghost, bool a_bothSides=true)
 Constructor. More...
 
void define (const MBDisjointBoxLayout &a_layout, int a_depth, Point a_ghost, bool a_bothSides=true)
 Lazy Constructor. More...
 
MBBoundaryData< T, C, MEM > & bound (MBIndex a_index, Point a_dir, unsigned int a_adjBlock)
 
MBBoundaryData< T, C, MEM > & bound (MBIndex a_index, unsigned int a_dir, Side::LoHiSide a_side)
 
std::vector< MBBoundaryData< T, C, MEM > > bounds (MBIndex a_index, Point a_dir)
 
std::vector< MBBoundaryData< T, C, MEM > > bounds (MBIndex a_index)
 
BoxData< T, C, MEM > & local (MBIndex a_index, Point a_dir, unsigned int a_adjBlock)
 
BoxData< T, C, MEM > & local (MBIndex a_index, unsigned int a_dir, Side::LoHiSide a_side)
 
BoxData< T, C, MEM > & local (MBIndex a_localIndex, MBIndex a_adjIndex)
 
BoxData< T, C, MEM > & adjacent (MBIndex a_index, unsigned int a_dir, Side::LoHiSide a_side)
 
BoxData< T, C, MEM > & adjacent (MBIndex a_index, Point a_dir, unsigned int a_adjBlock)
 
BoxData< T, C, MEM > & adjacent (MBIndex a_localIndex, MBIndex a_adjIndex)
 
CoordPermutation toLocal (MBIndex a_index, Point a_dir, unsigned int a_adjBlock)
 
CoordPermutation toLocal (MBIndex a_index, unsigned int a_dir, Side::LoHiSide a_side)
 
void clear ()
 
void clearLocal ()
 
void clearAdjacent ()
 
void exchange ()
 
const MBDisjointBoxLayoutlayout ()
 
Point ghost ()
 

Private Attributes

Point m_ghost
 
MBDisjointBoxLayout m_layout
 
std::map< boundsKey_t, std::vector< MBBoundaryData< T, C, MEM > > > m_bounds
 
MBBoundaryCopier< T, C, MEM, CTR > m_copier
 

Detailed Description

template<typename T, unsigned int C, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
class Proto::MBBoundaryRegister< T, C, MEM, CTR >

Boundary Register.

A specialized data holder that contains data in the vicinity of block boundaries

Member Typedef Documentation

◆ boundsKey_t

template<typename T, unsigned int C, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
typedef std::tuple<Point, unsigned int, Point> Proto::MBBoundaryRegister< T, C, MEM, CTR >::boundsKey_t

Constructor & Destructor Documentation

◆ MBBoundaryRegister() [1/2]

template<typename T, unsigned int C, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
Proto::MBBoundaryRegister< T, C, MEM, CTR >::MBBoundaryRegister ( )
inline

Trivial Constructor.

◆ MBBoundaryRegister() [2/2]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
Proto::MBBoundaryRegister< T, C, MEM, CTR >::MBBoundaryRegister ( const MBDisjointBoxLayout a_layout,
int  a_depth,
Point  a_ghost,
bool  a_bothSides = true 
)
inline

Constructor.

Creates a register from a layout. Depth is the distance in cells from a boundary that will be allocated in each MBBoundaryData's base buffer. If depth is negative, the register's base region is inside the problem domain and vice versa. Each of these buffers can optionally be enlarged anisotropically using the ghost parameter. If "bothSides" is true, all registers will allocate space on both sides of the boundary. In this case, the sign of depth has no effect.

Member Function Documentation

◆ define()

template<typename T , unsigned int C, MemType MEM, Centering CTR>
void Proto::MBBoundaryRegister< T, C, MEM, CTR >::define ( const MBDisjointBoxLayout a_layout,
int  a_depth,
Point  a_ghost,
bool  a_bothSides = true 
)
inline

Lazy Constructor.

◆ bound() [1/2]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
MBBoundaryData< T, C, MEM > & Proto::MBBoundaryRegister< T, C, MEM, CTR >::bound ( MBIndex  a_index,
Point  a_dir,
unsigned int  a_adjBlock 
)
inline

◆ bound() [2/2]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
MBBoundaryData< T, C, MEM > & Proto::MBBoundaryRegister< T, C, MEM, CTR >::bound ( MBIndex  a_index,
unsigned int  a_dir,
Side::LoHiSide  a_side 
)
inline

◆ bounds() [1/2]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
std::vector< MBBoundaryData< T, C, MEM > > Proto::MBBoundaryRegister< T, C, MEM, CTR >::bounds ( MBIndex  a_index,
Point  a_dir 
)
inline

◆ bounds() [2/2]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
std::vector< MBBoundaryData< T, C, MEM > > Proto::MBBoundaryRegister< T, C, MEM, CTR >::bounds ( MBIndex  a_index)
inline

◆ local() [1/3]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
BoxData< T, C, MEM > & Proto::MBBoundaryRegister< T, C, MEM, CTR >::local ( MBIndex  a_index,
Point  a_dir,
unsigned int  a_adjBlock 
)
inline

◆ local() [2/3]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
BoxData< T, C, MEM > & Proto::MBBoundaryRegister< T, C, MEM, CTR >::local ( MBIndex  a_index,
unsigned int  a_dir,
Side::LoHiSide  a_side 
)
inline

◆ local() [3/3]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
BoxData< T, C, MEM > & Proto::MBBoundaryRegister< T, C, MEM, CTR >::local ( MBIndex  a_localIndex,
MBIndex  a_adjIndex 
)
inline

◆ adjacent() [1/3]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
BoxData< T, C, MEM > & Proto::MBBoundaryRegister< T, C, MEM, CTR >::adjacent ( MBIndex  a_index,
unsigned int  a_dir,
Side::LoHiSide  a_side 
)
inline

◆ adjacent() [2/3]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
BoxData< T, C, MEM > & Proto::MBBoundaryRegister< T, C, MEM, CTR >::adjacent ( MBIndex  a_index,
Point  a_dir,
unsigned int  a_adjBlock 
)
inline

◆ adjacent() [3/3]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
BoxData< T, C, MEM > & Proto::MBBoundaryRegister< T, C, MEM, CTR >::adjacent ( MBIndex  a_localIndex,
MBIndex  a_adjIndex 
)
inline

◆ toLocal() [1/2]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
CoordPermutation Proto::MBBoundaryRegister< T, C, MEM, CTR >::toLocal ( MBIndex  a_index,
Point  a_dir,
unsigned int  a_adjBlock 
)
inline

◆ toLocal() [2/2]

template<typename T , unsigned int C, MemType MEM, Centering CTR>
CoordPermutation Proto::MBBoundaryRegister< T, C, MEM, CTR >::toLocal ( MBIndex  a_index,
unsigned int  a_dir,
Side::LoHiSide  a_side 
)
inline

◆ clear()

template<typename T , unsigned int C, MemType MEM, Centering CTR>
void Proto::MBBoundaryRegister< T, C, MEM, CTR >::clear ( )
inline

◆ clearLocal()

template<typename T , unsigned int C, MemType MEM, Centering CTR>
void Proto::MBBoundaryRegister< T, C, MEM, CTR >::clearLocal ( )
inline

◆ clearAdjacent()

template<typename T , unsigned int C, MemType MEM, Centering CTR>
void Proto::MBBoundaryRegister< T, C, MEM, CTR >::clearAdjacent ( )
inline

◆ exchange()

template<typename T , unsigned int C, MemType MEM, Centering CTR>
void Proto::MBBoundaryRegister< T, C, MEM, CTR >::exchange ( )
inline

Local data is maintained

◆ layout()

template<typename T, unsigned int C, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
const MBDisjointBoxLayout& Proto::MBBoundaryRegister< T, C, MEM, CTR >::layout ( )
inline

◆ ghost()

template<typename T, unsigned int C, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
Point Proto::MBBoundaryRegister< T, C, MEM, CTR >::ghost ( )
inline

Member Data Documentation

◆ m_ghost

template<typename T, unsigned int C, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
Point Proto::MBBoundaryRegister< T, C, MEM, CTR >::m_ghost
private

◆ m_layout

template<typename T, unsigned int C, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
MBDisjointBoxLayout Proto::MBBoundaryRegister< T, C, MEM, CTR >::m_layout
private

◆ m_bounds

template<typename T, unsigned int C, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
std::map<boundsKey_t, std::vector<MBBoundaryData<T, C, MEM> > > Proto::MBBoundaryRegister< T, C, MEM, CTR >::m_bounds
mutableprivate

◆ m_copier

template<typename T, unsigned int C, MemType MEM = MEMTYPE_DEFAULT, Centering CTR = PR_CELL>
MBBoundaryCopier<T,C,MEM,CTR> Proto::MBBoundaryRegister< T, C, MEM, CTR >::m_copier
private

The documentation for this class was generated from the following file: