#include <LevelNodeSolver.H>
Collaboration diagram for LevelNodeSolver:
LevelNodeSolver solves elliptic equations on a level using multigrid.
Public Member Functions | |
Constructors, destructor and defines | |
LevelNodeSolver () | |
LevelNodeSolver (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, const ProblemDomain &a_domain, Real a_dx, int a_refToCoarse, const NodeLevelOp *const a_opin, int a_minLength=1) | |
LevelNodeSolver (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, const Box &a_domain, Real a_dx, int a_refToCoarse, const NodeLevelOp *const a_opin, int a_minLength=1) | |
virtual | ~LevelNodeSolver () |
virtual void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, const ProblemDomain &a_domain, Real a_dx, int a_refToCoarse, const NodeLevelOp *const a_opin, int a_minLength=1) |
virtual void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, const Box &a_domain, Real a_dx, int a_refToCoarse, const NodeLevelOp *const a_opin, int a_minLength=1) |
Access functions | |
bool | isDefined () const |
Parameter-setting functions | |
void | setnumSmoothUp (int a_numSmoothUp) |
void | setnumSmoothDown (int a_numSmoothDown) |
void | setBottomSmoothing (bool a_bottomSolveFlag) |
void | setTolerance (Real a_tolerance) |
void | setOperatorTolerance (Real a_operatorTolerance) |
void | setVerbose (bool a_verbose) |
void | setMaxIter (int a_maxIter) |
void | setMinIter (int a_minIter) |
Data modification functions | |
void | clearMemory () |
void | setDefaultValues () |
void | levelSolveH (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs, bool a_initializePhiToZero=true) |
void | levelSolve (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > *a_phiCoarse, const LevelData< NodeFArrayBox > &a_rhs, bool a_initializePhiToZero=true) |
Protected Attributes | |
NodeLevelMG | m_levelMG |
NodeLevelOp * | m_levelOpPtr |
bool | m_isDefined |
DisjointBoxLayout | m_grids |
ProblemDomain | m_domain |
LevelData< NodeFArrayBox > | m_resid |
LevelData< NodeFArrayBox > | m_scratch |
LevelData< NodeFArrayBox > | m_corr |
int | m_refToCoarse |
Real | m_dx |
int | m_maxIter |
int | m_minIter |
Real | m_tolerance |
Real | m_operatorTolerance |
bool | m_bottomSolveFlag |
bool | m_verbose |
LayoutData< Vector< IntVectSet > > | m_IVSV |
LayoutData< Vector< IntVectSet > > | m_IVSVext |
Private Member Functions | |
int | countCoarserLevels (int a_minLength) |
void | operator= (const LevelNodeSolver &) |
LevelNodeSolver (const LevelNodeSolver &) |
|
Default constructor leaves LevelNodeSolver undefined. |
|
Full constructor. Calls full define() function with identical arguments. |
|
Full constructor. Calls full define() function with identical arguments. |
|
Destructor. |
|
|
|
Full define function.
|
|
Full define function.
|
|
Returns |
|
Set number of smoothings on way up V-cycle; Default is 4. Passed to NodeLevelMG. |
|
Set number of smoothings on way down V-cycle; Default is 4. Passed to NodeLevelMG. |
|
Sets whether smoothing is done at bottom level. Default is |
|
Sets solution tolerance. Default is 1.0e-10. |
|
Set "operator tolerance" of iterative solution. Iteration will stop if (new_residual/old_residual) > 1-a_operatorTolerance (and at least m_minIter iterations have been performed). Default is 1.0e-4. |
|
Sets whether the solver gives output while solving. Default is |
|
Sets max number of multigrid V-cycles to use in solution; Default is 33. |
|
Set min number of iterations. Only relevant when residual is not decreasing fast enough to satisfy the "operator tolerance". Default is 4. |
|
Delete internal memory and set pointers to NULL. |
|
Set default values. Does not deal with memory. |
|
Does a level solve on this level using multigrid and homogeneous bcs at coarse/fine interfaces.
|
|
Does a level solve on this level using multigrid and inhomogeneous bcs at coarse/fine interfaces.
|
|
|
|
|
|
level solver object to relax on this level |
|
pointer to operator |
|
has this LevelNodeSolver been defined yet? |
|
CELL-centered grids at this level |
|
CELL-centered physical domain at this level |
|
residual |
|
useful scratch space |
|
correction |
|
refinement ratio to next coarser level |
|
mesh spacing at this level |
|
maximum number of iterations |
|
minimum number of iterations |
|
solver tolerance |
|
operator tolerance: iteration will stop if (new_residual/old_residual) > 1-m_operatorTolerance |
|
whether to do smoothing at bottom level |
|
whether to write verbose output; default is |
|
interior boundary nodes of grids at this level |
|
exterior boundary nodes of grids at this level |