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

#include <AMRNodeOp.H>

Inheritance diagram for AMRNodeOp:
Inheritance graph
[legend]

Public Member Functions

 AMRNodeOp ()
 
virtual ~AMRNodeOp ()
 
LinearOp functions
void define (const DisjointBoxLayout &a_grids, const Real &a_dx, const ProblemDomain &a_domain, NodeBCFunc a_bc)
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_baseBAPtr, const Real &a_dxLevel, int a_refRatio, const ProblemDomain &a_domain, NodeBCFunc a_bc)
 
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, NodeBCFunc a_bc)
 
void define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_gridsFiner, const Real &a_dxLevel, int a_refRatio, int a_refRatioFiner, const ProblemDomain &a_domain, NodeBCFunc a_bc)
 
void projectFineInterior (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiFine)
 
virtual void residual (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs, bool a_homogeneous=false)
 
virtual void preCond (LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_residual)
 
virtual void applyOpOnly (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_phi)
 
virtual void applyOp (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_phi, bool a_homogeneous=false)
 
virtual void create (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs)
 
virtual void createCoarsened (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs, const int &a_refRat)
 
virtual void assign (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs)
 
virtual Real dotProduct (const LevelData< NodeFArrayBox > &a_1, const LevelData< NodeFArrayBox > &a_2)
 
virtual void incr (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_x, Real a_scale)
 
virtual void axby (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_x, const LevelData< NodeFArrayBox > &a_y, Real a, Real b)
 
virtual void scale (LevelData< NodeFArrayBox > &a_lhs, const Real &a_scale)
 
virtual Real norm (const LevelData< NodeFArrayBox > &a_x, int a_ord)
 
virtual void setToZero (LevelData< NodeFArrayBox > &a_x)
 
virtual void relax (LevelData< NodeFArrayBox > &a_e, const LevelData< NodeFArrayBox > &a_residual, int iterations)
 
virtual void createCoarser (LevelData< NodeFArrayBox > &a_coarse, const LevelData< NodeFArrayBox > &a_fine, bool ghosted)
 
virtual void restrictResidual (LevelData< NodeFArrayBox > &a_resCoarse, LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_rhsFine)
 
virtual void prolongIncrement (LevelData< NodeFArrayBox > &a_phiThisLevel, const LevelData< NodeFArrayBox > &a_correctCoarse)
 
virtual int refToCoarser ()
 
virtual void AMRResidual (LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, const LevelData< NodeFArrayBox > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< NodeFArrayBox > > *a_finerOp)
 
virtual void AMRResidualNC (LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< NodeFArrayBox > > *a_finerOp)
 
virtual void AMRResidualNF (LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, const LevelData< NodeFArrayBox > &a_rhs, bool a_homogeneousPhysBC)
 
virtual void AMROperator (LevelData< NodeFArrayBox > &a_LofPhi, const LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< NodeFArrayBox > > *a_finerOp)
 
virtual void AMROperatorNC (LevelData< NodeFArrayBox > &a_LofPhi, const LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phi, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< NodeFArrayBox > > *a_finerOp)
 
virtual void AMROperatorNF (LevelData< NodeFArrayBox > &a_LofPhi, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, bool a_homogeneousPhysBC)
 
virtual void AMRRestrict (LevelData< NodeFArrayBox > &a_resCoarse, const LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection, bool a_skip_res=false)
 
virtual void AMRProlong (LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection)
 
virtual void AMRUpdateResidual (LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection)
 
virtual Real AMRNorm (const LevelData< NodeFArrayBox > &a_coarseResid, const LevelData< NodeFArrayBox > &a_fineResid, const int &a_refRat, const int &a_ord)
 
- Public Member Functions inherited from AMRLevelOp< LevelData< NodeFArrayBox > >
virtual void dumpAMR (Vector< LevelData< NodeFArrayBox > * > &a_data, string name)
 
virtual void dumpLevel (LevelData< NodeFArrayBox > &a_data, string name)
 
 AMRLevelOp ()
 Constructor. More...
 
virtual void dumpStuff (Vector< LevelData< NodeFArrayBox > * > data, string filename)
 
