AggStencil< srcData_t, dstData_t > Class Template Reference

#include <AggStencil.H>

Inheritance diagram for AggStencil< srcData_t, dstData_t >:

Inheritance graph
[legend]

List of all members.


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)

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.
AggStenciloperator= (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


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 
) [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().

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 [inline]

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 [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().

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

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

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]

Reimplemented in VCAggStencil.

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 [mutable, protected]


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

Generated on Fri Apr 5 04:24:51 2019 for Chombo + EB by  doxygen 1.5.5