Chombo + EB  3.0
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | List of all members
BaseEBFaceFAB< T > Class Template Reference

Array defined at the Faces of an Box in an EBISBox. More...

#include <BaseEBFaceFAB.H>

Inheritance diagram for BaseEBFaceFAB< T >:
Inheritance graph
[legend]

Public Member Functions

int numDataTypes () const
 for AggStencil More...
 
int dataType (const BaseIndex &a_baseInd) const
 for AggStencil More...
 
long offset (const BaseIndex &a_baseInd, const int a_ivar) const
 for AggStencil More...
 
T * dataPtr (int a_dataType, int a_ivar)
 for AggStencil More...
 
const T * dataPtr (int a_dataType, int a_ivar) const
 
 BaseEBFaceFAB ()
 
 BaseEBFaceFAB (const EBISBox &a_ebisBox, const Box &a_region, int a_iDir, int a_nVar)
 
virtual void define (const EBISBox &a_ebisBox, const Box &a_region, int a_iDir, int a_nVar)
 
virtual ~BaseEBFaceFAB ()
 
void clear ()
 
void setVal (const T &value)
 
void setVal (int ivar, const T &value)
 
bool isDefined () const
 
int nComp () const
 
const MiniIFFAB< T > & getMultiValuedFAB () const
 
MiniIFFAB< T > & getMultiValuedFAB ()
 
const BaseFab< T > & getSingleValuedFAB () const
 
BaseFab< T > & getSingleValuedFAB ()
 
int direction () const
 
const BoxgetRegion () const
 
const BoxgetCellRegion () const
 
T & operator() (const FaceIndex &a_facein, int a_nVarLoc)
 
const T & operator() (const FaceIndex &a_facein, int a_nVarLoc) const
 
void copy (const Box &RegionFrom, const Interval &destInt, const Box &RegionTo, const BaseEBFaceFAB< T > &source, const Interval &srcInt)
 
BaseEBFaceFAB< T > & copy (const BaseEBFaceFAB< T > &source)
 
int size (const Box &R, const Interval &comps) const
 
void linearOut (void *buf, const Box &R, const Interval &comps) const
 
void linearIn (void *buf, const Box &R, const Interval &comps)
 
 BaseEBFaceFAB (const Box &a_region, int a_nVar)
 Invalid but necessary for LevelData<T> to compile. More...
 
const EBISBoxgetEBISBox () const
 
void setCoveredFaceVal (const T &a_val, const int &a_comp, const bool &a_doMulti=true)
 

Static Public Member Functions

static bool preAllocatable ()
 

Protected Attributes

MiniIFFAB< T > m_irrFAB
 data at faces which abut multi-valued cells More...
 
BaseFab< T > m_regFAB
 data at faces between two single-valued cells More...
 
int m_nComp
 number of data values at each face in BaseEBFaceFAB More...
 
int m_iDir
 
Box m_regionFace
 the face-centered region over which the BaseEBFaceFAB lives More...
 
Box m_region
 the cell-centered region over which the BaseEBFaceFAB lives More...
 
bool m_isDefined
 has the full define function been called for the BaseEBFaceFAB? More...
 
EBISBox m_ebisBox
 

Private Member Functions

void setDefaultValues ()
 
void operator= (const BaseEBFaceFAB< T > &ebcin)
 
 BaseEBFaceFAB (const BaseEBFaceFAB< T > &ebcin)
 

Detailed Description

template<class T>
class BaseEBFaceFAB< T >

Array defined at the Faces of an Box in an EBISBox.

An BaseEBFaceFAB is a templated holder for face-centered data over a region which consists of the intersection of a face-centered box and an EBISBox. At every uncovered VoF in this intersection, the BaseEBFaceFAB contains a specified number of data values. At singly valued faces, the data is stored internally in a BaseFab. At multiply-valued faces, the data is stored internally in an INFab. A multiply-valued face is defined to be a face which abuts at least one multiply-valued Face. BaseEBFaceFAB provides indexing by Face. This class does not provide a copy constructor or assignment operator for all the usual reasons.

Constructor & Destructor Documentation

◆ BaseEBFaceFAB() [1/4]

template<class T >
BaseEBFaceFAB< T >::BaseEBFaceFAB ( )
inline

◆ BaseEBFaceFAB() [2/4]

template<class T >
BaseEBFaceFAB< T >::BaseEBFaceFAB ( const EBISBox a_ebisBox,
const Box a_region,
int  a_iDir,
int  a_nVar 
)
inline

Box going into this needs to be cell-centered. Data will exist over the surrounding nodes of the box.

◆ ~BaseEBFaceFAB()

template<class T >
BaseEBFaceFAB< T >::~BaseEBFaceFAB ( )
inlinevirtual

◆ BaseEBFaceFAB() [3/4]

template<class T>
BaseEBFaceFAB< T >::BaseEBFaceFAB ( const Box a_region,
int  a_nVar 
)
inline

Invalid but necessary for LevelData<T> to compile.

◆ BaseEBFaceFAB() [4/4]

template<class T>
BaseEBFaceFAB< T >::BaseEBFaceFAB ( const BaseEBFaceFAB< T > &  ebcin)
inlineprivate

Member Function Documentation

◆ numDataTypes()

template<class T>
int BaseEBFaceFAB< T >::numDataTypes ( ) const
inline

◆ dataType()

template<class T>
int BaseEBFaceFAB< T >::dataType ( const BaseIndex a_baseInd) const
inline

◆ offset()

template<class T>
long BaseEBFaceFAB< T >::offset ( const BaseIndex a_baseInd,
const int  a_ivar 
) const
inline

◆ dataPtr() [1/2]

template<class T>
T* BaseEBFaceFAB< T >::dataPtr ( int  a_dataType,
int  a_ivar 
)
inline

◆ dataPtr() [2/2]

template<class T>
const T* BaseEBFaceFAB< T >::dataPtr ( int  a_dataType,
int  a_ivar 
) const
inline

◆ define()

template<class T >
void BaseEBFaceFAB< T >::define ( const EBISBox a_ebisBox,
const Box a_region,
int  a_iDir,
int  a_nVar 
)
inlinevirtual

Box going into this needs to be cell-centered. Data will exist over the surrounding nodes of the box.

Reimplemented in EBFaceFAB.

Referenced by BaseEBFaceFAB< Real >::dataPtr().

◆ clear()

template<class T >
void BaseEBFaceFAB< T >::clear ( )
inline

◆ setVal() [1/2]

template<class T>
void BaseEBFaceFAB< T >::setVal ( const T &  value)
inline

◆ setVal() [2/2]

template<class T>
void BaseEBFaceFAB< T >::setVal ( int  ivar,
const T &  value 
)
inline

◆ isDefined()

template<class T >
bool BaseEBFaceFAB< T >::isDefined ( ) const
inline

◆ nComp()

template<class T >
int BaseEBFaceFAB< T >::nComp ( ) const
inline

◆ getMultiValuedFAB() [1/2]

template<class T >
const MiniIFFAB< T > & BaseEBFaceFAB< T >::getMultiValuedFAB ( ) const
inline

◆ getMultiValuedFAB() [2/2]

template<class T >
MiniIFFAB< T > & BaseEBFaceFAB< T >::getMultiValuedFAB ( )
inline

◆ getSingleValuedFAB() [1/2]

template<class T >
const BaseFab< T > & BaseEBFaceFAB< T >::getSingleValuedFAB ( ) const
inline

◆ getSingleValuedFAB() [2/2]

template<class T >
BaseFab< T > & BaseEBFaceFAB< T >::getSingleValuedFAB ( )
inline

◆ direction()

template<class T >
int BaseEBFaceFAB< T >::direction ( ) const
inline

◆ getRegion()

template<class T >
const Box & BaseEBFaceFAB< T >::getRegion ( ) const
inline

Returns the FACE-CENTERED region of the fab