virtual ~AMRLevelOp ()
 Destructor. More...
 
virtual void outputLevel (LevelData< NodeFArrayBox > &a_rhs, string &a_name)
 
virtual void outputAMR (Vector< LevelData< NodeFArrayBox > * > &a_rhs, string &a_name)
 
virtual void buildCopier (Copier &a_copier, const LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs)
 
virtual void assignCopier (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs, const Copier &a_copier)
 
virtual void zeroCovered (LevelData< NodeFArrayBox > &a_lhs, LevelData< NodeFArrayBox > &a_rhs, const Copier &a_copier)
 
virtual Real localMaxNorm (const LevelData< NodeFArrayBox > &a_phi)
 
virtual void AMRProlongS (LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection, LevelData< NodeFArrayBox > &a_temp, const Copier &a_copier)
 
virtual void AMRProlongS_2 (LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection, LevelData< NodeFArrayBox > &a_temp, const Copier &a_copier, const Copier &a_cornerCopier, const AMRLevelOp< LevelData< FArrayBox > > *a_crsOp)
 
virtual void AMRRestrictS (LevelData< NodeFArrayBox > &a_resCoarse, const LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection, LevelData< NodeFArrayBox > &scratch, bool a_skip_res=false)
 
virtual unsigned int orderOfAccuracy (void) const
 
virtual void enforceCFConsistency (LevelData< NodeFArrayBox > &a_coarseCorrection, const LevelData< NodeFArrayBox > &a_correction)
 This routine is for operators with orderOfAccuracy()>2. More...
 
- Public Member Functions inherited from MGLevelOp< LevelData< NodeFArrayBox > >
 MGLevelOp ()
 Constructor. More...
 
virtual ~MGLevelOp ()
 Destructor. More...
 
virtual void relaxNF (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarse, const LevelData< NodeFArrayBox > &a_rhs, int a_iterations)
 specialized no-fine relax function, useful for full-multigrid schemes, defaults to regular relax More...
 
virtual void restrictResidual (LevelData< NodeFArrayBox > &a_resCoarse, LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > *a_phiCoarse, const LevelData< NodeFArrayBox > &a_rhsFine, bool homogeneous)
 full-multigrid version of restrictResidual, useful for FAS-type schemes. Defaults to standard restriction More...
 
virtual void restrictR (LevelData< NodeFArrayBox > &a_phiCoarse, const LevelData< NodeFArrayBox > &a_phiFine)
 simple restriction function More...
 
void addObserver (MGLevelOpObserver< LevelData< NodeFArrayBox > > *a_observer)
 
virtual void applyOpMg (LevelData< NodeFArrayBox > &a_lhs, LevelData< NodeFArrayBox > &a_phi, LevelData< NodeFArrayBox > *a_phiCoarse, bool a_homogeneous)
 Apply an operator. More...
 
virtual void residualNF (LevelData< NodeFArrayBox > &a_lhs, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarse, const LevelData< NodeFArrayBox > &a_rhs, bool a_homogeneous=false)
 
void removeObserver (MGLevelOpObserver< LevelData< NodeFArrayBox > > *a_observer)
 
void addCoarserObserver (MGLevelOp< LevelData< NodeFArrayBox > > *a_operator, int a_coarseningFactor)
 
void notifyObserversOfChange ()
 This should be called whenever the operator's data is updated. More...
 
virtual void finerOperatorChanged (const MGLevelOp< LevelData< NodeFArrayBox > > &a_operator, int a_coarseningFactor)
 
int numObservers () const
 Returns the number of objects observing this operator. More...
 
- Public Member Functions inherited from LinearOp< LevelData< NodeFArrayBox > >
virtual ~LinearOp ()
 
virtual void clear (LevelData< NodeFArrayBox > &a_lhs)
 
virtual void assignLocal (LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs)
 
virtual void mDotProduct (const LevelData< NodeFArrayBox > &a_1, const int a_sz, const LevelData< NodeFArrayBox > a_2[], Real a_mdots[])
 
virtual Real dx () const
 
virtual void write (const LevelData< NodeFArrayBox > *a, const char *filename)
 
