#include <AggStencil.H>
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)
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_t > | m_ebstencil |
Vector< access_t > | m_dstAccess |
Vector< Vector< Real > > | m_cacheDst |
Private Member Functions | |
AggStencil () | |
disallowed operators. Without code because Jeff says that is better. | |
AggStencil & | operator= (const AggStencil &stenin) |
deep copy for this object would kill performance | |
AggStencil (const AggStencil &stenin) | |
no reason to allow this one either. | |
Classes | |
struct | access_t |
typedef Vector<pair<access_t, Real> > AggStencil< srcData_t, dstData_t >::stencil_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 | |||
) | [inline] |
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(), AggStencil< srcData_t, dstData_t >::m_dstAccess, AggStencil< srcData_t, dstData_t >::m_ebstencil, Vector< T >::resize(), BaseStencil::size(), BaseStencil::variable(), and BaseStencil::weight().
AggStencil< srcData_t, dstData_t >::~AggStencil | ( | ) | [inline] |
AggStencil< srcData_t, dstData_t >::AggStencil | ( | ) | [private] |
disallowed operators. Without code because Jeff says that is better.
weak construction is bad.
AggStencil< srcData_t, dstData_t >::AggStencil | ( | const AggStencil< srcData_t, dstData_t > & | stenin | ) | [private] |
no reason to allow this one either.
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 [inline] |
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 [inline] |
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_flops, CH_TIME, AggStencil< srcData_t, dstData_t >::m_dstAccess, AggStencil< srcData_t, dstData_t >::m_ebstencil, and Vector< T >::size().
void AggStencil< srcData_t, dstData_t >::cache | ( | const dstData_t & | a_lph | ) | const [inline] |
void AggStencil< srcData_t, dstData_t >::uncache | ( | dstData_t & | a_phi | ) | const [inline] |
AggStencil& AggStencil< srcData_t, dstData_t >::operator= | ( | const AggStencil< srcData_t, dstData_t > & | stenin | ) | [private] |
deep copy for this object would kill performance
int AggStencil< srcData_t, dstData_t >::m_destVar [protected] |
Reimplemented in VCAggStencil.
Vector<stencil_t> AggStencil< srcData_t, dstData_t >::m_ebstencil [protected] |
Vector<access_t> AggStencil< srcData_t, dstData_t >::m_dstAccess [protected] |
Vector< Vector<Real> > AggStencil< srcData_t, dstData_t >::m_cacheDst [mutable, protected] |