#include <EBStencil.H>
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_t > | m_ebstencil |
| Vector< destTerm_t > | m_destTerms |
| Vector< destTerm_t > | m_sourTerms |
| Vector< int > | m_alphaBeta |
| Vector< Real > | m_cacheLph |
| Vector< Real > | m_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) | |
Classes | |
| struct | destTerm_t |
| struct | ebstencil_t |
| struct | stencilTerm |
| 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 | ( | ) | [inline, private] |
References MayDay::Error().
| EBStencil::EBStencil | ( | const EBStencil & | stenin | ) | [inline, private] |
References MayDay::Error().
| 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().
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 [mutable, protected] |
Vector<Real> EBStencil::m_cachePhi [mutable, protected] |
bool EBStencil::m_doRelaxOpt [protected] |
int EBStencil::m_nComp [protected] |
IntVectSet EBStencil::m_setIrreg [protected] |
bool EBStencil::m_useInputSets [protected] |
1.5.5