#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) | |
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) 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 | 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 | cache (const EBCellFAB &a_lphi) const |
void | cachePhi (const EBCellFAB &a_lphi) const |
void | uncache (EBCellFAB &a_lphi) const |
void | uncachePhi (EBCellFAB &a_phi) 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_cache |
Vector< Real > | m_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 |
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().
void EBStencil::apply | ( | EBCellFAB & | a_lofphi, | |
const EBCellFAB & | a_phi, | |||
bool | incrementOnly = false | |||
) | 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).
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::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::cache | ( | const EBCellFAB & | a_lphi | ) | const |
Cache lphi
void EBStencil::cachePhi | ( | const EBCellFAB & | a_lphi | ) | const |
Cache phi
void EBStencil::uncache | ( | EBCellFAB & | a_lphi | ) | const |
Uncache lphi
void EBStencil::uncachePhi | ( | EBCellFAB & | a_phi | ) | const |
Uncache phi
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_cache [mutable, protected] |
Vector<Real> EBStencil::m_cachePhi [mutable, protected] |
bool EBStencil::m_doRelaxOpt [protected] |