Chombo + EB
3.0
|
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) | |
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_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 |
Private Member Functions | |
EBStencil () | |
void | operator= (const EBStencil &stenin) |
EBStencil (const EBStencil &stenin) | |
EB stencil.
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
|
inlineprivate |
References MayDay::Error().
|
inlineprivate |
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
|
inlineprivate |
References MayDay::Error().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |