Chombo + EB  3.2
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)
 
 BaseEBFaceFAB (const Interval &a_comps, BaseEBFaceFAB< T > &a_original)
 aliasing copy-ish constructor. Used when the 'alias' function is invoked on LevelData More...
 

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/5]

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

◆ BaseEBFaceFAB() [2/5]

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/5]

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

Invalid but necessary for LevelData<T> to compile.

◆ BaseEBFaceFAB() [4/5]

template<class T>
BaseEBFaceFAB< T >::BaseEBFaceFAB ( const Interval a_comps,
BaseEBFaceFAB< T > &  a_original 
)

aliasing copy-ish constructor. Used when the 'alias' function is invoked on LevelData

Constructs an 'aliased' BaseEBCellFab of the requested interval of the argument BaseEBCellFab. This BaseEBCellFab does not allocate any memory, but sets its data pointer into the memory pointed to by the argument BaseEBCellFab. It is the users responsiblity to ensure this aliased BaseEBCellFab is not used after the original BaseEBCellFab has deleted its data ptr (resize, define(..) called, or destruction, etc.).

This aliased BaseEBCellFab will also generate side effects (modifying the values of data in one will modify the other's data).

This aliased BaseFab will have a_comps.size() components, starting at zero.

◆ BaseEBFaceFAB() [5/5]

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 >::BaseEBFaceFAB(), and 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 >::copy(), and 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

◆ m_nComp

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

◆ m_iDir

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

◆ m_regionFace

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

◆ m_region

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

◆ m_isDefined

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

◆ m_ebisBox

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

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