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

EB stencil. More...

#include <EBStencil.H>

Classes

struct  destTerm_t
 
struct  ebstencil_t
 
struct  stencilTerm
 

Public Member Functions

 ~EBStencil ()
 
 EBStencil (const Vector< VolIndex > &a_srcVofs, const BaseIVFAB< VoFStencil > &a_vofstencil, const Box &a_box, const EBISBox &a_ebisbox, const IntVect &a_ghostVectPhi, const IntVect &a_ghostVectLph, int a_varDest=0, bool a_doRelaxOpt=false, int ncomp=1, IntVectSet a_setIrreg=IntVectSet(), bool a_useInputSets=false)
 
 EBStencil (const Vector< VolIndex > &a_srcVofs, const Vector< VoFStencil > &a_vofStencil, const Box &a_boxLph, const Box &a_boxPhi, const EBISBox &a_ebisBoxLph, const EBISBox &a_ebisBoxPhi, const IntVect &a_ghostVectLph, const IntVect &a_ghostVectPhi, int a_varDest=0, int ncomp=1, IntVectSet a_setIrreg=IntVectSet(), bool a_useInputSets=false)
 
void apply (EBCellFAB &a_lofphi, const EBCellFAB &a_phi, bool incrementOnly=false, int ivar=0) const
 
void apply (EBCellFAB &a_lofphi, const EBCellFAB &a_phi, const BaseIVFAB< Real > &a_alphaWeight, Real a_alpha, Real a_beta, bool incrementOnly=false) const
 
void apply (EBCellFAB &a_lofphi, const EBCellFAB &a_phi, const Real a_lambdaFactor, const Real a_alpha, const BaseIVFAB< Real > &a_alphaWeight, const Real a_beta, const BaseIVFAB< Real > &a_betaWeight, Real a_one, bool incrementOnly=false) const
 
void applyInhomDomBC (EBCellFAB &a_lofphi, const EBCellFAB &a_phi, const Real a_factor) const
 
void relax (EBCellFAB &a_phi, const EBCellFAB &a_rhs, const BaseIVFAB< Real > &a_alphaWeight, const BaseIVFAB< Real > &a_betaWeight, Real a_alpha, Real a_beta, Real a_safety) const
 
void relaxClone (EBCellFAB &a_phi, const EBCellFAB &a_phiOld, const EBCellFAB &a_rhs, const BaseIVFAB< Real > &a_alphaWeight, const BaseIVFAB< Real > &a_betaWeight, Real a_alpha, Real a_beta, Real a_safety) const
 
void cache (const EBCellFAB &a_lphi, int a_ivar=0) const
 
void cachePhi (const EBCellFAB &a_lphi, int a_ivar=0) const
 
void uncache (EBCellFAB &a_lphi, int a_ivar=0) const
 
void uncachePhi (EBCellFAB &a_phi, int a_ivar=0) const
 
void computeOffsets (const Vector< VolIndex > &a_srcVoFs, const BaseIVFAB< VoFStencil > &a_vofstencil)
 

Protected Attributes

Box m_box
 
EBISBox m_ebisBox
 
Box m_lphBox
 
Box m_phiBox
 
IntVect m_ghostVectPhi
 
IntVect m_ghostVectLph
 
int m_destVar
 
Vector< ebstencil_tm_ebstencil
 
Vector< destTerm_tm_destTerms
 
Vector< destTerm_tm_sourTerms
 
Vector< int > m_alphaBeta
 
Vector< Realm_cacheLph
 
Vector< Realm_cachePhi
 
bool m_doRelaxOpt
 
int m_nComp
 
IntVectSet m_setIrreg
 
bool m_useInputSets
 

Private Member Functions

 EBStencil ()
 
void operator= (const EBStencil &stenin)
 
 EBStencil (const EBStencil &stenin)
 

Detailed Description

EB stencil.

Constructor & Destructor Documentation

EBStencil::~EBStencil ( )

Destructor

EBStencil::EBStencil ( const Vector< VolIndex > &  a_srcVofs,
const BaseIVFAB< VoFStencil > &  a_vofstencil,
const Box a_box,
const EBISBox a_ebisbox,
const IntVect a_ghostVectPhi,
const IntVect a_ghostVectLph,
int  a_varDest = 0,
bool  a_doRelaxOpt = false,
int  ncomp = 1,
IntVectSet  a_setIrreg = IntVectSet(),
bool  a_useInputSets = false 
)

Full constructor. Box is unghosted. When setting Lphi(i,j) = L(phi(i,j)) GhostVectPhi is the ghost vect of phi GhostVectLph is the ghost vect of lphi