Referenced by BaseEBFaceFAB< Real >::dataPtr().

◆ getCellRegion()

template<class T >
const Box & BaseEBFaceFAB< T >::getCellRegion ( ) const
inline

Returns the CELL-CENTERED region of the fab

Referenced by BaseEBFaceFAB< Real >::dataPtr().

◆ operator()() [1/2]

template<class T >
T & BaseEBFaceFAB< T >::operator() ( const FaceIndex a_facein,
int  a_nVarLoc 
)
inline

◆ operator()() [2/2]

template<class T >
const T & BaseEBFaceFAB< T >::operator() ( const FaceIndex a_facein,
int  a_nVarLoc 
) const
inline

◆ preAllocatable()

template<class T>
static bool BaseEBFaceFAB< T >::preAllocatable ( )
inlinestatic

◆ copy() [1/2]

template<class T>
void BaseEBFaceFAB< T >::copy ( const Box RegionFrom,
const Interval destInt,
const Box RegionTo,
const BaseEBFaceFAB< T > &  source,
const Interval srcInt 
)
inline

Box going into this should be CELL CENTERED. copy done over surrounding nodes.

Referenced by BaseEBFaceFAB< Real >::preAllocatable().

◆ copy() [2/2]

template<class T>
BaseEBFaceFAB< T > & BaseEBFaceFAB< T >::copy ( const BaseEBFaceFAB< T > &  source)

◆ size()

template<class T >
int BaseEBFaceFAB< T >::size ( const Box R,
const Interval comps 
) const

◆ linearOut()

template<class T >
void BaseEBFaceFAB< T >::linearOut ( void *  buf,
const Box R,
const Interval comps 
) const

◆ linearIn()

template<class T >
void BaseEBFaceFAB< T >::linearIn ( void *  buf,
const Box R,
const Interval comps 
)

◆ getEBISBox()

template<class T >
const EBISBox & BaseEBFaceFAB< T >::getEBISBox ( ) const
inline

◆ setCoveredFaceVal()

template<class T>
void BaseEBFaceFAB< T >::setCoveredFaceVal ( const T &  a_val,
const int &  a_comp,
const bool &  a_doMulti = true 
)

◆ setDefaultValues()

template<class T >
void BaseEBFaceFAB< T >::setDefaultValues ( )
inlineprivate

◆ operator=()

template<class T>
void BaseEBFaceFAB< T >::operator= ( const BaseEBFaceFAB< T > &  ebcin)
inlineprivate

Member Data Documentation

◆ m_irrFAB

template<class T>
MiniIFFAB<T> BaseEBFaceFAB< T >::m_irrFAB
protected

◆ m_regFAB

template<class T>
BaseFab<T> BaseEBFaceFAB< T >::m_regFAB
protected

data at faces between two single-valued cells

Referenced by BaseEBFaceFAB< Real >::copy(), BaseEBFaceFAB< Real >::dataPtr(), and BaseEBFaceFAB< Real >::offset().

◆ m_nComp

template<class T>
int BaseEBFaceFAB< T >::m_nComp
protected

number of data values at each face in BaseEBFaceFAB

Referenced by BaseEBFaceFAB< Real >::copy().

◆ m_iDir

template<class T>
int BaseEBFaceFAB< T >::m_iDir
protected

◆ m_regionFace

template<class T>
Box BaseEBFaceFAB< T >::m_regionFace
protected

the face-centered region over which the BaseEBFaceFAB lives

Referenced by BaseEBFaceFAB< Real >::copy().

◆ m_region

template<class T>
Box BaseEBFaceFAB< T >::m_region
protected

the cell-centered region over which the BaseEBFaceFAB lives

Referenced by BaseEBFaceFAB< Real >::copy().

◆ m_isDefined

template<class T>
bool BaseEBFaceFAB< T >::m_isDefined
protected

has the full define function been called for the BaseEBFaceFAB?

◆ m_ebisBox

template<class T>
EBISBox BaseEBFaceFAB< T >::m_ebisBox
protected

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