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

#include <EBStenVarCoef.H>

Classes

struct  destTerm_t
 
struct  stencilTerm
 
struct  varcsten_t
 

Public Member Functions

 ~EBStenVarCoef ()
 
 EBStenVarCoef (const Vector< VolIndex > &a_srcVofs, const BaseIVFAB< VoFStencil > &a_vofstencil, const Box &a_validBox, const EBISBox &a_ebisbox, const IntVect &a_ghostVect, int a_varDest)
 
void apply (EBCellFAB &a_lofphi, const EBCellFAB &a_phi, const EBCellFAB &a_alphaWeight, const Real &a_alpha, const EBCellFAB &a_betaWeight, const Real &a_beta)
 
void relax (EBCellFAB &a_phi, const EBCellFAB &a_rhs, const EBCellFAB &a_alphaWeight, const EBCellFAB &a_betaWeight, const EBCellFAB &a_lambda, Real a_alpha, Real a_beta) const
 
void cache (const EBCellFAB &a_phi, int ivar)
 
void uncache (EBCellFAB &a_phi, int ivar) const
 

Protected Member Functions

void computeOffsets (const Vector< VolIndex > &a_srcVoFs, const BaseIVFAB< VoFStencil > &a_vofstencil)
 

Protected Attributes

Box m_box
 
EBISBox m_ebisBox
 
Box m_grownBox
 
IntVect m_ghostVect
 
int m_destVar
 
Vector< varcsten_tm_stencil
 
Vector< destTerm_tm_destTerms
 
Vector< destTerm_tm_sourTerms
 
Vector< Realm_cache
 
Vector< Realm_cachePhi
 
Vector< VolIndexm_srcVoFs
 

Private Member Functions

 EBStenVarCoef ()
 weak construction is bad More...
 
void operator= (const EBStenVarCoef &stenin)
 object contains pointered data. assignment is a bad idea More...
 
 EBStenVarCoef (const EBStenVarCoef &stenin)
 object contains pointered data. copy construction is a bad idea More...
 

Detailed Description

EBStencil variant specifically for the needs of single-level variable coefficent elliptic operators. There is only one way to make it. Everyone has to have the same number of ghost cells. There is only one way to use it. If you want something more flexible, use EBStencil.

Constructor & Destructor Documentation

EBStenVarCoef::~EBStenVarCoef ( )
inline

Destructor

EBStenVarCoef::EBStenVarCoef ( const Vector< VolIndex > &  a_srcVofs,
const BaseIVFAB< VoFStencil > &  a_vofstencil,
const Box a_validBox,
const EBISBox a_ebisbox,
const IntVect a_ghostVect,
int  a_varDest 
)

srcVofs = list of vofs for which the stencil will be applied vofstencil = stencil for the divergence(F) validBox = valid cells (box from the DBL) ghostVect = number of ghost cells (for both phi, L(phi), rho, lambda, everything) ebisbox = geometric information varDest = variable of lphi

EBStenVarCoef::EBStenVarCoef ( )
inlineprivate

weak construction is bad

References MayDay::Error().

EBStenVarCoef::EBStenVarCoef ( const EBStenVarCoef stenin)
inlineprivate

object contains pointered data. copy construction is a bad idea

References MayDay::Error().

Member Function Documentation

void EBStenVarCoef::apply ( EBCellFAB a_lofphi,
const EBCellFAB a_phi,
const EBCellFAB a_alphaWeight,
const Real a_alpha,
const EBCellFAB a_betaWeight,
const Real a_beta 
)

lphi = alpha*alphaWeight*phi + beta*betaWeight*(div(F)) The offsets of this object compute divF. lofphi = result phi = phi alphaWeight = variable coefficient factor of the identity term alpha = constant coefficient factor of the identity term betaWeight = variable coefficient factor of the div(F) term beta = constant coefficient factor of the div(F) term

void EBStenVarCoef::relax ( EBCellFAB a_phi,
const EBCellFAB a_rhs,
const EBCellFAB a_alphaWeight,
const EBCellFAB a_betaWeight,
const EBCellFAB a_lambda,
Real  a_alpha,
Real  a_beta 
) const

phi := phi + lambda*(lphi-rhs) where lphi = alpha*alphaWeight*phi + beta*betaWeight*(div(F)) The offsets of this object compute divF. lofphi = result phi = phi alphaWeight = variable coefficient factor of the identity term alpha = constant coefficient factor of the identity term betaWeight = variable coefficient factor of the div(F) term beta = constant coefficient factor of the div(F) term lambda = relaxation coefficient

void EBStenVarCoef::cache ( const EBCellFAB a_phi,
int  ivar 
)

Cache the irregular values of the input

void EBStenVarCoef::uncache ( EBCellFAB a_phi,
int  ivar 
) const

take values of internal cache and put them into phi

void EBStenVarCoef::computeOffsets ( const Vector< VolIndex > &  a_srcVoFs,
const BaseIVFAB< VoFStencil > &  a_vofstencil 
)
protected
void EBStenVarCoef::operator= ( const EBStenVarCoef stenin)
inlineprivate

object contains pointered data. assignment is a bad idea

References MayDay::Error().

Member Data Documentation

Box EBStenVarCoef::m_box
protected
EBISBox EBStenVarCoef::m_ebisBox
protected
Box EBStenVarCoef::m_grownBox
protected
IntVect EBStenVarCoef::m_ghostVect
protected
int EBStenVarCoef::m_destVar
protected
Vector<varcsten_t> EBStenVarCoef::m_stencil
protected
Vector<destTerm_t> EBStenVarCoef::m_destTerms
protected
Vector<destTerm_t> EBStenVarCoef::m_sourTerms
protected
Vector<Real> EBStenVarCoef::m_cache
mutableprotected
Vector<Real> EBStenVarCoef::m_cachePhi
mutableprotected
Vector<VolIndex> EBStenVarCoef::m_srcVoFs
protected

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