Chombo + EB  3.2
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
VCAggStencil Class Reference

#include <VCAggStencil.H>

Inheritance diagram for VCAggStencil:
Inheritance graph
[legend]

Public Member Functions

 VCAggStencil (const Vector< RefCountedPtr< BaseIndex > > &a_dstVoFs, const Vector< RefCountedPtr< BaseStencil > > &a_stencil, const EBCellFAB &a_phiData, const EBCellFAB &a_rhsData, const EBCellFAB &a_relCoef, const BaseIVFAB< Real > &a_alphaDiagWeight, const int &a_ncomp)
 
virtual ~VCAggStencil ()
 
virtual void cachePhi (const EBCellFAB &a_phi) const
 
virtual void uncachePhi (EBCellFAB &a_phi) const
 
virtual void relax (EBCellFAB &a_phi, const EBCellFAB &a_rhs, const EBCellFAB &a_relCoef, const BaseIVFAB< Real > &a_alphaDiagWeight, const Real &a_alpha, const Real &a_beta, const int &a_varDest, const IntVect &a_color)
 
virtual void apply (EBCellFAB &a_lphi, const EBCellFAB &a_phi, const BaseIVFAB< Real > &a_alphaDiagWeight, const Real &a_alpha, const Real &a_beta, const int &a_varDest, const bool &a_incrmentOnly)
 
- Public Member Functions inherited from AggStencil< EBCellFAB, EBCellFAB >
 AggStencil (const Vector< RefCountedPtr< BaseIndex > > &a_dstVoFs, const Vector< RefCountedPtr< BaseStencil > > &a_stencil, const EBCellFAB &a_srcData, const EBCellFAB &a_dstData)
 
 ~AggStencil ()
 
void apply (EBCellFAB &a_lph, const EBCellFAB &a_phi, const int &a_varDest, const bool &a_incrementOnly) const
 
void apply (EBCellFAB &a_lph, const EBCellFAB &a_phi, const int &a_src, const int &a_dst, const int &a_nco, const bool &a_incrementOnly) const
 
void cache (const EBCellFAB &a_lph) const
 
void uncache (EBCellFAB &a_phi) const
 

Protected Attributes

Vector< IntVectm_iv
 
int m_destVar
 
Vector< access_t > m_phiAccess
 
Vector< access_t > m_relAccess
 
Vector< access_t > m_alpAccess
 
Vector< IntVectm_destIV
 
Vector< Vector< Real > > m_cachePhi
 
- Protected Attributes inherited from AggStencil< EBCellFAB, EBCellFAB >
int m_destVar
 
Vector< stencil_tm_ebstencil
 
Vector< access_t > m_dstAccess
 
Vector< Vector< Real > > m_cacheDst
 

Private Member Functions

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

Additional Inherited Members

- Public Types inherited from AggStencil< EBCellFAB, EBCellFAB >
typedef Vector< pair< access_t, Real > > stencil_t
 

Detailed Description

specialization of aggstencil for variable coefficient elliptic operators. Real* dataPtr(int dataType, int ivar);

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

Constructor & Destructor Documentation

◆ VCAggStencil() [1/3]

VCAggStencil::VCAggStencil ( const Vector< RefCountedPtr< BaseIndex > > &  a_dstVoFs,
const Vector< RefCountedPtr< BaseStencil > > &  a_stencil,
const EBCellFAB a_phiData,
const EBCellFAB a_rhsData,
const EBCellFAB a_relCoef,
const BaseIVFAB< Real > &  a_alphaDiagWeight,
const int &  a_ncomp 
)

a_dstIndex is where the answers will go. a_srcStencil is the stencil into the src data a_phiData is to provide offsets for source data (can be a dummy but must be the right size) a_rhsData is to provide offsets for destin data (can be a dummy but must be the right size) ncomp is the number of components in the cache rhsData and phiData can have the wrong number of comps

◆ ~VCAggStencil()

virtual VCAggStencil::~VCAggStencil ( )
inlinevirtual

References apply(), cachePhi(), relax(), and uncachePhi().

◆ VCAggStencil() [2/3]

VCAggStencil::VCAggStencil ( )
private

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

weak construction is bad.

◆ VCAggStencil() [3/3]

VCAggStencil::VCAggStencil ( const VCAggStencil stenin)
private

no reason to allow this one either.

Member Function Documentation

◆ cachePhi()

virtual void VCAggStencil::cachePhi ( const EBCellFAB a_phi) const
virtual

Referenced by ~VCAggStencil().

◆ uncachePhi()

virtual void VCAggStencil::uncachePhi ( EBCellFAB a_phi) const
virtual

Referenced by ~VCAggStencil().

◆ relax()

virtual void VCAggStencil::relax ( EBCellFAB a_phi,
const EBCellFAB a_rhs,
const EBCellFAB a_relCoef,
const BaseIVFAB< Real > &  a_alphaDiagWeight,
const Real a_alpha,
const Real a_beta,
const int &  a_varDest,
const IntVect a_color 
)
virtual

for the given color phi := phi + relcoef*(lphi - rhs) where lphi = alpha*alphadiagweight*phi + beta*divF where divF is given by the input stencil above

Referenced by ~VCAggStencil().

◆ apply()

virtual void VCAggStencil::apply ( EBCellFAB a_lphi,
const EBCellFAB a_phi,
const BaseIVFAB< Real > &  a_alphaDiagWeight,
const Real a_alpha,
const Real a_beta,
const int &  a_varDest,
const bool &  a_incrmentOnly 
)
virtual

lphi = alpha*alphadiagweight*phi + beta*divF where divF is given by the input stencil above

Referenced by ~VCAggStencil().

◆ operator=()

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

deep copy for this object would kill performance

Member Data Documentation

◆ m_iv

Vector<IntVect> VCAggStencil::m_iv
protected

◆ m_destVar

int VCAggStencil::m_destVar
protected

◆ m_phiAccess

Vector<access_t> VCAggStencil::m_phiAccess
protected

◆ m_relAccess

Vector<access_t> VCAggStencil::m_relAccess
protected

◆ m_alpAccess

Vector<access_t> VCAggStencil::m_alpAccess
protected

◆ m_destIV

Vector<IntVect> VCAggStencil::m_destIV
protected

◆ m_cachePhi

Vector< Vector<Real> > VCAggStencil::m_cachePhi
mutableprotected

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