EBViscousTensorOp Class Reference

#include <EBViscousTensorOp.H>

Inheritance diagram for EBViscousTensorOp:

Inheritance graph
[legend]
Collaboration diagram for EBViscousTensorOp:

Collaboration graph
[legend]

List of all members.


Detailed Description

operator is alpha a I + (divF) = alpha I + beta*div(eta(grad B + grad B^T) + lambda* I div B ) beta, lambda, and eta are incorporated into the flux F

Public Member Functions

virtual void setAlphaAndBeta (const Real &a_alpha, const Real &a_beta)
 for tga to reset stuff
virtual void diagonalScale (LevelData< EBCellFAB > &a_rhs)
 another tgaism
virtual void fillGrad (const LevelData< EBCellFAB > &a_phi)
 a leveltgaism
virtual void getFlux (EBFluxFAB &a_flux, const LevelData< EBCellFAB > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale)
 another leveltgaism
virtual void applyOpNoBoundary (LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
 apply operator without any boundary or coarse-fine boundary conditions and no finer level
 EBViscousTensorOp (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblg, const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgCoarMG, const Real &a_alpha, const Real &a_beta, const RefCountedPtr< LevelData< EBCellFAB > > &a_acoef, const RefCountedPtr< LevelData< EBFluxFAB > > &a_eta, const RefCountedPtr< LevelData< EBFluxFAB > > &a_lambda, const RefCountedPtr< LevelData< BaseIVFAB< Real > > > &a_etaIrreg, const RefCountedPtr< LevelData< BaseIVFAB< Real > > > &a_lambdaIrreg, const Real &a_dx, const Real &a_dxCoar, const int &a_refToFine, const int &a_refToCoar, const RefCountedPtr< ViscousBaseDomainBC > &a_domainBC, const RefCountedPtr< ViscousBaseEBBC > &a_ebBC, const bool &a_hasMGObjects, const IntVect &a_ghostCellsPhi, const IntVect &a_ghostCellsRHS)
virtual ~EBViscousTensorOp ()
void AMRResidualNC (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
void AMROperatorNC (LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
virtual void residual (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousPhysBC=false)
virtual void preCond (LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
virtual void applyOp (LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi, bool a_homogeneousPhysBC)
virtual void create (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
virtual void createCoarsened (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs, const int &a_refRat)
Real AMRNorm (const LevelData< EBCellFAB > &a_coarResid, const LevelData< EBCellFAB > &a_fineResid, const int &a_refRat, const int &a_ord)
virtual void assign (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
virtual Real dotProduct (const LevelData< EBCellFAB > &a_1, const LevelData< EBCellFAB > &a_2)
virtual void incr (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, Real a_scale)
virtual void axby (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, const LevelData< EBCellFAB > &a_y, Real a_a, Real a_b)
virtual void scale (LevelData< EBCellFAB > &a_lhs, const Real &a_scale)
virtual Real norm (const LevelData< EBCellFAB > &a_rhs, int a_ord)
virtual void setToZero (LevelData< EBCellFAB > &a_lhs)
virtual void setVal (LevelData< EBCellFAB > &a_lhs, const Real &a_value)
virtual void createCoarser (LevelData< EBCellFAB > &a_coarse, const LevelData< EBCellFAB > &a_fine, bool a_ghosted)
virtual void relax (LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations)
virtual void restrictResidual (LevelData< EBCellFAB > &a_resCoarse, LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_rhsFine)
virtual void prolongIncrement (LevelData< EBCellFAB > &a_phiThisLevel, const LevelData< EBCellFAB > &a_correctCoarse)
virtual int refToCoarser ()
virtual int refToFiner ()
virtual void AMRResidual (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
virtual void AMRResidualNF (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousBC)
virtual void AMROperator (LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
virtual void AMROperatorNF (LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, bool a_homogeneousBC)
virtual void AMRRestrict (LevelData< EBCellFAB > &a_resCoarse, const LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
virtual void AMRProlong (LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
virtual void AMRUpdateResidual (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)

Static Public Member Functions

static void getDivergenceStencil (VoFStencil &a_divStencil, const FaceIndex &a_face, const DataIndex &a_dit, const Real &a_dx, const EBLevelGrid &a_eblg)
static void getGradientStencil (VoFStencil &a_gradStencil, int a_ivar, int a_diffDir, const FaceIndex &a_face, const DataIndex &a_dit, const Real &a_dx, const EBLevelGrid &a_eblg)

Protected Member Functions

void incrOpRegularDir (EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const int &a_dir, const DataIndex &a_datInd)
void applyOpIrregular (EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const DataIndex &a_datInd)
void getFlux (FArrayBox &a_flux, const FArrayBox &a_phi, const FArrayBox &a_gradPhi, const Box &a_faceBox, const int &a_idir, const DataIndex &a_datInd)
void homogeneousCFInterp (EBCellFAB &a_phi, const DataIndex &a_datInd, const int &a_idir, const Side::LoHiSide &a_hiorlo)
void cfinterp (const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse)
void reflux (const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, LevelData< EBCellFAB > &residual, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
void homogeneousCFInterp (LevelData< EBCellFAB > &a_phi)
void defineStencils ()
void getVoFStencil (VoFStencil &a_vofStencil, const VolIndex &a_vof, const DataIndex &a_dit, int a_ivar)
void getFluxStencil (VoFStencil &a_fluxStencil, const FaceIndex &a_face, const DataIndex &a_dit, int a_ivar)
void getDivergenceStencil (VoFStencil &a_gradStencil, const FaceIndex &a_face, const DataIndex &a_dit)
void getGradientStencil (VoFStencil &a_gradStencil, int a_ivar, int a_diffDir, const FaceIndex &a_face, const DataIndex &a_dit)
void gsrbColor (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_lph, const LevelData< EBCellFAB > &a_rhs, const IntVect &a_color)
void getFaceCenteredFluxStencil (VoFStencil &a_fluxStencil, const FaceIndex &a_face, const DataIndex &a_dit, int a_ivar)
void cellGrad (EBCellFAB &a_gradPhi, const EBCellFAB &a_phi, const Box &a_grid, const DataIndex &a_datInd)
void incrementFRCoar (const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi)
void incrementFRFine (const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)

Protected Attributes

LayoutData< CFIVSm_loCFIVS [CH_SPACEDIM]
LayoutData< CFIVSm_hiCFIVS [CH_SPACEDIM]
EBLevelGrid m_eblgFine
EBLevelGrid m_eblg
EBLevelGrid m_eblgCoar
EBLevelGrid m_eblgCoarMG
Real m_alpha
Real m_beta
RefCountedPtr< LevelData
< EBCellFAB > > 
m_acoef
RefCountedPtr< LevelData
< EBFluxFAB > > 
m_eta
RefCountedPtr< LevelData
< EBFluxFAB > > 
m_lambda
RefCountedPtr< LevelData
< BaseIVFAB< Real > > > 
m_etaIrreg
RefCountedPtr< LevelData
< BaseIVFAB< Real > > > 
m_lambdaIrreg
EBFluxRegister m_fluxReg
Real m_dx
Real m_dxCoar
bool m_hasFine
bool m_hasCoar
int m_refToFine
int m_refToCoar
bool m_hasMGObjects
IntVect m_ghostCellsPhi
IntVect m_ghostCellsRHS
LayoutData< RefCountedPtr
< EBStencil > > 
m_stencil [CH_SPACEDIM]
LevelData< EBCellFABm_relCoef
LevelData< EBCellFABm_grad
LayoutData< VoFIteratorm_vofIter
LayoutData< VoFIteratorm_vofMult
LayoutData< VoFIteratorm_vofIterDomLo [CH_SPACEDIM]
LayoutData< VoFIteratorm_vofIterDomHi [CH_SPACEDIM]
RefCountedPtr< EBTensorCFInterpm_interpWithCoarser
EBMGAverage m_ebAverage
EBMGAverage m_ebAverageMG
EBMGInterp m_ebInterp
EBMGInterp m_ebInterpMG
RefCountedPtr
< ViscousBaseDomainBC
m_domainBC
RefCountedPtr< ViscousBaseEBBCm_ebBC
Vector< IntVectm_colors

Static Protected Attributes

static bool s_turnOffBCs

Private Member Functions

 EBViscousTensorOp ()
 weak construction is bad
 EBViscousTensorOp (const EBViscousTensorOp &a_opin)
void operator= (const EBViscousTensorOp &a_opin)

Constructor & Destructor Documentation

EBViscousTensorOp::EBViscousTensorOp ( const EBLevelGrid a_eblgFine,
const EBLevelGrid a_eblg,
const EBLevelGrid a_eblgCoar,
const EBLevelGrid a_eblgCoarMG,
const Real a_alpha,
const Real a_beta,
const RefCountedPtr< LevelData< EBCellFAB > > &  a_acoef,
const RefCountedPtr< LevelData< EBFluxFAB > > &  a_eta,
const RefCountedPtr< LevelData< EBFluxFAB > > &  a_lambda,
const RefCountedPtr< LevelData< BaseIVFAB< Real > > > &  a_etaIrreg,
const RefCountedPtr< LevelData< BaseIVFAB< Real > > > &  a_lambdaIrreg,
const Real a_dx,
const Real a_dxCoar,
const int &  a_refToFine,
const int &  a_refToCoar,
const RefCountedPtr< ViscousBaseDomainBC > &  a_domainBC,
const RefCountedPtr< ViscousBaseEBBC > &  a_ebBC,
const bool &  a_hasMGObjects,
const IntVect a_ghostCellsPhi,
const IntVect a_ghostCellsRHS 
)

virtual EBViscousTensorOp::~EBViscousTensorOp (  )  [virtual]

EBViscousTensorOp::EBViscousTensorOp (  )  [inline, private]

weak construction is bad

References MayDay::Error().

EBViscousTensorOp::EBViscousTensorOp ( const EBViscousTensorOp a_opin  )  [inline, private]

References MayDay::Error().


Member Function Documentation

virtual void EBViscousTensorOp::setAlphaAndBeta ( const Real a_alpha,
const Real a_beta 
) [inline, virtual]

for tga to reset stuff

Implements TGAHelmOp< LevelData< EBCellFAB > >.

References defineStencils(), m_alpha, and m_beta.

virtual void EBViscousTensorOp::diagonalScale ( LevelData< EBCellFAB > &  a_rhs  )  [inline, virtual]

virtual void EBViscousTensorOp::fillGrad ( const LevelData< EBCellFAB > &  a_phi  )  [virtual]

virtual void EBViscousTensorOp::getFlux ( EBFluxFAB a_flux,
const LevelData< EBCellFAB > &  a_data,
const Box a_grid,
const DataIndex a_dit,
Real  a_scale 
) [inline, virtual]

virtual void EBViscousTensorOp::applyOpNoBoundary ( LevelData< EBCellFAB > &  a_opPhi,
const LevelData< EBCellFAB > &  a_phi 
) [inline, virtual]

apply operator without any boundary or coarse-fine boundary conditions and no finer level

Implements TGAHelmOp< LevelData< EBCellFAB > >.

References applyOp(), and s_turnOffBCs.

void EBViscousTensorOp::AMRResidualNC ( LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs,
bool  a_homogeneousBC,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
) [virtual]

a_residual = a_rhs - L(a_phiFine, a_phi) no coaser AMR level

Implements AMRLevelOp< LevelData< EBCellFAB > >.

void EBViscousTensorOp::AMROperatorNC ( LevelData< EBCellFAB > &  a_LofPhi,
const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
bool  a_homogeneousBC,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
) [virtual]

apply AMR operator no coaser AMR level

Implements AMRLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::residual ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs,
bool  a_homogeneous = false 
) [virtual]

Say you are solving L(phi) = rhs. Make a_lhs = L(a_phi) - a_rhs. If a_homogeneous is true, evaluate the operator using homogeneous boundary conditions.

Implements LinearOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::preCond ( LevelData< EBCellFAB > &  a_cor,
const LevelData< EBCellFAB > &  a_residual 
) [virtual]

Given the current state of the residual the correction, apply your preconditioner to a_cor.

Implements LinearOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::applyOp ( LevelData< EBCellFAB > &  a_opPhi,
const LevelData< EBCellFAB > &  a_phi,
bool  a_homogeneousPhysBC 
) [virtual]

this is the linearop function. CFBC is set to homogeneous. phic is null

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by applyOpNoBoundary().

virtual void EBViscousTensorOp::create ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs 
) [virtual]

Creat data holder a_lhs that mirrors a_rhs. You do not need to copy the data of a_rhs, just make a holder the same size.

Implements LinearOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::createCoarsened ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs,
const int &  a_refRat 
) [virtual]

Real EBViscousTensorOp::AMRNorm ( const LevelData< EBCellFAB > &  a_coarResid,
const LevelData< EBCellFAB > &  a_fineResid,
const int &  a_refRat,
const int &  a_ord 
) [virtual]

virtual void EBViscousTensorOp::assign ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs 
) [virtual]

Set a_lhs equal to a_rhs.

Implements LinearOp< LevelData< EBCellFAB > >.

virtual Real EBViscousTensorOp::dotProduct ( const LevelData< EBCellFAB > &  a_1,
const LevelData< EBCellFAB > &  a_2 
) [virtual]

Compute and return the dot product of a_1 and a_2. In most contexts, this means return the sum over all data points of a_1*a_2.

Implements LinearOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::incr ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_x,
Real  a_scale 
) [virtual]

Increment by scaled amount (a_lhs += a_scale*a_x).

Implements LinearOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::axby ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_x,
const LevelData< EBCellFAB > &  a_y,
Real  a_a,
Real  a_b 
) [virtual]

Set input to a scaled sum (a_lhs = a_a*a_x + a_b*a_y).

Implements LinearOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::scale ( LevelData< EBCellFAB > &  a_lhs,
const Real a_scale 
) [virtual]

Multiply the input by a given scale (a_lhs *= a_scale).

Implements LinearOp< LevelData< EBCellFAB > >.

virtual Real EBViscousTensorOp::norm ( const LevelData< EBCellFAB > &  a_rhs,
int  a_ord 
) [virtual]

Return the norm of a_rhs. a_ord == 0 max norm, a_ord == 1 sum(abs(a_rhs)), else, L(a_ord) norm.

Implements LinearOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::setToZero ( LevelData< EBCellFAB > &  a_lhs  )  [virtual]

Set a_lhs to zero.

Implements LinearOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::setVal ( LevelData< EBCellFAB > &  a_lhs,
const Real a_value 
) [virtual]

virtual void EBViscousTensorOp::createCoarser ( LevelData< EBCellFAB > &  a_coarse,
const LevelData< EBCellFAB > &  a_fine,
bool  ghosted 
) [virtual]

Create a coarsened (by two) version of the input data. This does not include averaging the data. So if a_fine is over a Box of (0, 0, 0) (63, 63, 63), a_fine should be over a Box (0, 0, 0) (31, 31, 31).

Implements MGLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::relax ( LevelData< EBCellFAB > &  a_correction,
const LevelData< EBCellFAB > &  a_residual,
int  a_iterations 
) [virtual]

Use your relaxtion operator to remove the high frequency wave numbers from the correction so that it may be averaged to a coarser refinement. A point relaxtion scheme, for example takes the form a_correction -= lambda*(L(a_correction) - a_residual).

Implements MGLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::restrictResidual ( LevelData< EBCellFAB > &  a_resCoarse,
LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_rhsFine 
) [virtual]

Calculate restricted residual: a_resCoarse[2h] = I[h->2h] (a_rhsFine[h] - L[h](a_phiFine[h]))

Implements MGLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::prolongIncrement ( LevelData< EBCellFAB > &  a_phiThisLevel,
const LevelData< EBCellFAB > &  a_correctCoarse 
) [virtual]

Correct the fine solution based on coarse correction: a_phiThisLevel += I[2h->h] (a_correctCoarse)

Implements MGLevelOp< LevelData< EBCellFAB > >.

virtual int EBViscousTensorOp::refToCoarser (  )  [virtual]

Refinement ratio between this level and coarser level. Returns 1 when there are no coarser AMRLevelOp objects

Implements AMRLevelOp< LevelData< EBCellFAB > >.

virtual int EBViscousTensorOp::refToFiner (  )  [virtual]

Refinement ratio between this level and coarser level. Returns 1 when there are no coarser AMRLevelOp objects

virtual void EBViscousTensorOp::AMRResidual ( LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiCoarse,
const LevelData< EBCellFAB > &  a_rhs,
bool  a_homogeneousBC,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
) [virtual]

a_residual = a_rhs - L(a_phi, a_phiFine, a_phiCoarse)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::AMRResidualNF ( LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiCoarse,
const LevelData< EBCellFAB > &  a_rhs,
bool  a_homogeneousBC 
) [virtual]

a_residual = a_rhs - L(a_phi, a_phiCoarse)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::AMROperator ( LevelData< EBCellFAB > &  a_LofPhi,
const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiCoarse,
bool  a_homogeneousBC,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
) [virtual]

a_residual = a_rhs - L(a_phi, a_phiFine, a_phiCoarse)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::AMROperatorNF ( LevelData< EBCellFAB > &  a_LofPhi,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiCoarse,
bool  a_homogeneousBC 
) [virtual]

a_residual = a_rhs - L(a_phi, a_phiCoarse)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::AMRRestrict ( LevelData< EBCellFAB > &  a_resCoarse,
const LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_correction,
const LevelData< EBCellFAB > &  a_coarseCorrection 
) [virtual]

a_resCoarse = I[h-2h] (a_residual - L(a_correction, a_coarseCorrection))

Implements AMRLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::AMRProlong ( LevelData< EBCellFAB > &  a_correction,
const LevelData< EBCellFAB > &  a_coarseCorrection 
) [virtual]

a_correction += I[2h->h](a_coarseCorrection)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

virtual void EBViscousTensorOp::AMRUpdateResidual ( LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_correction,
const LevelData< EBCellFAB > &  a_coarseCorrection 
) [virtual]

a_residual = a_residual - L(a_correction, a_coarseCorrection)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

static void EBViscousTensorOp::getDivergenceStencil ( VoFStencil a_divStencil,
const FaceIndex a_face,
const DataIndex a_dit,
const Real a_dx,
const EBLevelGrid a_eblg 
) [static]

a_residual = a_residual - L(a_correction, a_coarseCorrection)

static void EBViscousTensorOp::getGradientStencil ( VoFStencil a_gradStencil,
int  a_ivar,
int  a_diffDir,
const FaceIndex a_face,
const DataIndex a_dit,
const Real a_dx,
const EBLevelGrid a_eblg 
) [static]

a_residual = a_residual - L(a_correction, a_coarseCorrection)

void EBViscousTensorOp::incrOpRegularDir ( EBCellFAB a_lhs,
const EBCellFAB a_phi,
const bool &  a_homogeneous,
const int &  a_dir,
const DataIndex a_datInd 
) [protected]

void EBViscousTensorOp::applyOpIrregular ( EBCellFAB a_lhs,
const EBCellFAB a_phi,
const bool &  a_homogeneous,
const DataIndex a_datInd 
) [protected]

void EBViscousTensorOp::getFlux ( FArrayBox a_flux,
const FArrayBox a_phi,
const FArrayBox a_gradPhi,
const Box a_faceBox,
const int &  a_idir,
const DataIndex a_datInd 
) [protected]

void EBViscousTensorOp::homogeneousCFInterp ( EBCellFAB a_phi,
const DataIndex a_datInd,
const int &  a_idir,
const Side::LoHiSide a_hiorlo 
) [protected]

void EBViscousTensorOp::cfinterp ( const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiCoarse 
) [protected]

void EBViscousTensorOp::reflux ( const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
LevelData< EBCellFAB > &  residual,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
) [protected]

void EBViscousTensorOp::homogeneousCFInterp ( LevelData< EBCellFAB > &  a_phi  )  [protected]

void EBViscousTensorOp::defineStencils (  )  [protected]

Referenced by setAlphaAndBeta().

void EBViscousTensorOp::getVoFStencil ( VoFStencil a_vofStencil,
const VolIndex a_vof,
const DataIndex a_dit,
int  a_ivar 
) [protected]

void EBViscousTensorOp::getFluxStencil ( VoFStencil a_fluxStencil,
const FaceIndex a_face,
const DataIndex a_dit,
int  a_ivar 
) [protected]

void EBViscousTensorOp::getDivergenceStencil ( VoFStencil a_gradStencil,
const FaceIndex a_face,
const DataIndex a_dit 
) [protected]

void EBViscousTensorOp::getGradientStencil ( VoFStencil a_gradStencil,
int  a_ivar,
int  a_diffDir,
const FaceIndex a_face,
const DataIndex a_dit 
) [protected]

void EBViscousTensorOp::gsrbColor ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_lph,
const LevelData< EBCellFAB > &  a_rhs,
const IntVect a_color 
) [protected]

void EBViscousTensorOp::getFaceCenteredFluxStencil ( VoFStencil a_fluxStencil,
const FaceIndex a_face,
const DataIndex a_dit,
int  a_ivar 
) [protected]

void EBViscousTensorOp::cellGrad ( EBCellFAB a_gradPhi,
const EBCellFAB a_phi,
const Box a_grid,
const DataIndex a_datInd 
) [protected]

void EBViscousTensorOp::incrementFRCoar ( const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi 
) [protected]

void EBViscousTensorOp::incrementFRFine ( const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
) [protected]

void EBViscousTensorOp::operator= ( const EBViscousTensorOp a_opin  )  [inline, private]

References MayDay::Error().


Member Data Documentation

bool EBViscousTensorOp::s_turnOffBCs [static, protected]

Referenced by applyOpNoBoundary().

LayoutData<CFIVS> EBViscousTensorOp::m_loCFIVS[CH_SPACEDIM] [protected]

LayoutData<CFIVS> EBViscousTensorOp::m_hiCFIVS[CH_SPACEDIM] [protected]

Referenced by diagonalScale(), and getFlux().

Referenced by setAlphaAndBeta().

Referenced by setAlphaAndBeta().

Referenced by diagonalScale().

bool EBViscousTensorOp::m_hasFine [protected]

bool EBViscousTensorOp::m_hasCoar [protected]

Referenced by getFlux().


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

Generated on Tue Apr 14 14:23:32 2009 for Chombo + EB by  doxygen 1.5.5