Chombo + EB + MF  3.2
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
VCAMRPoissonOp2 Class Reference

#include <VCAMRPoissonOp2.H>

Inheritance diagram for VCAMRPoissonOp2:
Inheritance graph
[legend]

Public Member Functions

void finerOperatorChanged (const MGLevelOp< LevelData< FArrayBox > > &a_operator, int a_coarseningFactor)
 
LevelData< FArrayBox > & identityCoef ()
 Returns identity coefficient data. More...
 
virtual void diagonalScale (LevelData< FArrayBox > &a_rhs, bool a_kappaWeighted)
 For TGA. More...
 
virtual void divideByIdentityCoef (LevelData< FArrayBox > &a_rhs)
 For TGA. More...
 
void setBCoefInterpolator (RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > &a_bCoefInterpolator)
 
LevelData< FluxBox > & BCoef ()
 Returns the B coefficient. More...
 
RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > BCoefInterpolator ()
 
void setTime (Real a_time)
 
virtual void getFlux (FluxBox &a_flux, const LevelData< FArrayBox > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale)
 
virtual void getFlux (FluxBox &a_flux, const LevelData< FArrayBox > &a_data, const FluxBox &a_bCoef, const Box &a_grid, const DataIndex &a_dit, Real a_scale)
 
VCAMRPoissonOp2 functions
 VCAMRPoissonOp2 ()
 
virtual ~VCAMRPoissonOp2 ()
 
virtual void residualI (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs, bool a_homogeneous=false)
 despite what you might think, the "I" here means "Ignore the coarse-fine boundary" More...
 
virtual void preCond (LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_residual)
 
virtual void applyOpI (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, bool a_homogeneous=false)
 despite what you might think, the "I" here means "Ignore the coarse-fine boundary" More...
 
virtual void applyOpNoBoundary (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi)
 
virtual void setAlphaAndBeta (const Real &a_alpha, const Real &a_beta)
 For tga stuff. More...
 
virtual void setCoefs (const RefCountedPtr< LevelData< FArrayBox > > &a_aCoef, const RefCountedPtr< LevelData< FluxBox > > &a_bCoef, const Real &a_alpha, const Real &a_beta)
 Also calls reset lambda. More...
 
virtual void resetLambda ()
 Should be called before the relaxation parameter is needed. More...
 
virtual void computeLambda ()
 Compute lambda once alpha, aCoef, beta, bCoef are defined. More...
 
virtual void reflux (const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_residual, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
MGLevelOp functions
virtual void restrictResidual (LevelData< FArrayBox > &a_resCoarse, LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_rhsFine)
 
- Public Member Functions inherited from AMRPoissonOp
virtual Real dx () const
 
 AMRPoissonOp ()
 
virtual ~AMRPoissonOp ()
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_gridsFiner, const DisjointBoxLayout &a_gridsCoarser, const Real &a_dxLevel, int a_refRatio, int a_refRatioFiner, const ProblemDomain &a_domain, BCHolder a_bc, const Copier &a_exchange, const CFRegion &a_cfregion, const int a_nComp=1)
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_gridsFiner, const Real &a_dxLevel, int a_refRatio, int a_refRatioFiner, const ProblemDomain &a_domain, BCHolder a_bc, const Copier &a_exchange, const CFRegion &a_cfregion, const int a_nComp=1)
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_baseBAPtr, const Real &a_dxLevel, int a_refRatio, const ProblemDomain &a_domain, BCHolder a_bc, const Copier &a_exchange, const CFRegion &a_cfregion, int a_numComp=1)
 
void define (const DisjointBoxLayout &a_grids, const Real &a_dx, const ProblemDomain &a_domain, BCHolder a_bc, const Copier &a_exchange, const CFRegion &a_cfregion)
 
void define (const DisjointBoxLayout &a_grids, const Real &a_dx, const ProblemDomain &a_domain, BCHolder a_bc)
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseBAPtr, Real a_dxLevel, int a_refRatio, const ProblemDomain &a_domain, BCHolder a_bc)
 Full define function that mimics the old PoissonOp. More...
 
virtual void residual (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs, bool a_homogeneous=false)
 