- Public Member Functions inherited from MGLevelOpObserver< LevelData< NodeFArrayBox > >
 MGLevelOpObserver ()
 Base level Constructor. Called by all subclasses. More...
 
virtual ~MGLevelOpObserver ()
 Destructor. More...
 
virtual void operatorChanged (const MGLevelOp< LevelData< NodeFArrayBox > > &a_operator)
 
void setObservee (MGLevelOp< LevelData< NodeFArrayBox > > *a_observee)
 
void clearObservee ()
 

Public Attributes

Real m_alpha
 
Real m_beta
 

Protected Member Functions

void prolongIncrement (LevelData< NodeFArrayBox > &a_phiThisLevel, const LevelData< NodeFArrayBox > &a_correctCoarse, int a_refRat)
 
void levelGSRB (LevelData< NodeFArrayBox > &a_e, const LevelData< NodeFArrayBox > &a_residual)
 
void homogeneousCFInterp (LevelData< NodeFArrayBox > &a_phif)
 
void homogeneousCFInterp (LevelData< NodeFArrayBox > &a_phif, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
 
void setCFIVS (const DisjointBoxLayout &a_grids)
 

Protected Attributes

ProblemDomain m_domainInteriorNodes
 
Real m_dx
 
Real m_dxCrse
 
ProblemDomain m_domain
 
NodeLevelDataOps m_levelOps
 
NodeBCFunc m_bc
 
LayoutData< NodeCFIVSm_loCFIVS [SpaceDim]
 
LayoutData< NodeCFIVSm_hiCFIVS [SpaceDim]
 
Copier m_exchangeCopier
 
NodeQCFI m_interpWithCoarser
 
NodeCoarseAverage m_averageOpMG
 
int m_refToCoarser
 
int m_refToFiner
 
DisjointBoxLayout m_coarsenedFineGrids
 
bool m_hasFiner
 
LayoutData< Vector< IntVectSet > > m_IVSV
 
LayoutData< BitSetm_IVSVfull
 
LayoutData< Vector< IntVectSet > > m_IVSVext
 
LayoutData< Vector< IntVectSet > > m_IVSVcoarsened
 
LayoutData< Vector< IntVectSet > > m_IVSVcoarsenedFine
 

Constructor & Destructor Documentation

◆ AMRNodeOp()

AMRNodeOp::AMRNodeOp ( )

◆ ~AMRNodeOp()

virtual AMRNodeOp::~AMRNodeOp ( )
inlinevirtual

Member Function Documentation

◆ define() [1/4]

void AMRNodeOp::define ( const DisjointBoxLayout a_grids,
const Real a_dx,
const ProblemDomain a_domain,
NodeBCFunc  a_bc 
)

◆ define() [2/4]

void AMRNodeOp::define ( const DisjointBoxLayout a_grids,
const DisjointBoxLayout a_baseBAPtr,
const Real a_dxLevel,
int  a_refRatio,
const ProblemDomain a_domain,
NodeBCFunc  a_bc 
)

define function for AMRLevelOp which has no finer AMR level

◆ define() [3/4]

void AMRNodeOp::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,
NodeBCFunc  a_bc 
)

full define function for AMRLevelOp with both coarser and finer levels

◆ define() [4/4]

void AMRNodeOp::define ( const DisjointBoxLayout a_grids,
const DisjointBoxLayout a_gridsFiner,
const Real a_dxLevel,
int  a_refRatio,
int  a_refRatioFiner,
const ProblemDomain a_domain,
NodeBCFunc  a_bc 
)

full define function for AMRLevelOp with finer levels, but no coarser

◆ projectFineInterior()

void AMRNodeOp::projectFineInterior ( LevelData< NodeFArrayBox > &  a_phi,
const LevelData< NodeFArrayBox > &  a_phiFine 
)

Referenced by ~AMRNodeOp().

◆ residual()