EBStencil::EBStencil ( const Vector< VolIndex > &  a_srcVofs,
const Vector< VoFStencil > &  a_vofStencil,
const Box a_boxLph,
const Box a_boxPhi,
const EBISBox a_ebisBoxLph,
const EBISBox a_ebisBoxPhi,
const IntVect a_ghostVectLph,
const IntVect a_ghostVectPhi,
int  a_varDest = 0,
int  ncomp = 1,
IntVectSet  a_setIrreg = IntVectSet(),
bool  a_useInputSets = false 
)

Second constructor for creating stencil where dest and src live on 2 different levels and dest is Lphi and src is Phi. no relax optimization here

EBStencil::EBStencil ( )
inlineprivate

References MayDay::Error().

EBStencil::EBStencil ( const EBStencil stenin)
inlineprivate

References MayDay::Error().

Member Function Documentation

void EBStencil::apply ( EBCellFAB a_lofphi,
const EBCellFAB a_phi,
bool  incrementOnly = false,
int  ivar = 0 
) const

Applies stencil to each component of phi using the stencil weights and offsets to compute L. If incrementOnly = true, a_lofphi is incremented without any set to zero. If false, a_lofphi is set to zero and set equal to L(phi). ivar is so you can apply a scalar ebstencil to a component of a larger holder

void EBStencil::apply ( EBCellFAB a_lofphi,
const EBCellFAB a_phi,
const BaseIVFAB< Real > &  a_alphaWeight,
Real  a_alpha,
Real  a_beta,
bool  incrementOnly = false 
) const

Applies stencil to each component of phi using the stencil weights and offsets to compute L. but with constants. a_lofphi_i = alpha*phi_i + beta*lphi_i If incrementOnly = true, a_lofphi is incremented without any set to zero. If false, a_lofphi is set to zero and set equal to a_lofphi_i Alpha and beta are defined over getIrregIVS(lphBox) where lphBox = grow(a_box, a_ghostVectLph) where a_box are given in the constructor.

void EBStencil::apply ( EBCellFAB a_lofphi,
const EBCellFAB a_phi,
const Real  a_lambdaFactor,
const Real  a_alpha,
const BaseIVFAB< Real > &  a_alphaWeight,
const Real  a_beta,
const BaseIVFAB< Real > &  a_betaWeight,
Real  a_one,
bool  incrementOnly = false 
) const
void EBStencil::applyInhomDomBC ( EBCellFAB a_lofphi,
const EBCellFAB a_phi,
const Real  a_factor 
) const
void EBStencil::relax ( EBCellFAB a_phi,
const EBCellFAB a_rhs,
const BaseIVFAB< Real > &  a_alphaWeight,
const BaseIVFAB< Real > &  a_betaWeight,
Real  a_alpha,
Real  a_beta,
Real  a_safety 
) const
void EBStencil::relaxClone ( EBCellFAB a_phi,
const EBCellFAB a_phiOld,
const EBCellFAB a_rhs,
const BaseIVFAB< Real > &  a_alphaWeight,
const BaseIVFAB< Real > &  a_betaWeight,
Real  a_alpha,
Real  a_beta,
Real  a_safety 
) const
void EBStencil::cache ( const EBCellFAB a_lphi,
int  a_ivar = 0 
) const

Cache lphi. ivar is so you can apply a scalar ebstencil to a component of a larger holder

void EBStencil::cachePhi ( const EBCellFAB a_lphi,
int  a_ivar = 0 
) const

Cache phi ivar is so you can apply a scalar ebstencil to a component of a larger holder

void EBStencil::uncache ( EBCellFAB a_lphi,
int  a_ivar = 0 
) const

Uncache lphi ivar is so you can apply a scalar ebstencil to a component of a larger holder

void EBStencil::uncachePhi ( EBCellFAB a_phi,
int  a_ivar = 0 
) const

Uncache phi ivar is so you can apply a scalar ebstencil to a component of a larger holder

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

Compute integer offsets for stencil operations

void EBStencil::operator= ( const EBStencil stenin)
inlineprivate

References MayDay::Error().

Member Data Documentation

Box EBStencil::m_box
protected
EBISBox EBStencil::m_ebisBox
protected
Box EBStencil::m_lphBox
protected
Box EBStencil::m_phiBox
protected
IntVect EBStencil::m_ghostVectPhi
protected
IntVect EBStencil::m_ghostVectLph
protected
int EBStencil::m_destVar
protected
Vector<ebstencil_t> EBStencil::m_ebstencil
protected
Vector<destTerm_t> EBStencil::m_destTerms
protected
Vector<destTerm_t> EBStencil::m_sourTerms
protected
Vector<int> EBStencil::m_alphaBeta
protected
Vector<Real> EBStencil::m_cacheLph
mutableprotected
Vector<Real> EBStencil::m_cachePhi
mutableprotected
bool EBStencil::m_doRelaxOpt
protected
int EBStencil::m_nComp
protected
IntVectSet EBStencil::m_setIrreg
protected
bool EBStencil::m_useInputSets
protected

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