virtual void residualNF (LevelData< FArrayBox > &a_lhs, LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phiCoarse, const LevelData< FArrayBox > &a_rhs, bool a_homogeneous=false)
 Residual which uses coarse-level boundary conditions, but ignores finer levels. More...
 
virtual void applyOp (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, bool a_homogeneous=false)
 
virtual void create (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs)
 
virtual void createCoarsened (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs, const int &a_refRat)
 
virtual void assign (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs)
 
virtual void assignLocal (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs)
 
virtual void buildCopier (Copier &a_copier, const LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs)
 
virtual void assignCopier (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_rhs, const Copier &a_copier)
 
virtual void zeroCovered (LevelData< FArrayBox > &a_lhs, LevelData< FArrayBox > &a_rhs, const Copier &a_copier)
 
virtual Real dotProduct (const LevelData< FArrayBox > &a_1, const LevelData< FArrayBox > &a_2)
 
virtual void mDotProduct (const LevelData< FArrayBox > &a_1, const int a_sz, const LevelData< FArrayBox > a_2[], Real a_mdots[])
 
virtual void incr (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_x, Real a_scale)
 
virtual void axby (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_x, const LevelData< FArrayBox > &a_y, Real a_a, Real a_b)
 
virtual void scale (LevelData< FArrayBox > &a_lhs, const Real &a_scale)
 
virtual Real norm (const LevelData< FArrayBox > &a_x, int a_ord)
 
virtual Real localMaxNorm (const LevelData< FArrayBox > &a_x)
 
virtual void setToZero (LevelData< FArrayBox > &a_x)
 
virtual void relax (LevelData< FArrayBox > &a_e, const LevelData< FArrayBox > &a_residual, int a_iterations)
 
virtual void relaxNF (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phiCoarse, const LevelData< FArrayBox > &a_rhs, int a_iterations)
 Do CF interpolation then relax as normal. More...
 
virtual void createCoarser (LevelData< FArrayBox > &a_coarse, const LevelData< FArrayBox > &a_fine, bool a_ghosted)
 
virtual void prolongIncrement (LevelData< FArrayBox > &a_phiThisLevel, const LevelData< FArrayBox > &a_correctCoarse)
 
virtual int refToCoarser ()
 