virtual void AMRNodeOp::residual ( LevelData< NodeFArrayBox > &  a_lhs,
const LevelData< NodeFArrayBox > &  a_phi,
const LevelData< NodeFArrayBox > &  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< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ preCond()

virtual void AMRNodeOp::preCond ( LevelData< NodeFArrayBox > &  a_cor,
const LevelData< NodeFArrayBox > &  a_residual 
)
virtual

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

Implements LinearOp< LevelData< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ applyOpOnly()

virtual void AMRNodeOp::applyOpOnly ( LevelData< NodeFArrayBox > &  a_lhs,
const LevelData< NodeFArrayBox > &  a_phi 
)
virtual

Referenced by ~AMRNodeOp().

◆ applyOp()

virtual void AMRNodeOp::applyOp ( LevelData< NodeFArrayBox > &  a_lhs,
const LevelData< NodeFArrayBox > &  a_phi,
bool  a_homogeneous = false 
)
virtual

In the context of solving L(phi) = rhs, set a_lhs = L(a_phi). If a_homogeneous is true, evaluate the operator using homogeneous boundary conditions.

Implements LinearOp< LevelData< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ create()

virtual void AMRNodeOp::create ( LevelData< NodeFArrayBox > &  a_lhs,
const LevelData< NodeFArrayBox > &  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< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ createCoarsened()

virtual void AMRNodeOp::createCoarsened ( LevelData< NodeFArrayBox > &  a_lhs,
const LevelData< NodeFArrayBox > &  a_rhs,
const int &  a_refRat 
)
virtual

◆ assign()

virtual void AMRNodeOp::assign ( LevelData< NodeFArrayBox > &  a_lhs,
const LevelData< NodeFArrayBox > &  a_rhs 
)
virtual

Set a_lhs equal to a_rhs.

Implements LinearOp< LevelData< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ dotProduct()

virtual Real AMRNodeOp::dotProduct ( const LevelData< NodeFArrayBox > &  a_1,
const LevelData< NodeFArrayBox > &  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< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ incr()

virtual void AMRNodeOp::incr ( LevelData< NodeFArrayBox > &  a_lhs,
const LevelData< NodeFArrayBox > &  a_x,
Real  a_scale 
)
virtual

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

Implements LinearOp< LevelData< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ axby()

virtual void AMRNodeOp::axby ( LevelData< NodeFArrayBox > &  a_lhs,
const LevelData< NodeFArrayBox > &  a_x,
const LevelData< NodeFArrayBox > &  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< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ scale()

virtual void AMRNodeOp::scale ( LevelData< NodeFArrayBox > &  a_lhs,
const Real a_scale 
)
virtual

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

Implements LinearOp< LevelData< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ norm()

virtual Real AMRNodeOp::norm ( const LevelData< NodeFArrayBox > &  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< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ setToZero()

virtual void AMRNodeOp::setToZero ( LevelData< NodeFArrayBox > &  a_lhs)
virtual

Set a_lhs to zero.

Implements LinearOp< LevelData< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ relax()

virtual void AMRNodeOp::relax ( LevelData< NodeFArrayBox > &  a_correction,
const LevelData< NodeFArrayBox > &  a_residual,
int  a_iterations 
)
virtual

Use your relaxation 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< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ createCoarser()

virtual void AMRNodeOp::createCoarser ( LevelData< NodeFArrayBox > &  a_coarse,
const LevelData< NodeFArrayBox > &  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< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ restrictResidual()

virtual void AMRNodeOp::restrictResidual ( LevelData< NodeFArrayBox > &  a_resCoarse,
LevelData< NodeFArrayBox > &  a_phiFine,
const LevelData< NodeFArrayBox > &  a_rhsFine 
)
virtual

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

Implements MGLevelOp< LevelData< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ prolongIncrement() [1/2]

virtual void AMRNodeOp::prolongIncrement ( LevelData< NodeFArrayBox > &  a_phiThisLevel,
const LevelData< NodeFArrayBox > &  a_correctCoarse 
)
virtual

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

Implements MGLevelOp< LevelData< NodeFArrayBox > >.

Referenced by ~AMRNodeOp().

◆ refToCoarser()

virtual int AMRNodeOp::refToCoarser ( )
inlinevirtual

return the refinement ratio to next coarser level. return 1 when there are no coarser AMRLevelOp objects.

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

References AMRNorm(), AMROperator(), AMROperatorNC(), AMROperatorNF(), AMRProlong(), AMRResidual(), AMRResidualNC(), AMRResidualNF(), AMRRestrict(), AMRUpdateResidual(), and m_refToCoarser.

◆ AMRResidual()

virtual void AMRNodeOp::AMRResidual ( LevelData< NodeFArrayBox > &  a_residual,
const LevelData< NodeFArrayBox > &  a_phiFine,
const LevelData< NodeFArrayBox > &  a_phi,
const LevelData< NodeFArrayBox > &  a_phiCoarse,
const LevelData< NodeFArrayBox > &  a_rhs,
bool  a_homogeneousPhysBC,
AMRLevelOp< LevelData< NodeFArrayBox > > *  a_finerOp 
)
virtual

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

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ AMRResidualNC()

virtual void AMRNodeOp::AMRResidualNC ( LevelData< NodeFArrayBox > &  a_residual,
const LevelData< NodeFArrayBox > &  a_phiFine,
const LevelData< NodeFArrayBox > &  a_phi,
const LevelData< NodeFArrayBox > &  a_rhs,
bool  a_homogeneousPhysBC,
AMRLevelOp< LevelData< NodeFArrayBox > > *  a_finerOp 
)
virtual

residual assuming no more coarser AMR levels

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ AMRResidualNF()

virtual void AMRNodeOp::AMRResidualNF ( LevelData< NodeFArrayBox > &  a_residual,
const LevelData< NodeFArrayBox > &  a_phi,
const LevelData< NodeFArrayBox > &  a_phiCoarse,
const LevelData< NodeFArrayBox > &  a_rhs,
bool  a_homogeneousPhysBC 
)
virtual

a_residual = a_rhs - L(a_phi, a_phiCoarse)

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ AMROperator()

virtual void AMRNodeOp::AMROperator ( LevelData< NodeFArrayBox > &  a_LofPhi,
const LevelData< NodeFArrayBox > &  a_phiFine,
const LevelData< NodeFArrayBox > &  a_phi,
const LevelData< NodeFArrayBox > &  a_phiCoarse,
bool  a_homogeneousPhysBC,
AMRLevelOp< LevelData< NodeFArrayBox > > *  a_finerOp 
)
virtual

apply AMR operator

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ AMROperatorNC()

virtual void AMRNodeOp::AMROperatorNC ( LevelData< NodeFArrayBox > &  a_LofPhi,
const LevelData< NodeFArrayBox > &  a_phiFine,
const LevelData< NodeFArrayBox > &  a_phi,
bool  a_homogeneousPhysBC,
AMRLevelOp< LevelData< NodeFArrayBox > > *  a_finerOp 
)
virtual

apply AMR operator, assuming no more coarser AMR levels

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ AMROperatorNF()

virtual void AMRNodeOp::AMROperatorNF ( LevelData< NodeFArrayBox > &  a_LofPhi,
const LevelData< NodeFArrayBox > &  a_phi,
const LevelData< NodeFArrayBox > &  a_phiCoarse,
bool  a_homogeneousPhysBC 
)
virtual

AMR operator, assuming no finer AMR levels

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ AMRRestrict()

virtual void AMRNodeOp::AMRRestrict ( LevelData< NodeFArrayBox > &  a_resCoarse,
const LevelData< NodeFArrayBox > &  a_residual,
const LevelData< NodeFArrayBox > &  a_correction,
const LevelData< NodeFArrayBox > &  a_coarseCorrection,
bool  a_skip_res = false 
)
virtual

a_resCoarse = I[h-2h]( a_residual - L(a_correction, a_coarseCorrection)) it is assumed that a_resCoarse has already been filled in with the coarse version of AMRResidualNF and that this operation is free to overwrite in the overlap regions.

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ AMRProlong()

virtual void AMRNodeOp::AMRProlong ( LevelData< NodeFArrayBox > &  a_correction,
const LevelData< NodeFArrayBox > &  a_coarseCorrection 
)
virtual

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

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ AMRUpdateResidual()

virtual void AMRNodeOp::AMRUpdateResidual ( LevelData< NodeFArrayBox > &  a_residual,
const LevelData< NodeFArrayBox > &  a_correction,
const LevelData< NodeFArrayBox > &  a_coarseCorrection 
)
virtual

a_residual = a_residual - L(a_correction, a_coarseCorrection)

Implements AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ AMRNorm()

virtual Real AMRNodeOp::AMRNorm ( const LevelData< NodeFArrayBox > &  a_coarseResid,
const LevelData< NodeFArrayBox > &  a_fineResid,
const int &  a_refRat,
const int &  a_ord 
)
virtual

compute norm over all cells on coarse not covered by finer

Reimplemented from AMRLevelOp< LevelData< NodeFArrayBox > >.

Referenced by refToCoarser().

◆ prolongIncrement() [2/2]

void AMRNodeOp::prolongIncrement ( LevelData< NodeFArrayBox > &  a_phiThisLevel,
const LevelData< NodeFArrayBox > &  a_correctCoarse,
int  a_refRat 
)
protected

◆ levelGSRB()

void AMRNodeOp::levelGSRB ( LevelData< NodeFArrayBox > &  a_e,
const LevelData< NodeFArrayBox > &  a_residual 
)
protected

◆ homogeneousCFInterp() [1/2]

void AMRNodeOp::homogeneousCFInterp ( LevelData< NodeFArrayBox > &  a_phif)
protected

◆ homogeneousCFInterp() [2/2]

void AMRNodeOp::homogeneousCFInterp ( LevelData< NodeFArrayBox > &  a_phif,
const DataIndex a_datInd,
int  a_idir,
Side::LoHiSide  a_hiorlo 
)
protected

◆ setCFIVS()

void AMRNodeOp::setCFIVS ( const DisjointBoxLayout a_grids)
protected

Member Data Documentation

◆ m_alpha

Real AMRNodeOp::m_alpha

◆ m_beta

Real AMRNodeOp::m_beta

◆ m_domainInteriorNodes

ProblemDomain AMRNodeOp::m_domainInteriorNodes
protected

◆ m_dx

Real AMRNodeOp::m_dx
protected

◆ m_dxCrse

Real AMRNodeOp::m_dxCrse
protected

◆ m_domain

ProblemDomain AMRNodeOp::m_domain
protected

◆ m_levelOps

NodeLevelDataOps AMRNodeOp::m_levelOps
protected

◆ m_bc

NodeBCFunc AMRNodeOp::m_bc
protected

◆ m_loCFIVS

LayoutData<NodeCFIVS> AMRNodeOp::m_loCFIVS[SpaceDim]
protected

◆ m_hiCFIVS

LayoutData<NodeCFIVS> AMRNodeOp::m_hiCFIVS[SpaceDim]
protected

◆ m_exchangeCopier

Copier AMRNodeOp::m_exchangeCopier
protected

◆ m_interpWithCoarser

NodeQCFI AMRNodeOp::m_interpWithCoarser
protected

◆ m_averageOpMG

NodeCoarseAverage AMRNodeOp::m_averageOpMG
protected

◆ m_refToCoarser

int AMRNodeOp::m_refToCoarser
protected

Referenced by refToCoarser().

◆ m_refToFiner

int AMRNodeOp::m_refToFiner
protected

◆ m_coarsenedFineGrids

DisjointBoxLayout AMRNodeOp::m_coarsenedFineGrids
protected

◆ m_hasFiner

bool AMRNodeOp::m_hasFiner
protected

◆ m_IVSV

LayoutData< Vector<IntVectSet> > AMRNodeOp::m_IVSV
protected

interior boundary nodes

◆ m_IVSVfull

LayoutData< BitSet > AMRNodeOp::m_IVSVfull
protected

whether each section of m_IVSV is a complete box

◆ m_IVSVext

LayoutData< Vector<IntVectSet> > AMRNodeOp::m_IVSVext
protected

◆ m_IVSVcoarsened

LayoutData< Vector<IntVectSet> > AMRNodeOp::m_IVSVcoarsened
protected

interior boundary nodes of the coarsened grids at this level

◆ m_IVSVcoarsenedFine

LayoutData< Vector<IntVectSet> > AMRNodeOp::m_IVSVcoarsenedFine
protected

interior boundary nodes of the coarsened grids at next finer level


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