#include <NodeLevelMG.H>
Collaboration diagram for NodeLevelMG:
Multigrid solver on a level. This class is to be considered internal to LevelNodeSolver and not a part of the Chombo API.
Public Member Functions | |
NodeLevelOp * | levelOpPtr () |
NodeLevelMG * | lCoarsePtr () |
Constructors, destructor and defines | |
NodeLevelMG () | |
NodeLevelMG (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_nCoarserLevels) | |
NodeLevelMG (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_nCoarserLevels) | |
~NodeLevelMG () | |
NodeLevelMG (NodeLevelMG &a_L, int a_refToCoarse, const NodeLevelOp *a_opin) | |
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_nCoarserLevels) |
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_nCoarserLevels) |
void | define (const NodeLevelMG &a_L, int a_refToCoarse, const NodeLevelOp *a_opin) |
Access functions | |
bool | isDefined () const |
Parameter-setting functions | |
void | setnumSmoothUp (int a_numSmoothUp) |
void | setnumSmoothDown (int a_numSmoothDown) |
void | setVerbose (bool a_verbose) |
Data modification functions | |
void | mgRelax (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs, bool a_bottomsolveflag) |
Protected Member Functions | |
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 |
NodeLevelOp * | m_levelopPtr |
int | m_numBottomPoints |
int | m_numSmoothUp |
int | m_numSmoothDown |
int | m_refToCoarsened |
NodeCoarseAverage | m_averageOp |
Box | m_boxRef |
FArrayBox | m_weights |
Private Member Functions | |
void | crseCorrect (LevelData< NodeFArrayBox > &a_phi) |
void | operator= (const NodeLevelMG &a_levmgin) |
NodeLevelMG (const NodeLevelMG &a_levmgin) |
|
Default constructor. User must subsequently call define(). |
|
Constructor to define NodeLevelMG from the inputs. Calls full define() function with identical arguments. |
|
Constructor to define NodeLevelMG from the inputs. Calls full define() function with identical arguments. |
|
Destructor. |
|
Constructor for coarsened version of object. Calls define() function with identical arguments. |
|
|
|
Full define function.
|
|
Full define function.
|
|
Function to define coarsened version of this NodeLevelMG.
|
|
Returns true if this object was created with the defining constructor or if define() has been called. |
|
Set number of smoothings on way up V-cycle; Default is 4. |
|
Set number of smoothings on way down V-cycle; Default is 4. |
|
Set whether the solver gives output while solving. Default is |
|
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. Modified are m_resid, m_crseResid, and m_crseCorr.
|
|
this is a dangerous access function that should not generally be used. |
|
this is another access function that is kinda bad |
|
Set default values. Does not deal with memory. |
|
Delete internal memory and set pointers to NULL. |
|
Correct a_phi on intersection with m_crseCorr. Should only be called internally because this is not written for general LevelData<NodeFArrayBox>es |
|
|
|
has this NodeLevelMG been defined yet? |
|
flag for verbose output |
|
residual at this level |
|
residual at next coarser level |
|
correction at next coarser level |
|
grids at this level |
|
coarsened version of CELL-centered grids at this level |
|
pointer to CELL-centered grids at next coarser AMR level, or NULL if no coarser level |
|
mesh spacing at this level |
|
CELL-centered physical domain at this level |
|
number of coarser multigrid levels |
|
pointer to coarser level |
|
the operator |
|
number of CELLs in physical domain |
|
number of smoother iterations on sweep up |
|
number of smoother iterations on sweep down |
|
refinement ratio to next coarser multigrid level |
|
operator for averaging from this level to next coarser multigrid level |
|
reference box used in interpolation from next coarser multigrid level |
|
weights of corners in interpolation from next coarser multigrid level |