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

#include <BaseIFFAB.H>

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

Public Member Functions

 BaseIFFAB ()
 
 BaseIFFAB (const IntVectSet &a_region, const EBGraph &a_ebgraph, const int &a_direction, const int &a_nvarin)
 
 ~BaseIFFAB ()
 
void define (const IntVectSet &a_region, const EBGraph &a_ebgraph, const int &a_direction, const int &a_nvarin)
 
void setVal (const T &value)
 
void setVal (int ivar, const T &value)
 
void copy (const Box &a_intBox, const Interval &a_destInterval, const Box &a_toBox, const BaseIFFAB< T > &a_src, const Interval &a_srcInterval)
 
void clear ()
 
 BaseIFFAB (const Box &a_region, int a_nVar)
 invalid but necessary for leveldata to compile More...
 
bool isDefined () const
 
int numFaces () const
 
int nComp () const
 
int direction () const
 
const IntVectSetgetIVS () const
 
T & operator() (const FaceIndex &a_face, const int &varlocin)
 
const T & operator() (const FaceIndex &a_face, const int &varlocin) const
 
T * dataPtr (const int &a_comp)
 
T * getIndex (const FaceIndex &a_face, const int &a_comp) const
 
long offset (const FaceIndex &a_vof, const int &a_ivar) const
 for AggStencil More...
 
const T * dataPtr (const int &a_comp) const
 
const EBGraphgetEBGraph () const
 
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)
 

Static Public Member Functions

static int preAllocatable ()
 
static void setVerbose (bool a_verbose)
 
static void setSurroundingNodeSemantic (bool a_useSurr)
 

Static Public Attributes

static bool s_verbose = false
 

Protected Member Functions

bool useThisFace (const Box &a_toBox, const FaceIndex &a_face) const
 
void getBoxAndIVS (Box &a_intBox, IntVectSet &a_ivsIntersect, const Box &a_toBox) const
 
int getLocalVecIndex (const FaceIndex &a_face) const
 

Protected Attributes

Vector< T > m_data
 
int m_truesize
 
int m_nComp
 
int m_nFaces
 
int m_direction
 
BaseFab< T * > m_fab
 
IntVectSet m_ivs
 
EBGraph m_ebgraph
 
bool m_isDefined
 

Static Protected Attributes

static Arenas_Arena = NULL
 
static bool s_doSurroundingNodeSemantic = false
 

Private Member Functions

void setDefaultValues ()
 
void operator= (const BaseIFFAB< T > &)
 
 BaseIFFAB (const BaseIFFAB< T > &)
 

Detailed Description

template<class T>
class BaseIFFAB< T >

BaseIFFAB is a templated data holder defined over the Faces of an irregular domain.

Constructor & Destructor Documentation

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

Default constructor. Constructs an uninitialized IFFAB. You must subsequently call { define} before using this IFFAB.

template<class T >
BaseIFFAB< T >::BaseIFFAB ( const IntVectSet a_region,
const EBGraph a_ebgraph,
const int &  a_direction,
const int &  a_nvarin 
)
inline

Defining constructor. Specifies the irregular domain and the number of data components per face. The irregular domain must lie completely within the EBGraph. The contents are uninitialized. Calls full define function.

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

invalid but necessary for leveldata to compile

template<class T>
BaseIFFAB< T >::BaseIFFAB ( const BaseIFFAB< T > &  )
inlineprivate

Member Function Documentation

template<class T >
void BaseIFFAB< T >::define ( const IntVectSet a_region,
const EBGraph a_ebgraph,
const int &  a_direction,
const int &  a_nvarin 
)
inline

Full define function. Specifies the irregular domain and the number of data components per face. The irregular domain must lie completely within the EBGraph. The contents are uninitialized. If it has previously been defined, the old definition data is overwritten and lost.

References BASISV(), Box::bigEnd(), CH_assert, ProblemDomain::domainBox(), EBGraph::getDomain(), IntVectSet::isEmpty(), ProblemDomain::isPeriodic(), IntVectSet::minBox(), IVSIterator::ok(), BaseFab< T >::resize(), BaseFab< T >::setVal(), Box::smallEnd(), SpaceDim, and surroundingNodes().

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

Set a value at every data location.

References CH_assert.

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

Set a value at every data location.

References CH_assert.

template<class T>
void BaseIFFAB< T >::copy ( const Box a_intBox,
const Interval a_destInterval,
const Box a_toBox,
const BaseIFFAB< T > &  a_src,
const Interval a_srcInterval 
)
inline
template<class T >
void BaseIFFAB< T >::clear ( )
inline

