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_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
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