Chombo + EB  3.2
Classes | Public Types | Public Member Functions | Protected Attributes | Private Member Functions | List of all members
AggStencil< srcData_t, dstData_t > Class Template Reference

Aggregated stencil. More...

#include <AggStencil.H>

Inheritance diagram for AggStencil< srcData_t, dstData_t >:
Inheritance graph
[legend]

Classes

struct  access_t
 

Public Types

typedef Vector< pair< access_t,
Real > > 
stencil_t
 

Public Member Functions

 AggStencil (const Vector< RefCountedPtr< BaseIndex > > &a_dstVoFs, const Vector< RefCountedPtr< BaseStencil > > &a_stencil, const srcData_t &a_srcData, const dstData_t &a_dstData)
 
 ~AggStencil ()
 
void apply (dstData_t &a_lph, const srcData_t &a_phi, const int &a_varDest, const bool &a_incrementOnly) const
 
void apply (dstData_t &a_lph, const srcData_t &a_phi, const int &a_src, const int &a_dst, const int &a_nco, const bool &a_incrementOnly) const
 
void cache (const dstData_t &a_lph) const
 
void uncache (dstData_t &a_phi) const
 

Protected Attributes

int m_destVar
 
Vector< stencil_tm_ebstencil
 
Vector< access_tm_dstAccess
 
Vector< Vector< Real > > m_cacheDst
 

Private Member Functions

 AggStencil ()
 disallowed operators. Without code because Jeff says that is better. More...
 
AggStenciloperator= (const AggStencil &stenin)
 deep copy for this object would kill performance More...
 
 AggStencil (const AggStencil &stenin)
 no reason to allow this one either. More...
 

Detailed Description

template<class srcData_t, class dstData_t>
class AggStencil< srcData_t, dstData_t >

Aggregated stencil.

srcData_t classes need the following functions int dataType(BaseIndex); int offset(BaseIndex); Real* dataPtr(int dataType, int ivar);

dstData_t classes need the following functions int dataType(BaseIndex); int offset(BaseIndex); Real* dataPtr(int dataType, int ivar);

sten_t classes need the following functions srcIndex_t index(int isten) Real weight(int isten)

Member Typedef Documentation

template<class srcData_t, class dstData_t>
typedef Vector<pair<access_t, Real> > AggStencil< srcData_t, dstData_t >::stencil_t

Constructor & Destructor Documentation

template<class srcData_t, class dstData_t>
AggStencil< srcData_t, dstData_t >::AggStencil ( const Vector< RefCountedPtr< BaseIndex > > &  a_dstVoFs,
const Vector< RefCountedPtr< BaseStencil > > &  a_stencil,
const srcData_t &  a_srcData,
const dstData_t &  a_dstData 
)

a_dstIndex is where the answers will go. a_srcStencil is the stencil into the src data a_srcData is to provide offsets for source data (can be a dummy but must be the right size) a_dstData is to provide offsets for destin data (can be a dummy but must be the right size)

References CH_TIME, BaseStencil::index(), BaseStencil::size(), BaseStencil::variable(), and BaseStencil::weight().

template<class srcData_t, class dstData_t>
AggStencil< srcData_t, dstData_t >::~AggStencil ( )
inline
template<class srcData_t, class dstData_t>
AggStencil< srcData_t, dstData_t >::AggStencil ( )
private

disallowed operators. Without code because Jeff says that is better.

weak construction is bad.

template<class srcData_t, class dstData_t>
AggStencil< srcData_t, dstData_t >::AggStencil ( const AggStencil< srcData_t, dstData_t > &  stenin)
private

no reason to allow this one either.

Member Function Documentation

template<class srcData_t, class dstData_t>
void AggStencil< srcData_t, dstData_t >::apply ( dstData_t &  a_lph,
const srcData_t &  a_phi,
const int &  a_varDest,
const bool &  a_incrementOnly 
) const
template<class srcData_t, class dstData_t>
void AggStencil< srcData_t, dstData_t >::apply ( dstData_t &  a_lph,
const srcData_t &  a_phi,
const int &  a_src,
const int &  a_dst,
const int &  a_nco,
const bool &  a_incrementOnly 
) const

for applying a scalar operator to multiple operators. Sets the initial variable for destination to a_varDest Sets dataPtr for a_phi initial variable to a_varSrc Runs over ncomp components

References CH_TIME, and Vector< T >::size().

template<class srcData_t , class dstData_t>
void AggStencil< srcData_t, dstData_t >::cache ( const dstData_t &  a_lph) const

References CH_TIME.

template<class srcData_t , class dstData_t>
void AggStencil< srcData_t, dstData_t >::uncache ( dstData_t &  a_phi) const

References CH_TIME.

template<class srcData_t, class dstData_t>
AggStencil& AggStencil< srcData_t, dstData_t >::operator= ( const AggStencil< srcData_t, dstData_t > &  stenin)
private

deep copy for this object would kill performance

Member Data Documentation

template<class srcData_t, class dstData_t>
int AggStencil< srcData_t, dstData_t >::m_destVar
protected
template<class srcData_t, class dstData_t>
Vector<stencil_t> AggStencil< srcData_t, dstData_t >::m_ebstencil
protected
template<class srcData_t, class dstData_t>
Vector<access_t> AggStencil< srcData_t, dstData_t >::m_dstAccess
protected
template<class srcData_t, class dstData_t>
Vector< Vector<Real> > AggStencil< srcData_t, dstData_t >::m_cacheDst
mutableprotected

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