#include <NodeLevelMG.H>
Collaboration diagram for NodeLevelMG:

Public Methods | |
| NodeLevelMG () | |
| {\bf constructors, destructor and defines} | |
| NodeLevelMG (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, const ProblemDomain &a_domain, Real a_dx, int a_refToCoarse, const NodeMaskLevelOp *const a_opin, int a_nCoarserLevels) | |
| NodeLevelMG (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, const Box &a_domain, Real a_dx, int a_refToCoarse, const NodeMaskLevelOp *const a_opin, int a_nCoarserLevels) | |
| ~NodeLevelMG () | |
| NodeLevelMG (NodeLevelMG &a_L, int a_refToCoarse, const NodeMaskLevelOp *a_opin) | |
| void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, const ProblemDomain &a_domain, Real a_dx, int a_refToCoarse, const NodeMaskLevelOp *const a_opin, int a_nCoarserLevels) |
| void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_gridsCoarsePtr, const Box &a_domain, Real a_dx, int a_refToCoarse, const NodeMaskLevelOp *const a_opin, int a_nCoarserLevels) |
| void | define (const NodeLevelMG &a_L, int a_refToCoarse, const NodeMaskLevelOp *a_opin) |
| void | clear () |
| bool | isDefined () const |
| {\bf access functions} | |
| void | setnumBottomGSRB (int a_numBottomGSRB) |
| {\bf parameter-setting functions} | |
| void | setnumSmoothUp (int a_numSmoothUp) |
| void | setnumSmoothDown (int a_numSmoothDown) |
| void | setVerbose (bool a_verbose) |
| void | mgRelax (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs, bool a_bottomsolveflag) |
| {\bf data modification functions} | |
| NodeMaskLevelOp * | levelOpPtr () |
| NodeLevelMG * | lCoarsePtr () |
Protected Methods | |
| void | setDefaultValues () |
| void | clearMemory () |
Protected Attributes | |
| bool | m_isDefined |
| bool | m_verbose |
| LevelData< NodeFArrayBox > | m_resid |
| LevelData< NodeFArrayBox > | m_crseResid |
| LevelData< NodeFArrayBox > | m_crseCorr |
| DisjointBoxLayout | m_grids |
| DisjointBoxLayout | m_coarsenedGrids |
| const DisjointBoxLayout * | m_gridsCoarsePtr |
| Real | m_dx |
| ProblemDomain | m_domain |
| int | m_nCoarserLevels |
| NodeLevelMG * | m_lCoarsePtr |
| NodeMaskLevelOp * | m_levelopPtr |
| int | m_numBottomGSRB |
| int | m_numSmoothUp |
| int | m_numSmoothDown |
| int | m_refToCoarsened |
| NodeMaskAverage | m_averageOp |
| NodeMGInterp | m_mginterp |
Multigrid solver on a level. This class is to be considered internal to LevelNodeSolver and not a part of the Chombo API.
|
|
{\bf constructors, destructor and defines} Default constructor. User must subsequently call define(). |
|
||||||||||||||||||||||||||||||||
|
Constructor to define NodeLevelMG from the inputs. Calls full {\bf define} function with identical arguments. |
|
||||||||||||||||||||||||||||||||
|
|
|
|
Destructor. |
|
||||||||||||||||
|
Constructor for coarsened version of object. Calls {\bf define} function with identical arguments. |
|
|
|
|
|
|
|
||||||||||||||||
|
Function to define coarsened version of an object. {\bf Arguments:}\ a_L: original object.\ a_refToCoarse: refinement ratio from this object to a_L.\ a_opin: operator L used in solution of L(phi)=rho.\ |
|
||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||
|
Full define function. {\bf Arguments:}\ a_grids: Grids on which solution will be computed.\ a_gridsCoarsePtr: pointer to next coarser grids, or NULL if there is no coarser level.\ a_domain: domain of solution level.\ a_dx: grid spacing at solution level.\ a_refToCoarse: refinement ratio to next coarser level. Not used if there is no coarser level.\ a_opin: operator L used in solution of L(phi)=rho.\ a_nCoarserLevels: number of coarser levels.\ |
|
|
{\bf access functions} Returns true if this object was created with the defining constructor or if define() has been called. |
|
|
|
|
|
|
|
||||||||||||||||
|
{\bf data modification functions} Invoke relaxation step. Default is pure multigrid V-cycle, suitable for use in multilevel solver application; otherwise, use approximate solver such as CG at bottom level. It is assumed that the problem has already been put in residual-correction form. In particular, only the homogeneous form of the physical and coarse-fine boundary conditions need be invoked. {\bf Arguments:}\ a_phi (modified): phi on this level.\ a_rhs (not modified): right-hand side on this level.\ a_bottomsolveflag: whether to use bottom solver at coarsest level.\ {\bf This:}\ Modified are m_resid, m_crseResid, and m_crseCorr.\ |
|
|
|
|
|
{\bf parameter-setting functions} Set number of smoothings on the bottom level; Default == 16. |
|
|
Set number of smoothings on way down V-cycle; Default == 4. |
|
|
Set number of smoothings on way up V-cycle; Default == 4. |
|
|
Set whether the solver gives output while solving. Default is true. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.2.16