EBStenVarCoef Class Reference

#include <EBStenVarCoef.H>

List of all members.


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.

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_t > m_stencil
Vector< destTerm_t > m_destTerms
Vector< destTerm_t > m_sourTerms
Vector< Real > m_cache
Vector< Real > m_cachePhi
Vector< VolIndex > m_srcVoFs

Private Member Functions

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

Classes

struct  destTerm_t
struct  stencilTerm
struct  varcsten_t

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 (  )  [inline, private]

weak construction is bad

References MayDay::Error().

EBStenVarCoef::EBStenVarCoef ( const EBStenVarCoef &  stenin  )  [inline, private]

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  )  [inline, private]

object contains pointered data. assignment is a bad idea

References MayDay::Error().


Member Data Documentation

int EBStenVarCoef::m_destVar [protected]

Vector<Real> EBStenVarCoef::m_cache [mutable, protected]

Vector<Real> EBStenVarCoef::m_cachePhi [mutable, protected]


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

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