Chombo + EB + MF  3.2
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
MBAggStencil Class Reference

#include <MBAggStencil.H>

Classes

struct  stenelem_t
 

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. More...
 
MBAggStenciloperator= (const MBAggStencil &stenin)
 deep copy for this object would kill performance More...
 
 MBAggStencil (const MBAggStencil &stenin)
 no reason to allow this one either. More...
 

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.

Member Typedef Documentation

◆ stencil_t

Constructor & Destructor Documentation

◆ MBAggStencil() [1/3]

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::~MBAggStencil ( )
inline

References apply().

◆ MBAggStencil() [2/3]

MBAggStencil::MBAggStencil ( )
private

weak construction is bad.

◆ MBAggStencil() [3/3]

MBAggStencil::MBAggStencil ( const MBAggStencil stenin)
private

no reason to allow this one either.

Member Function Documentation

◆ apply()

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

Referenced by ~MBAggStencil().

◆ getOffset()

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

◆ computeSlabSizes()

void MBAggStencil::computeSlabSizes ( )
protected

◆ computeOffsets()

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

◆ operator=()

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

deep copy for this object would kill performance

Member Data Documentation

◆ m_mbstencil

Vector<stencil_t> MBAggStencil::m_mbstencil
protected

◆ m_dstAccess

Vector< size_t > MBAggStencil::m_dstAccess
protected

◆ m_srcBoxSize

IntVect MBAggStencil::m_srcBoxSize
protected

◆ m_dstBoxSize

IntVect MBAggStencil::m_dstBoxSize
protected

◆ m_stencilDim

int MBAggStencil::m_stencilDim
protected

◆ m_reducedDimStencil

bool MBAggStencil::m_reducedDimStencil
protected

◆ m_srcSlabLinearSize

size_t MBAggStencil::m_srcSlabLinearSize
protected

◆ m_dstSlabLinearSize

size_t MBAggStencil::m_dstSlabLinearSize
protected

◆ m_numSlabs

int MBAggStencil::m_numSlabs
protected

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