#include <AMRNodeSolverAlt.H>
Public Methods | |
AMRNodeSolverAlt () | |
{\bf constructors, destructor and defines} | |
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 NodeMaskLevelOp *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 NodeMaskLevelOp *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 NodeMaskLevelOp *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 NodeMaskLevelOp *const a_opin, int a_minLength=1) |
bool | isDefined () const |
{\bf access functions} | |
void | setTolerance (Real a_tolerance) |
{\bf parameter-setting functions} | |
void | setBottomSmoothing (bool a_doBottomSmooth) |
void | setMaxIter (int a_maxIter) |
void | setVerbose (bool a_verbose) |
void | solveAMR (Vector< LevelData< NodeFArrayBox > * > &a_phiLevel, const Vector< LevelData< NodeFArrayBox > * > &a_rhsLevel) |
{\bf data modification functions} | |
Protected Methods | |
void | setDefaultValues () |
void | clear () |
Protected Attributes | |
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 |
bool | m_isDefined |
Vector< LevelNodeSolver * > | m_levelSolver |
bool | m_verbose |
AMRNodeSolverAlt manages the AMR/multigrid solution to the elliptic equation on a multiple level grid that satisfies 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.
|
{\bf constructors, destructor and defines} 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 {\bf define} function with identical arguments. |
|
|
|
Destructor. |
|
|
|
|
|
Defines AMRNodeSolverAlt's internal state. {\bf Arguments:}\ a_gridsLevel: the grids (cell-centered) at all levels; each element in the Vector is a level's worth of grids. Vector index corresponds to level number. \ a_domainLevel: the physical domains at all levels. \ a_dxLevel: the grid spacing at all levels.\ a_refRatio: the refinement ratios between adjacent levels. a_refRatio[0] is the refinement ratio between level 0 and level 1. \ a_numlevels: the number of AMR levels in the calculation. The length of the Vectors must be at least numlevels. \ a_lBase: index of coarsest level on which solution is to be computed. This needs to be set at the time of definition, in order to build the bottom LevelNodeSolver. \ a_opin: pointer to the NodeMaskLevelOp to use in the solution. \ a_minLength: minimum length of maximally coarsened box in LevelNodeSolver. \ |
|
{\bf access functions} Returns true if full define function has been called. |
|
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. |
|
{\bf parameter-setting functions} Set tolerance of solvers. Default is set in LevelNodeSolver. |
|
Set whether the solver gives output while solving. Default is true. |
|
{\bf data modification functions} 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 cells that are not adjacent to the domain boundary. \ {\bf Arguments:}\ a_phiLevel (modified): pointers to current guess at the solution values for levels (lMin = max(m_lBase-1,0)) ... m_finestLevel. Vector index corresponds to level number. These values are updated in place.\ a_rhsLevel (not modified): pointers to right-hand side for levels lMin ... m_finestLevel.\ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|