#include <AMRNodeSolverAlt.H>
Collaboration diagram for AMRNodeSolverAlt:
AMRNodeSolverAlt manages the AMR/multigrid solution to the elliptic equation on a set of grids on multiple levels satisfying certain proper-nesting conditions.
It can be used either as a solver, or to apply the AMR / multigrid V-cycle as a preconditioner for some other iterative method, such as a Krylov method.
Public Member Functions | |
Constructors, destructor and defines | |
AMRNodeSolverAlt () | |
AMRNodeSolverAlt (const Vector< DisjointBoxLayout > &a_gridsLevel, const Vector< ProblemDomain > &a_domainLevel, const Vector< Real > &a_dxLevel, const Vector< int > &a_refRatio, int a_numLevels, int a_lBase, const NodeLevelOp *const a_opin, int a_minLength=1) | |
AMRNodeSolverAlt (const Vector< DisjointBoxLayout > &a_gridsLevel, const Vector< Box > &a_domainLevel, const Vector< Real > &a_dxLevel, const Vector< int > &a_refRatio, int a_numLevels, int a_lBase, const NodeLevelOp *const a_opin, int a_minLength=1) | |
~AMRNodeSolverAlt () | |
void | define (const Vector< DisjointBoxLayout > &a_gridsLevel, const Vector< ProblemDomain > &a_domainLevel, const Vector< Real > &a_dxLevel, const Vector< int > &a_refRatio, int a_numLevels, int a_lBase, const NodeLevelOp *const a_opin, int a_minLength=1) |
void | define (const Vector< DisjointBoxLayout > &a_gridsLevel, const Vector< Box > &a_domainLevel, const Vector< Real > &a_dxLevel, const Vector< int > &a_refRatio, int a_numLevels, int a_lBase, 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 | setTolerance (Real a_tolerance) |
void | setBottomSmoothing (bool a_doBottomSmooth) |
void | setMaxIter (int a_maxIter) |
void | setVerbose (bool a_verbose) |
Data modification functions | |
void | solveAMR (Vector< LevelData< NodeFArrayBox > * > &a_phiLevel, const Vector< LevelData< NodeFArrayBox > * > &a_rhsLevel) |
Protected Member Functions | |
void | setDefaultValues () |
void | clear () |
Protected Attributes | |
Real | m_tolerance |
int | m_lBase |
int | m_numLevels |
int | m_finestLevel |
Vector< int > | m_refRatio |
Vector< Real > | m_dxLevel |
Vector< DisjointBoxLayout > | m_gridsLevel |
Vector< ProblemDomain > | m_domainLevel |
int | m_numSmoothUp |
int | m_numSmoothDown |
bool | m_isDefined |
Vector< LevelNodeSolver * > | m_levelSolver |
bool | m_verbose |
Private Member Functions | |
AMRNodeSolverAlt (const AMRNodeSolverAlt &) | |
AMRNodeSolverAlt & | operator= (const AMRNodeSolverAlt &) |
|
Creates a AMRNodeSolverAlt whose internal state is undefined. Need to call define() function to use any of the functionality of the class. |
|
Creates a fully-defined AMRNodeSolverAlt. Calls define() function with identical arguments. |
|
Creates a fully-defined AMRNodeSolverAlt. Calls define() function with identical arguments. |
|
Destructor. |
|
|
|
Defines AMRNodeSolverAlt's internal state. Except for a_refRatio, each Vector argument contains a component for each level, and Vector index corresponds to level number.
|
|
Defines AMRNodeSolverAlt's internal state. Except for a_refRatio, each Vector argument contains a component for each level, and Vector index corresponds to level number.
|
|
Returns |
|
Set number of multigrid smoothings on way up V-cycle; Default is 4. |
|
Set number of multigrid smoothings on way down V-cycle; Default is 4. |
|
Set tolerance of solvers. Default is set in LevelNodeSolver. |
|
Set whether solver does smoothing at bottom level. Default is set in LevelNodeSolver. |
|
Set max number of iterations for solvers at every level. Default is set in LevelNodeSolver. |
|
Set whether the solver gives output while solving. Default is true. |
|
Solves the elliptic equation over the hierarchy of levels m_lBase ... m_finestLevel where m_finestLevel = m_numLevels-1. If m_lBase > 0, then the data at level m_lBase - 1 is used to interpolate boundary conditions at boundary nodes that are not adjacent to the domain boundary. Solves to tolerance m_tolerance.
|
|
Set data to default values. Not for external use. |
|
Delete m_levelSolver Vector. |
|
|
|
solver tolerance |
|
index of coarsest level on which solution is to be computed. |
|
number of levels allowed |
|
index of finest level used, equal to m_numLevels-1 |
|
refinement ratio between levels; m_refRatio[ilev] is refinement ratio between levels ilev and ilev+1 |
|
grid spacing at each level |
|
grids, CELL-centered (disjoint) at each level |
|
CELL-centered physical domain at each level |
|
number of smoother iterations on sweep up |
|
number of smoother iterations on sweep down |
|
whether the full define() function has been called |
|
multigrid solver for each level |
|
whether to write verbose output; default is |