EBStencil Class Reference

#include <EBStencil.H>

List of all members.


Detailed Description

EB stencil.

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

Private Member Functions

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

Classes

struct  destTerm_t
struct  ebstencil_t
struct  stencilTerm

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 
)

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 
)

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

References MayDay::Error().

EBStencil::EBStencil ( const EBStencil stenin  )  [inline, private]

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

References MayDay::Error().


Member Data Documentation

Box EBStencil::m_box [protected]

Box EBStencil::m_lphBox [protected]

Box EBStencil::m_phiBox [protected]

int EBStencil::m_destVar [protected]

Vector<int> EBStencil::m_alphaBeta [protected]

Vector<Real> EBStencil::m_cacheLph [mutable, protected]

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

bool EBStencil::m_doRelaxOpt [protected]


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

Generated on Mon Apr 24 03:43:07 2017 for Chombo + EB by  doxygen 1.5.5