#include <NodeLevelOp.H>
Inheritance diagram for NodeLevelOp:
NodeLevelOp is a pure base class to encapsulate level operations API for node-centered elliptic solvers. All elliptic operators used by AMRNodeSolver inherit the NodeLevelOp interface.
Public Member Functions | |
Constructors, destructor and defines | |
NodeLevelOp () | |
virtual NodeLevelOp * | new_levelop () const=0 |
virtual | ~NodeLevelOp () |
virtual void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, Real a_dx, int a_refToCoarse, const ProblemDomain &a_domain, bool a_homogeneousOnly=false, int a_ncomp=1, bool a_verbose=false)=0 |
virtual void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, Real a_dx, int a_refToCoarse, const Box &a_domain, bool a_homogeneousOnly=false, int a_ncomp=1, bool a_verbose=false)=0 |
virtual void | define (const NodeLevelOp *a_opfine, int a_refToFine)=0 |
Access functions | |
virtual bool | isDefined () const=0 |
Parameter-setting functions | |
virtual void | setVerbose (bool a_verbose) |
Coarse/fine interpolation functions | |
virtual void | CFInterp (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, bool a_inhomogeneous)=0 |
virtual void | homogeneousCFInterp (LevelData< NodeFArrayBox > &a_phi)=0 |
Evaluation of residual | |
virtual void | residualI (LevelData< NodeFArrayBox > &a_resid, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarsePtr, const LevelData< NodeFArrayBox > &a_rhs)=0 |
virtual void | residualH (LevelData< NodeFArrayBox > &a_resid, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs)=0 |
virtual void | residualIcfHphys (LevelData< NodeFArrayBox > &a_resid, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarsePtr, const LevelData< NodeFArrayBox > &a_rhs)=0 |
virtual void | residualHcfIphys (LevelData< NodeFArrayBox > &a_resid, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs)=0 |
Evaluation of operator | |
virtual void | applyOpI (LevelData< NodeFArrayBox > &a_LofPhi, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarsePtr)=0 |
virtual void | applyOpH (LevelData< NodeFArrayBox > &a_LofPhi, LevelData< NodeFArrayBox > &a_phi)=0 |
virtual void | applyOpIcfHphys (LevelData< NodeFArrayBox > &a_LofPhi, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarsePtr)=0 |
virtual void | applyOpHcfIphys (LevelData< NodeFArrayBox > &a_LofPhi, LevelData< NodeFArrayBox > &a_phi)=0 |
Evaluation of gradient | |
virtual void | gradient (LevelData< NodeFArrayBox > &a_gradPhi, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarsePtr)=0 |
Smoothing functions | |
virtual void | smooth (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs)=0 |
virtual void | levelPreconditioner (LevelData< NodeFArrayBox > &a_phihat, const LevelData< NodeFArrayBox > &a_rhshat)=0 |
virtual void | bottomSmoother (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs)=0 |
Public Attributes | |
ProblemDomain | m_domain |
LayoutData< Vector< IntVectSet > > | m_IVSVext |
bool | m_verbose |
|
Default constructor. User must subsequently call define(). |
|
Destructor. |
|
This gets around the "no virtual constructor" rule. Implemented in NodePoissonOp. |
|
Full define function. Makes all coarse/fine information and sets internal variables. The current level is taken to be the fine level.
Implemented in NodePoissonOp. |
|
Full define function. Makes all coarse/fine information and sets internal variables. The current level is taken to be the fine level.
Implemented in NodePoissonOp. |
|
Full define function, based on a coarsening of the finer NodeLevelOp. Coarse-level grids are not set because only homogeneous interpolation is used.
Implemented in NodePoissonOp. |
|
Returns Implemented in NodePoissonOp. |
|
Control output to stdout. Reimplemented in NodePoissonOp. |
|
Coarse / Fine (inhomogeneous) interpolation operator. Fill the nodes of a_phi on the coarse/fine interface with interpolated data from a_phiCoarse.
Implemented in NodePoissonOp. |
|
Homogeneous coarse/fine interpolation operator. Fill the nodes of a_phi on the coarse/fine interface with zeroes.
Implemented in NodePoissonOp. |
|
Evaluate residual of operator, The operator is evaluated on a_phi, after interpolating from *a_phiCoarsePtr at the coarse/fine boundary and applying the physical boundary conditions.
Implemented in NodePoissonOp. |
|
Evaluate residual of operator, The operator is evaluated on a_phi, after setting to zero at the coarse/fine boundary and applying homogeneous physical boundary conditions.
Implemented in NodePoissonOp. |
|
Evaluate residual of operator, The operator is evaluated on a_phi, after interpolating from *a_phiCoarsePtr at the coarse/fine boundary and applying homogeneous physical boundary conditions.
Implemented in NodePoissonOp. |
|
Evaluate residual of operator, The operator is evaluated on a_phi, after setting to zero at the coarse/fine boundary and applying the physical boundary conditions.
Implemented in NodePoissonOp. |
|
Evaluate operator, inhomogeneous coarse/fine boundary conditions, inhomogeneous physical boundary conditions. The operator is evaluated on a_phi after interpolating from *a_phiCoarsePtr at the coarse/fine boundary and applying the physical boundary conditions.
Implemented in NodePoissonOp. |
|
Evaluate operator, homogeneous coarse/fine boundary conditions, homogeneous physical boundary conditions. The operator is evaluated on a_phi, after setting to zero at the coarse/fine boundary and applying homogeneous physical boundary conditions.
Implemented in NodePoissonOp. |
|
Evaluate operator, inhomogeneous coarse/fine boundary conditions, homogeneous physical boundary conditions. The operator is evaluated on a_phi, after interpolating from *a_phiCoarsePtr at the coarse/fine boundary and applying homogeneous physical boundary conditions.
Implemented in NodePoissonOp. |
|
Evaluate operator, homogeneous coarse/fine boundary conditions, inhomogeneous physical boundary conditions. The operator is evaluated on a_phi, after setting to zero at the coarse/fine boundary and applying the physical boundary conditions.
Implemented in NodePoissonOp. |
|
Evaluate gradient, inhomogeneous coarse/fine boundary conditions, inhomogeneous physical boundary conditions. The gradient is evaluated on a_phi after interpolating from *a_phiCoarsePtr at the coarse/fine boundary and applying the physical boundary conditions.
Implemented in NodePoissonOp. |
|
Smoother. Assumes that problem has already been put in residual-correction form, so that coarse/fine boundary conditions are homogeneous.
Implemented in NodePoissonOp. |
|
Apply preconditioning to the solution on this level. Given a_rhshat, returns a_phihat from M(a_phihat) = a_rhshat .
Implemented in NodePoissonOp. |
|
Smoother at bottom level.
Implemented in NodePoissonOp. |
|
CELL-centered physical domain of current level |
|
exterior boundary nodes |
|
enable output to stdout if |