virtual void AMRResidual (LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse, const LevelData< FArrayBox > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
virtual void AMRResidualNC (LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
virtual void AMRResidualNF (LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse, const LevelData< FArrayBox > &a_rhs, bool a_homogeneousPhysBC)
 
virtual void AMROperator (LevelData< FArrayBox > &a_LofPhi, const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse, bool a_homogeneousDomBC, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
virtual void AMROperatorNC (LevelData< FArrayBox > &a_LofPhi, const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, bool a_homogeneousBC, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
 
virtual void AMROperatorNF (LevelData< FArrayBox > &a_LofPhi, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse, bool a_homogeneousBC)
 
virtual void AMRRestrict (LevelData< FArrayBox > &a_resCoarse, const LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection, bool a_skip_res=false)
 
virtual void AMRRestrictS (LevelData< FArrayBox > &a_resCoarse, const LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection, LevelData< FArrayBox > &a_scratch, bool a_skip_res=false)
 
virtual void AMRProlong (LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection)
 
virtual void AMRProlongS (LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection, LevelData< FArrayBox > &a_temp, const Copier &a_copier)
 
virtual void AMRProlongS_2 (LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection, LevelData< FArrayBox > &a_temp, const Copier &a_copier, const Copier &a_cornerCopier, const AMRLevelOp< LevelData< FArrayBox > > *a_crsOp)
 
virtual void AMRUpdateResidual (LevelData< FArrayBox > &a_residual, const LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_coarseCorrection)
 
virtual Real AMRNorm (const LevelData< FArrayBox > &a_coarseResid, const LevelData< FArrayBox > &a_fineResid, const int &a_refRat, const int &a_ord)
 
virtual void setBC (const BCHolder &a_bc)
 Change boundary conditions. More...
 
virtual void fillGrad (const LevelData< FArrayBox > &a_phi)
 These functions are part of the LevelTGA interface...... More...
 
virtual void write (const LevelData< FArrayBox > *a_data, const char *a_filename)
 
- Public Member Functions inherited from LevelTGAHelmOp< LevelData< FArrayBox >, FluxBox >
 LevelTGAHelmOp ()
 
 LevelTGAHelmOp (bool a_isTimeIndependent)
 
virtual ~LevelTGAHelmOp ()
 Destructor. More...
 
- Public Member Functions inherited from TGAHelmOp< LevelData< FArrayBox > >
 TGAHelmOp ()
 
 TGAHelmOp (bool a_isTimeDependent)
 
virtual ~TGAHelmOp ()
 Destructor. More...
 
virtual void diagonalScale (LevelData< FArrayBox > &a_rhs)
 
virtual void kappaScale (LevelData< FArrayBox > &a_rhs)
 for eb only. kappa weight the rhs but do not multiply by the identity coefficient More...
 
virtual void setTime (Real a_oldTime, Real a_mu, Real a_dt)
 
bool isTimeDependent () const
 Returns true if the operator is time-dependent, false otherwise. More...
 
- Public Member Functions inherited from AMRLevelOp< LevelData< FArrayBox > >
virtual void dumpAMR (Vector< LevelData< FArrayBox > * > &a_data, string name)
 
virtual void dumpLevel (LevelData< FArrayBox > &a_data, string name)
 
 AMRLevelOp ()
 Constructor. More...
 
virtual void dumpStuff (Vector< LevelData< FArrayBox > * > data, string filename)
 
virtual ~AMRLevelOp ()
 Destructor. More...
 
virtual void outputLevel (LevelData< FArrayBox > &a_rhs, string &a_name)
 
virtual void outputAMR (Vector< LevelData< FArrayBox > * > &a_rhs, string &a_name)
 
virtual unsigned int orderOfAccuracy (void) const
 
virtual void enforceCFConsistency (LevelData< FArrayBox > &a_coarseCorrection, const LevelData< FArrayBox > &a_correction)
 This routine is for operators with orderOfAccuracy()>2. More...
 
- Public Member Functions inherited from MGLevelOp< LevelData< FArrayBox > >
 MGLevelOp ()
 Constructor. More...
 
virtual ~MGLevelOp ()
 Destructor. More...
 
virtual void restrictResidual (LevelData< FArrayBox > &a_resCoarse, LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > *a_phiCoarse, const LevelData< FArrayBox > &a_rhsFine, bool homogeneous)
 full-multigrid version of restrictResidual, useful for FAS-type schemes. Defaults to standard restriction More...
 
virtual void restrictR (LevelData< FArrayBox > &a_phiCoarse, const LevelData< FArrayBox > &a_phiFine)
 simple restriction function More...
 
void addObserver (MGLevelOpObserver< LevelData< FArrayBox > > *a_observer)
 
virtual void applyOpMg (LevelData< FArrayBox > &a_lhs, LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > *a_phiCoarse, bool a_homogeneous)
 Apply an operator. More...
 
void removeObserver (MGLevelOpObserver< LevelData< FArrayBox > > *a_observer)
 
void addCoarserObserver (MGLevelOp< LevelData< FArrayBox > > *a_operator, int a_coarseningFactor)
 
void notifyObserversOfChange ()
 This should be called whenever the operator's data is updated. More...
 
int numObservers () const
 Returns the number of objects observing this operator. More...
 
- Public Member Functions inherited from LinearOp< LevelData< FArrayBox > >
virtual ~LinearOp ()
 
virtual void clear (LevelData< FArrayBox > &a_lhs)
 
- Public Member Functions inherited from MGLevelOpObserver< LevelData< FArrayBox > >
 MGLevelOpObserver ()
 Base level Constructor. Called by all subclasses. More...
 
virtual ~MGLevelOpObserver ()
 Destructor. More...
 
virtual void operatorChanged (const MGLevelOp< LevelData< FArrayBox > > &a_operator)
 
void setObservee (MGLevelOp< LevelData< FArrayBox > > *a_observee)
 
void clearObservee ()
 

Public Attributes

RefCountedPtr< LevelData< FArrayBox > > m_aCoef
 Identity operator spatially varying coefficient storage (cell-centered) — if you change this call resetLambda() More...
 
RefCountedPtr< LevelData< FluxBox > > m_bCoef
 Laplacian operator spatially varying coefficient storage (face-centered) — if you change this call resetLambda() More...
 
LevelData< FArrayBoxm_lambda
 Reciprocal of the diagonal entry of the operator matrix. More...
 
- Public Attributes inherited from AMRPoissonOp
Real m_alpha
 public constants More...
 
Real m_beta
 
Real m_aCoef
 
Real m_bCoef
 
Real m_dxCrse
 
Vector< IntVectm_colors
 

Protected Member Functions

virtual void levelGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 
virtual void levelMultiColor (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 
virtual void looseGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 
virtual void overlapGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 
virtual void levelGSRBLazy (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 
virtual void levelJacobi (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 
virtual void getFlux (FArrayBox &a_flux, const FArrayBox &a_data, const FluxBox &a_bCoef, const Box &a_facebox, int a_dir, int a_ref=1) const
 computes flux over face-centered a_facebox. More...
 
- Protected Member Functions inherited from AMRPoissonOp
virtual void homogeneousCFInterp (LevelData< FArrayBox > &a_phif)
 
virtual void homogeneousCFInterp (LevelData< FArrayBox > &a_phif, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
 
virtual void singleBoxCFInterp (FArrayBox &a_phi)
 
virtual void interpOnIVSHomo (LevelData< FArrayBox > &a_phif, const DataIndex &a_datInd, const int a_idir, const Side::LoHiSide a_hiorlo, const IntVectSet &a_interpIVS)
 
virtual void getFlux (FArrayBox &a_flux, const FArrayBox &a_data, const Box &a_edgebox, int a_dir, int a_ref=1) const
 
virtual void getFlux (FArrayBox &a_flux, const FArrayBox &a_data, int a_dir, int a_ref=1) const
 

Protected Attributes

LayoutData< CFIVSm_loCFIVS [SpaceDim]
 
LayoutData< CFIVSm_hiCFIVS [SpaceDim]
 
RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > m_bCoefInterpolator
 
Real m_time
 
bool m_lambdaNeedsResetting
 
- Protected Attributes inherited from AMRPoissonOp
Real m_dx
 
ProblemDomain m_domain
 
LevelDataOps< FArrayBoxm_levelOps
 
BCHolder m_bc
 
CFRegion m_cfregion
 
Copier m_exchangeCopier
 
QuadCFInterp m_interpWithCoarser
 
LevelFluxRegister m_levfluxreg
 
DisjointBoxLayout m_coarsenedMGrids
 
int m_refToCoarser
 
int m_refToFiner
 

Additional Inherited Members

- Static Public Attributes inherited from AMRPoissonOp
static int s_exchangeMode
 
static int s_relaxMode
 
static int s_maxCoarse
 
static int s_prolongType
 

Detailed Description

Operator for solving variable-coefficient (alpha * aCoef(x) * I - beta * Div(bCoef(x) . Grad)) phi = rho over an AMR hierarchy.

Constructor & Destructor Documentation

◆ VCAMRPoissonOp2()

VCAMRPoissonOp2::VCAMRPoissonOp2 ( )
inline

◆ ~VCAMRPoissonOp2()

virtual VCAMRPoissonOp2::~VCAMRPoissonOp2 ( )
inlinevirtual

Member Function Documentation

◆ residualI()

virtual void VCAMRPoissonOp2::residualI ( LevelData< FArrayBox > &  a_lhs,
const LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_rhs,
bool  a_homogeneous = false 
)
virtual

despite what you might think, the "I" here means "Ignore the coarse-fine boundary"

Reimplemented from AMRPoissonOp.

Referenced by ~VCAMRPoissonOp2().

◆ preCond()

virtual void VCAMRPoissonOp2::preCond ( LevelData< FArrayBox > &  a_cor,
const LevelData< FArrayBox > &  a_residual 
)
virtual

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

Reimplemented from AMRPoissonOp.

Referenced by ~VCAMRPoissonOp2().

◆ applyOpI()

virtual void VCAMRPoissonOp2::applyOpI ( LevelData< FArrayBox > &  a_lhs,
const LevelData< FArrayBox > &  a_phi,
bool  a_homogeneous = false 
)
virtual

despite what you might think, the "I" here means "Ignore the coarse-fine boundary"

Reimplemented from AMRPoissonOp.

Referenced by ~VCAMRPoissonOp2().

◆ applyOpNoBoundary()

virtual void VCAMRPoissonOp2::applyOpNoBoundary ( LevelData< FArrayBox > &  a_ans,
const LevelData< FArrayBox > &  a_phi 
)
virtual

Apply the differential operator without any boundary or coarse-fine boundary conditions and no finer level

Parameters
a_ansThe result of the application of the operator to a_phi.
a_phiThe data to which the operator is applied.

Reimplemented from AMRPoissonOp.

Referenced by ~VCAMRPoissonOp2().

◆ restrictResidual()

virtual void VCAMRPoissonOp2::restrictResidual ( LevelData< FArrayBox > &  a_resCoarse,
LevelData< FArrayBox > &  a_phiFine,
const LevelData< FArrayBox > &  a_rhsFine 
)
virtual

calculate restricted residual a_resCoarse[2h] = I[h->2h] (rhsFine[h] - L[h](phiFine[h])

Reimplemented from AMRPoissonOp.

Referenced by ~VCAMRPoissonOp2().

◆ setAlphaAndBeta()

virtual void VCAMRPoissonOp2::setAlphaAndBeta ( const Real a_alpha,
const Real a_beta 
)
virtual

For tga stuff.

Reimplemented from AMRPoissonOp.

Referenced by ~VCAMRPoissonOp2().

◆ setCoefs()

virtual void VCAMRPoissonOp2::setCoefs ( const RefCountedPtr< LevelData< FArrayBox > > &  a_aCoef,
const RefCountedPtr< LevelData< FluxBox > > &  a_bCoef,
const Real a_alpha,
const Real a_beta 
)
virtual

Also calls reset lambda.

Referenced by ~VCAMRPoissonOp2().

◆ resetLambda()

virtual void VCAMRPoissonOp2::resetLambda ( )
virtual

Should be called before the relaxation parameter is needed.

Referenced by ~VCAMRPoissonOp2().

◆ computeLambda()

virtual void VCAMRPoissonOp2::computeLambda ( )
virtual

Compute lambda once alpha, aCoef, beta, bCoef are defined.

Referenced by ~VCAMRPoissonOp2().

◆ reflux()

virtual void VCAMRPoissonOp2::reflux ( const LevelData< FArrayBox > &  a_phiFine,
const LevelData< FArrayBox > &  a_phi,
LevelData< FArrayBox > &  a_residual,
AMRLevelOp< LevelData< FArrayBox > > *  a_finerOp 
)
virtual

Reimplemented from AMRPoissonOp.

Referenced by ~VCAMRPoissonOp2().

◆ finerOperatorChanged()

void VCAMRPoissonOp2::finerOperatorChanged ( const MGLevelOp< LevelData< FArrayBox > > &  a_operator,
int  a_coarseningFactor 
)
virtual

This is called on multigrid operators when their AMR operators are altered.

Reimplemented from MGLevelOp< LevelData< FArrayBox > >.

Referenced by ~VCAMRPoissonOp2().

◆ identityCoef()

LevelData<FArrayBox>& VCAMRPoissonOp2::identityCoef ( )
inlinevirtual

Returns identity coefficient data.

Reimplemented from TGAHelmOp< LevelData< FArrayBox > >.

References m_aCoef.

◆ diagonalScale()

virtual void VCAMRPoissonOp2::diagonalScale ( LevelData< FArrayBox > &  a_rhs,
bool  a_kappaWeighted 
)
inlinevirtual

◆ divideByIdentityCoef()

virtual void VCAMRPoissonOp2::divideByIdentityCoef ( LevelData< FArrayBox > &  a_rhs)
inlinevirtual

◆ setBCoefInterpolator()

void VCAMRPoissonOp2::setBCoefInterpolator ( RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > &  a_bCoefInterpolator)
inline

Sets up a model that modifies b coefficient data when the operator's time is set.

Parameters
a_bCoefInterpolatorA CoefficientInterpolator that will be used to compute the b coefficient at specific times.

References m_bCoefInterpolator.

◆ BCoef()

LevelData<FluxBox>& VCAMRPoissonOp2::BCoef ( )
inline

Returns the B coefficient.

References m_bCoef.

◆ BCoefInterpolator()

RefCountedPtr<CoefficientInterpolator<LevelData<FluxBox>, LevelData<FArrayBox> > > VCAMRPoissonOp2::BCoefInterpolator ( )
inline

References m_bCoefInterpolator, and setTime().

◆ setTime()

void VCAMRPoissonOp2::setTime ( Real  a_time)
virtual

Sets the time centering of the operator. This interpolates b coefficient data at the given time if an interpolator is set.

Reimplemented from TGAHelmOp< LevelData< FArrayBox > >.

Referenced by BCoefInterpolator().

◆ getFlux() [1/3]

virtual void VCAMRPoissonOp2::getFlux ( FluxBox a_flux,
const LevelData< FArrayBox > &  a_data,
const Box a_grid,
const DataIndex a_dit,
Real  a_scale 
)
inlinevirtual

assumes we want to use member-data bCoef, then calls second getFlux function

Reimplemented from AMRPoissonOp.

Referenced by getFlux().

◆ getFlux() [2/3]

virtual void VCAMRPoissonOp2::getFlux ( FluxBox a_flux,
const LevelData< FArrayBox > &  a_data,
const FluxBox a_bCoef,
const Box a_grid,
const DataIndex a_dit,
Real  a_scale 
)
inlinevirtual

◆ levelGSRB()

virtual void VCAMRPoissonOp2::levelGSRB ( LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_rhs 
)
protectedvirtual

Reimplemented from AMRPoissonOp.

◆ levelMultiColor()

virtual void VCAMRPoissonOp2::levelMultiColor ( LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_rhs 
)
protectedvirtual

Reimplemented from AMRPoissonOp.

◆ looseGSRB()

virtual void VCAMRPoissonOp2::looseGSRB ( LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_rhs 
)
protectedvirtual

Reimplemented from AMRPoissonOp.

◆ overlapGSRB()

virtual void VCAMRPoissonOp2::overlapGSRB ( LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_rhs 
)
protectedvirtual

Reimplemented from AMRPoissonOp.

◆ levelGSRBLazy()

virtual void VCAMRPoissonOp2::levelGSRBLazy ( LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_rhs 
)
protectedvirtual

Reimplemented from AMRPoissonOp.

◆ levelJacobi()

virtual void VCAMRPoissonOp2::levelJacobi ( LevelData< FArrayBox > &  a_phi,
const LevelData< FArrayBox > &  a_rhs 
)
protectedvirtual

Reimplemented from AMRPoissonOp.

◆ getFlux() [3/3]

virtual void VCAMRPoissonOp2::getFlux ( FArrayBox a_flux,
const FArrayBox a_data,
const FluxBox a_bCoef,
const Box a_facebox,
int  a_dir,
int  a_ref = 1 
) const
protectedvirtual

computes flux over face-centered a_facebox.

Member Data Documentation

◆ m_aCoef

RefCountedPtr<LevelData<FArrayBox> > VCAMRPoissonOp2::m_aCoef

Identity operator spatially varying coefficient storage (cell-centered) — if you change this call resetLambda()

Referenced by diagonalScale(), divideByIdentityCoef(), and identityCoef().

◆ m_bCoef

RefCountedPtr<LevelData<FluxBox> > VCAMRPoissonOp2::m_bCoef

Laplacian operator spatially varying coefficient storage (face-centered) — if you change this call resetLambda()

Referenced by BCoef().

◆ m_lambda

LevelData<FArrayBox> VCAMRPoissonOp2::m_lambda

Reciprocal of the diagonal entry of the operator matrix.

◆ m_loCFIVS

LayoutData<CFIVS> VCAMRPoissonOp2::m_loCFIVS[SpaceDim]
protected

◆ m_hiCFIVS

LayoutData<CFIVS> VCAMRPoissonOp2::m_hiCFIVS[SpaceDim]
protected

◆ m_bCoefInterpolator

RefCountedPtr<CoefficientInterpolator<LevelData<FluxBox>, LevelData<FArrayBox> > > VCAMRPoissonOp2::m_bCoefInterpolator
protected

◆ m_time

Real VCAMRPoissonOp2::m_time
protected

◆ m_lambdaNeedsResetting

bool VCAMRPoissonOp2::m_lambdaNeedsResetting
protected

Referenced by VCAMRPoissonOp2().


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