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

#include <IVSFAB.H>

Public Member Functions

 IVSFAB ()
 
 IVSFAB (const IntVectSet &a_region, const int &a_nvarin)
 
 ~IVSFAB ()
 
void define (const IntVectSet &a_region, const int &a_nvarin)
 
void setVal (const T &value)
 
void copy (const Box &a_fromBox, const Interval &a_destInterval, const Box &a_toBox, const IVSFAB< T > &a_src, const Interval &a_srcInterval)
 
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)
 
void clear ()
 
bool isDefined () const
 
int numIvs () const
 
int nComp () const
 
const IntVectSetgetIVS () const
 
T & operator() (const IntVect &a_iv, const int &varlocin)
 
const T & operator() (const IntVect &a_iv, const int &varlocin) const
 
const T * dataPtr (const int &a_comp) const
 
T * dataPtr (const int &a_comp)
 
 IVSFAB (const Box &a_region, int a_nVar)
 invalid but necessary for leveldata to compile More...
 
const int * loVect () const
 
const int * hiVect () const
 
template<>
int size (const Box &a_region, const Interval &a_comps) const
 
template<>
void linearOut (void *a_buf, const Box &a_region, const Interval &a_comps) const
 
template<>
void linearIn (void *a_buf, const Box &a_region, const Interval &a_comps)
 

Static Public Member Functions

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

Protected Member Functions

int getIndex (const IntVect &a_iv, const int &a_comp) const
 

Protected Attributes

T * m_dataPtr
 
int m_nComp
 
int m_nIvs
 
IntVect m_loVect
 
IntVect m_hiVect
 
BaseFab< int > m_ivmap
 
IntVectSet m_ivs
 
bool m_isDefined
 

Static Protected Attributes

static bool s_verbose = false
 

Private Member Functions

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

Detailed Description

template<class T>
class IVSFAB< T >

IVSFAB is a templated data holder defined at the Ivs of an irregular domain.

Constructor & Destructor Documentation

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

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

template<class T >
IVSFAB< T >::IVSFAB ( const IntVectSet a_region,
const int &  a_nvarin 
)
inline
template<class T >
IVSFAB< T >::~IVSFAB ( )
inline
template<class T>
IVSFAB< T >::IVSFAB ( const Box a_region,
int  a_nVar 
)
inline

invalid but necessary for leveldata to compile

References MayDay::Error().

template<class T >
IVSFAB< T >::IVSFAB ( const IVSFAB< T > &  a_input)
inlineprivate

References MayDay::Error().

Member Function Documentation

template<class T >
void IVSFAB< T >::define ( const IntVectSet a_region,
const int &  a_nvarin 
)
inline
template<class T >
void IVSFAB< T >::setVal ( const T &  value)
inline

Set a value at every data location.

References CH_assert.

template<class T >
void IVSFAB< T >::copy ( const Box a_fromBox,
const Interval a_destInterval,
const Box a_toBox,
const IVSFAB< T > &  a_src,
const Interval a_srcInterval 
)
inline
template<class T>
static int IVSFAB< T >::preAllocatable ( )
inlinestatic

This stuff required by LevelData in parallel:

template<class T >
int IVSFAB< T >::size ( const Box R,
const Interval comps 
) const
inline
template<class T >
void IVSFAB< T >::linearOut ( void *  buf,
const Box R,
const Interval comps 
) const
inline
template<class T >
void IVSFAB< T >::linearIn ( void *  buf,
const Box R,
const Interval comps 
)
inline
template<class T >
void IVSFAB< T >::clear ( )
inline

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

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

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

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

template<class T >
int IVSFAB< T >::numIvs ( ) const
inline

Return the number of Ivs in this IVSFAB.

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

Return the number of data components of this IVSFAB.

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

Return the irregular domain of the IVSFAB.

template<class T >
T & IVSFAB< T >::operator() ( const IntVect a_iv,
const int &  varlocin 
)
inline

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

References CH_assert.

template<class T >
const T & IVSFAB< T >::operator() ( const IntVect a_iv,
const int &  varlocin 
) const
inline

References CH_assert.

template<class T >
const T * IVSFAB< T >::dataPtr ( const int &  a_comp) const
inline

Return a const pointer to the internal data storage of this IVFAB. \

References CH_assert.

template<class T >
T * IVSFAB< T >::dataPtr ( const int &  a_comp)
inline

Return a pointer to the internal data storage of this IVFAB.

References CH_assert.

template<class T >
const int * IVSFAB< T >::loVect ( ) const
inline

Return a fake "lower left corner of the domain" for use with Fortran.

template<class T >
const int * IVSFAB< T >::hiVect ( ) const
inline

Return a fake "upper right corner of the domain" for use with Fortran.

template<class T >
void IVSFAB< T >::setVerbose ( bool  a_verbose)
static
template<class T >
void IVSFAB< T >::setDefaultValues ( )
inlineprivate

References IntVect::Unit, and IntVect::Zero.

template<class T >
int IVSFAB< T >::getIndex ( const IntVect a_iv,
const int &  a_comp 
) const
inlineprotected

References CH_assert.

template<class T >
IVSFAB< T > & IVSFAB< T >::operator= ( const IVSFAB< T > &  a_input)
inlineprivate

References MayDay::Error().

template<>
int IVSFAB< Real >::size ( const Box a_region,
const Interval a_comps 
) const
inline
template<>
void IVSFAB< Real >::linearOut ( void *  a_buf,
const Box a_region,
const Interval a_comps 
) const
inline
template<>
void IVSFAB< Real >::linearIn ( void *  a_buf,
const Box a_region,
const Interval a_comps 
)
inline

Member Data Documentation

template<class T>
T* IVSFAB< T >::m_dataPtr
protected
template<class T>
int IVSFAB< T >::m_nComp
protected

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

template<class T>
int IVSFAB< T >::m_nIvs
protected
template<class T>
IntVect IVSFAB< T >::m_loVect
protected
template<class T>
IntVect IVSFAB< T >::m_hiVect
protected
template<class T>
BaseFab<int> IVSFAB< T >::m_ivmap
protected
template<class T>
IntVectSet IVSFAB< T >::m_ivs
protected

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

template<class T>
bool IVSFAB< T >::m_isDefined
protected
template<class T>
bool IVSFAB< T >::s_verbose = false
staticprotected

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