#include <NodeMaskPoissonOp.H>
Inheritance diagram for NodeMaskPoissonOp:
Public Methods | |
NodeMaskPoissonOp () | |
{\bf constructors, destructor and defines} | |
virtual NodeMaskLevelOp * | new_levelop () const |
~NodeMaskPoissonOp () | |
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) |
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) |
void | define (const NodeMaskLevelOp *a_opfine, int a_refToFine) |
virtual bool | isDefined () const |
void | setBottomSmoother (const NodeMaskBaseBottomSmoother &a_bottomSmoother) |
void | CFInterp (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, bool a_inhomogeneous) |
{\bf data modification functions} | |
void | homogeneousCFInterp (LevelData< NodeFArrayBox > &a_phi) |
void | smooth (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs) |
void | applyOpI (LevelData< NodeFArrayBox > &a_LofPhi, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarsePtr) |
void | applyOpH (LevelData< NodeFArrayBox > &a_LofPhi, LevelData< NodeFArrayBox > &a_phi) |
void | applyOpIcfHphys (LevelData< NodeFArrayBox > &a_LofPhi, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarsePtr) |
void | applyOpHcfIphys (LevelData< NodeFArrayBox > &a_LofPhi, LevelData< NodeFArrayBox > &a_phi) |
void | bottomSmoother (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs) |
virtual void | levelPreconditioner (LevelData< NodeFArrayBox > &a_phihat, const LevelData< NodeFArrayBox > &a_rhshat) |
void | setDomainNodeBC (const DomainNodeBC &a_dombcin) |
void | setInterpolationDegree (int a_interpolationDegree) |
void | residualI (LevelData< NodeFArrayBox > &a_resid, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarsePtr, const LevelData< NodeFArrayBox > &a_rhs) |
void | residualH (LevelData< NodeFArrayBox > &a_resid, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs) |
void | residualHcfIphys (LevelData< NodeFArrayBox > &a_resid, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs) |
void | residualIcfHphys (LevelData< NodeFArrayBox > &a_resid, LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarsePtr, const LevelData< NodeFArrayBox > &a_rhs) |
Protected Attributes | |
DomainNodeBC | m_dombc |
int | m_interpolationDegree |
ProblemDomain | m_domainInteriorNodes |
DisjointBoxLayout | m_grids |
BoxLayout | m_gridsNodes |
DisjointBoxLayout | m_gridsCoarse |
int | m_ncomp |
int | m_refToCoarse |
Real | m_dx |
Real | m_dxCoarse |
bool | m_isDefined |
bool | m_isBCDefined |
bool | m_ihcfiEnabled |
LayoutData< NodeCFIVS > | m_loCFIVS [SpaceDim] |
LayoutData< NodeCFIVS > | m_hiCFIVS [SpaceDim] |
NodeQuadCFInterp | m_qcfi |
NodeMaskBaseBottomSmoother * | m_bottomSmootherPtr |
LayoutData< Vector< IntVectSet > > | m_IVSV |
BoxLayoutData< BaseFab< int > > | m_mask |
BoxLayoutData< BaseFab< Real > > | m_coeffs |
This class contains stuff to solve div (grad phi) = rhs.
|
{\bf constructors, destructor and defines} Default constructor. User must subsequently call define(). |
|
Destructor. |
|
Evaluate Operator, homogeneous C/F boundary conditions. homogeneous phys boundary conditions. \ The operator is evaluated on a_phi, after setting to zero at the coarse/fine boundary and applying homogeneous physical boundary conditions. {\bf Arguments:}\ a_LofPhi (modified): the value of the operator, at interior nodes.\ a_phi (modified): the data at this level.\ Implements NodeMaskLevelOp. |
|
Evaluate Operator, homogeneous C/F boundary conditions. inhomogeneous phys boundary conditions. \ The operator is evaluated on a_phi, after setting to zero at the coarse/fine boundary and applying the physical boundary conditions. {\bf Arguments:}\ a_LofPhi (modified): the value of the operator, at interior nodes.\ a_phi (modified): the data at this level.\ Implements NodeMaskLevelOp. |
|
Evaluate Operator, inhomogeneous C/F boundary conditions, inhomogeneous phys 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. {\bf Arguments:}\ a_LofPhi (modified): the value of the operator, at interior nodes.\ a_phi (modified): the data at this level. Interpolated from a_phiCoarsePtr at coarse/fine boundary.\ a_phiCoarsePtr (not modified): pointer to data at next coarser level.\ Implements NodeMaskLevelOp. |
|
Evaluate Operator, inhomogeneous C/F boundary conditions, homogeneous phys 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. {\bf Arguments:}\ a_LofPhi (modified): the value of the operator, at interior nodes.\ a_phi (modified): the data at this level. Interpolated from a_phiCoarsePtr at coarse/fine boundary.\ a_phiCoarsePtr (not modified): pointer to data at next coarser level.\ Implements NodeMaskLevelOp. |
|
This does a GSRB Pre/Conditioned BiCGStab on a level for the bottom solver. {\bf Arguments:}\ a_phi (modified): the data at this level.\ a_rhs (not modified): right-hand side.\ Implements NodeMaskLevelOp. |
|
{\bf data modification functions} Coarse / Fine (inhomogeneous) interpolation operator. Fill the nodes of a_phi on the coarse/fine interface with interpolated data from a_phiCoarse. {\bf Arguments:}\ a_phi (modified): the data at this level.\ a_phiCoarse (not modified): the data at the next coarser level.\ a_inhomogeneous (not modified): inhomogeneous physical boundary condition?\ Implements NodeMaskLevelOp. |
|
Full define function, based on a coarsening of the finer NodeMaskLevelOp. Coarse-level grids are not set because only homogeneous interpolation is used. {\bf Arguments:}\ a_opfine: pointer to NodeMaskLevelOp at next finer level.\ a_refToFine: refinement ratio between a_opfine's and this level.\ Implements NodeMaskLevelOp. |
|
Implements NodeMaskLevelOp. |
|
Full define function. Makes all coarse-fine information and sets internal variables. The current level is taken to be the fine level. {\bf Arguments:}\ a_grids: domain of this level.\ a_gridsCoarsePtr: pointer to next coarser level domain, or NULL if none.\ a_dx: mesh spacing at this level.\ a_refToCoarse: refinement ratio between this and next coarser level.\ a_domain: physical domain at this level.\ a_homogeneousOnly: only homogeneous coarse-fine interpolation?\ a_ncomp: number of components.\ Implements NodeMaskLevelOp. |
|
Homogeneous coarse/fine interpolation operator. Fill the nodes of a_phi on the coarse/fine interface with zeroes. {\bf Arguments:}\ a_phi (modified): the data at this level.\ Implements NodeMaskLevelOp. |
|
Returns true if this object was created with the defining constructor or if define() has been called. Implements NodeMaskLevelOp. |
|
apply preconditioning to the solution on this level. Given rhshat, returns phihat from M(phihat) = rhshat {\bf Arguments:}\ a_phihat (modified): the data at this level.\ a_rhshat (not modified): right-hand side.\ Implements NodeMaskLevelOp. |
|
Virtual constructor workaround. Sets these to be the same as this:\
Implements NodeMaskLevelOp. |
|
Evaluate residual of operator, a_resid = a_rhs - operator \ with homogeneous C/F boundary conditions. homogeneous phys boundary conditions. \ The operator is evaluated on a_phi, after setting to zero at the coarse/fine boundary and applying homogeneous physical boundary conditions. {\bf Arguments:}\ a_resid (modified): the residual, at interior nodes.\ a_phi (modified): the data at this level.\ a_rhs (not modified): right-hand side.\ Implements NodeMaskLevelOp. |
|
Evaluate residual of operator, a_resid = a_rhs - operator \ with homogeneous C/F boundary conditions, inhomogeneous phys boundary conditions. \ The operator is evaluated on a_phi, after setting to zero at the coarse/fine boundary and applying the physical boundary conditions. {\bf Arguments:}\ a_resid (modified): the residual, at interior nodes.\ a_phi (modified): the data at this level.\ a_rhs (not modified): right-hand side.\ Implements NodeMaskLevelOp. |
|
Evaluate residual of operator, a_resid = a_rhs - operator \ with inhomogeneous C/F boundary conditions, inhomogeneous phys 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. {\bf Arguments:}\ a_resid (modified): the residual, at interior nodes.\ a_phi (modified): the data at this level. Interpolated from a_phiCoarsePtr at coarse/fine boundary.\ a_phiCoarsePtr (not modified): pointer to data at next coarser level.\ a_rhs (not modified): right-hand side.\ Implements NodeMaskLevelOp. |
|
Evaluate residual of operator, a_resid = a_rhs - operator \ with inhomogeneous C/F boundary conditions, homogeneous phys 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. {\bf Arguments:}\ a_resid (modified): the residual, at interior nodes.\ a_phi (modified): the data at this level. Interpolated from a_phiCoarsePtr at coarse/fine boundary.\ a_phiCoarsePtr (not modified): pointer to data at next coarser level.\ a_rhs (not modified): right-hand side.\ Implements NodeMaskLevelOp. |
|
Set bottom smoother. |
|
Set physical boundary conditions. |
|
Set interpolation degree in NodeQuadCFInterp: \ 1 for linear in 2-D or bilinear in 3-D; \ 2 for quadratic in 2-D or biquadratic in 3-D. \ Default is 2. Like setDomainNodeBC, this function must be called before define(). You cannot change the interpolation degree later. |
|
Smoother. Assumes that problem has already been put in residual-correction form, so that C/F boundary conditions are homogeneous. {\bf Arguments:}\ a_phi (modified): the data at this level.\ a_rhs (not modified): right-hand side.\ Implements NodeMaskLevelOp. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|