MBAggStencil Class Reference

#include <MBAggStencil.H>

List of all members.


Detailed Description

Aggregated stencil for multiblock stuff. Takes IVSFAB<MBStencil> and turns that into arrays of offsets and weights so the stencil can be evaluated very quickly in comparison with fab(iv, ivar) over and over.

Public Types

typedef Vector< stenelem_tstencil_t

Public Member Functions

 MBAggStencil (const RefCountedPtr< IVSFAB< MBStencil > > &a_stencil, const IntVectSet &a_region, const Box &a_srcBox, const Box &a_dstBox, const int &a_stencilDim)
 ~MBAggStencil ()
void apply (FArrayBox &a_lph, const Vector< FArrayBox * > &a_phi, const int &a_src, const int &a_dst, const int &a_nco, const bool &a_incrementOnly) const

Protected Member Functions

size_t getOffset (const IntVect &a_iv, const Box &a_grid)
void computeSlabSizes ()
void computeOffsets (const RefCountedPtr< IVSFAB< MBStencil > > &a_stencil, const IntVectSet &a_region, const Box &a_srcBox, const Box &a_dstBox)

Protected Attributes

Vector< stencil_tm_mbstencil
Vector< size_t > m_dstAccess
IntVect m_srcBoxSize
IntVect m_dstBoxSize
int m_stencilDim
bool m_reducedDimStencil
size_t m_srcSlabLinearSize
size_t m_dstSlabLinearSize
int m_numSlabs

Private Member Functions

 MBAggStencil ()
 weak construction is bad.
MBAggStenciloperator= (const MBAggStencil &stenin)
 deep copy for this object would kill performance
 MBAggStencil (const MBAggStencil &stenin)
 no reason to allow this one either.

Classes

struct  stenelem_t

Member Typedef Documentation


Constructor & Destructor Documentation

MBAggStencil::MBAggStencil ( const RefCountedPtr< IVSFAB< MBStencil > > &  a_stencil,
const IntVectSet a_region,
const Box a_srcBox,
const Box a_dstBox,
const int &  a_stencilDim 
)

IVS sent in separately because of the removeNoValid fiasco. sometimes the input stencil has extra cells.

MBAggStencil::~MBAggStencil (  )  [inline]

MBAggStencil::MBAggStencil (  )  [private]

weak construction is bad.

MBAggStencil::MBAggStencil ( const MBAggStencil stenin  )  [private]

no reason to allow this one either.


Member Function Documentation

void MBAggStencil::apply ( FArrayBox a_lph,
const Vector< FArrayBox * > &  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

size_t MBAggStencil::getOffset ( const IntVect a_iv,
const Box a_grid 
) [protected]

void MBAggStencil::computeSlabSizes (  )  [protected]

void MBAggStencil::computeOffsets ( const RefCountedPtr< IVSFAB< MBStencil > > &  a_stencil,
const IntVectSet a_region,
const Box a_srcBox,
const Box a_dstBox 
) [protected]

MBAggStencil& MBAggStencil::operator= ( const MBAggStencil stenin  )  [private]

deep copy for this object would kill performance


Member Data Documentation

Vector< size_t > MBAggStencil::m_dstAccess [protected]

int MBAggStencil::m_stencilDim [protected]

int MBAggStencil::m_numSlabs [protected]


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

Generated on Sat Sep 23 03:27:14 2017 for Chombo + EB + MF by  doxygen 1.5.5