Remove all data from this BaseIFFAB. You must call { define} again in order to use it.

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

Tells whether this BaseIFFAB has been defined, either with a constructor or with { define}. It must be initialized in order to access its data.

Referenced by BaseIFFAB< T >::copy().

template<class T >
int BaseIFFAB< T >::numFaces ( ) const
inline

Return the number of face in this BaseIFFAB.

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

Return the number of data components of this BaseIFFAB.

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

Return the direction of the faces of this BaseIFFAB.

template<class T >
const IntVectSet & BaseIFFAB< T >::getIVS ( ) const
inline

Return the irregular domain of the BaseIFFAB.

template<class T >
T & BaseIFFAB< T >::operator() ( const FaceIndex a_face,
const int &  varlocin 
)
inline

Indexing operator. Return a reference to the contents of this IFFAB, at the specified face and data component. The first component is zero, the last is {nvar-1}. The returned object is a modifiable lvalue.

References CH_assert, FaceIndex::direction(), FaceIndex::gridIndex(), Side::Hi, and Side::Lo.

template<class T >
const T & BaseIFFAB< T >::operator() ( const FaceIndex a_face,
const int &  varlocin 
) const
inline
template<class T >
T * BaseIFFAB< T >::dataPtr ( const int &  a_comp)
inline

References CH_assert.

template<class T >
T * BaseIFFAB< T >::getIndex ( const FaceIndex a_face,
const int &  a_comp 
) const
inline

References FaceIndex::gridIndex(), and Side::Hi.

template<class T>
long BaseIFFAB< T >::offset ( const FaceIndex a_vof,
const int &  a_ivar 
) const
inline
template<class T >
const T * BaseIFFAB< T >::dataPtr ( const int &  a_comp) const
inline

References CH_assert.

template<class T >
const EBGraph & BaseIFFAB< T >::getEBGraph ( ) const
inline
template<class T>
static int BaseIFFAB< T >::preAllocatable ( )
inlinestatic
template<class T >
int BaseIFFAB< T >::size ( const Box R,
const Interval comps 
) const
inline
template<class T >
void BaseIFFAB< T >::linearOut ( void *  buf,
const Box R,
const Interval comps 
) const
inline
template<class T >
void BaseIFFAB< T >::linearIn ( void *  buf,
const Box R,
const Interval comps 
)
inline
template<class T >
void BaseIFFAB< T >::setVerbose ( bool  a_verbose)
inlinestatic
template<class T >
void BaseIFFAB< T >::setDefaultValues ( )
inlineprivate
template<class T >
bool BaseIFFAB< T >::useThisFace ( const Box a_toBox,
const FaceIndex a_face 
) const
protected
template<class T >
void BaseIFFAB< T >::getBoxAndIVS ( Box a_intBox,
IntVectSet a_ivsIntersect,
const Box a_toBox 
) const
protected

References Box::grow().

template<class T >
int BaseIFFAB< T >::getLocalVecIndex ( const FaceIndex a_face) const
inlineprotected
template<class T >
void BaseIFFAB< T >::setSurroundingNodeSemantic ( bool  a_useSurr)
static
template<class T>
void BaseIFFAB< T >::operator= ( const BaseIFFAB< T > &  )
inlineprivate

Member Data Documentation

template<class T>
bool BaseIFFAB< T >::s_verbose = false
static
template<class T>
Arena * BaseIFFAB< T >::s_Arena = NULL
staticprotected
template<class T>
bool BaseIFFAB< T >::s_doSurroundingNodeSemantic = false
staticprotected
template<class T>
Vector<T> BaseIFFAB< T >::m_data
protected
template<class T>
int BaseIFFAB< T >::m_truesize
protected
template<class T>
int BaseIFFAB< T >::m_nComp
protected

Referenced by BaseIFFAB< T >::copy().

template<class T>
int BaseIFFAB< T >::m_nFaces
protected
template<class T>
int BaseIFFAB< T >::m_direction
protected
template<class T>
BaseFab<T*> BaseIFFAB< T >::m_fab
protected
template<class T>
IntVectSet BaseIFFAB< T >::m_ivs
protected

Referenced by BaseIFFAB< T >::copy().

template<class T>
EBGraph BaseIFFAB< T >::m_ebgraph
protected
template<class T>
bool BaseIFFAB< T >::m_isDefined
protected

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