#include <LevelSolver.H>
Collaboration diagram for LevelSolver:
Public Methods | |
LevelSolver () | |
virtual | ~LevelSolver () |
LevelSolver (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseGrids, const Box &a_domain, Real a_dxLevel, int a_nRefCrse, const LevelOp *const a_opin, int a_ncomp=1) | |
LevelSolver (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseGrids, const ProblemDomain &a_domain, Real a_dxLevel, int a_nRefCrse, const LevelOp *const a_opin, int a_ncomp) | |
virtual void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseGrids, const Box &a_domain, Real a_dxLevel, int a_nRefCrse, const LevelOp *const a_opin, int a_ncomp=1) |
Full define function. | |
virtual void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseGrids, const ProblemDomain &a_domain, Real a_dxLevel, int a_nRefCrse, const LevelOp *const a_opin, int a_ncomp=1) |
Full define function. | |
bool | isDefined () const |
void | clearMemory () |
void | setDefaultValues () |
void | levelSolveH (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > &rhs, bool initializePhiToZero=true) |
void | levelSolve (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > *phic, const LevelData< FArrayBox > &rhs, bool initializePhiToZero=true) |
void | setTolerance (Real a_tolerance) |
set solution tolerance | |
void | setOperatorTolerance (Real a_operatorTolerance) |
void | setVerbose (bool a_verbose) |
void | setMaxIter (int a_maxIter) |
set max number multigrid vcycles to use in solution | |
void | setMinIter (int a_minIter) |
Protected Attributes | |
LevelMG | m_levelMG |
LevelOp * | m_levelOpPtr |
bool | m_isDefined |
DisjointBoxLayout | m_grids |
ProblemDomain | m_domain |
LevelData< FArrayBox > | m_resid |
LevelData< FArrayBox > | m_scratch |
LevelData< FArrayBox > | m_corr |
int | m_nRefCrse |
Real | m_dxLevel |
int | m_maxIter |
int | m_minIter |
Real | m_tolerance |
Real | m_operatorTolerance |
bool | m_verbose |
LevelSolver Solves elliptic equations on a level using multigrid.
|
Default constructor leaves LevelSolver undefined. |
|
|
|
Full constructor. Calls full define function.\ {\bf Inputs:} \ a_grids: Grid on which solution will be computed. \ a_baseGrids: pointer to next coarser grids. Should be == NULL if there is no coarser level. \ a_domain: domain of solution level \ a_dxLevel: grid spacing at solution level \ a_nRefCrse: refinement ratio between two levels. Not used if there is no finer level \ a_opin: operator L used in solution of Lphi=rho |
|
Full constructor. Calls full define function.\ {\bf Inputs:} \ a_grids: Grid on which solution will be computed. \ a_baseGrids: pointer to next coarser grids. Should be == NULL if there is no coarser level. \ a_domain: domain of solution level \ a_dxLevel: grid spacing at solution level \ a_nRefCrse: refinement ratio between two levels. Not used if there is no finer level \ a_opin: operator L used in solution of Lphi=rho |
|
|
|
Full define function. Full define function.\ {\bf Inputs:} \ a_grids: Grid on which solution will be computed. \ a_baseGrids: pointer to next coarser grids. Should be == NULL if there is no coarser level. \ a_domain: domain of solution level \ a_dxLevel: grid spacing at solution level \ a_nRefCrse: refinement ratio between two levels. Not used if there is no finer level \ a_opin: operator L used in solution of Lphi=rho |
|
Full define function. Full define function.\ {\bf Inputs:} \ a_grids: Grid on which solution will be computed. \ a_baseGrids: pointer to next coarser grids. Should be == NULL if there is no coarser level. \ a_domain: domain of solution level \ a_dxLevel: grid spacing at solution level \ a_nRefCrse: refinement ratio between two levels. Not used if there is no finer level \ a_opin: operator L used in solution of Lphi=rho |
|
|
|
do a level solve on this level using multigrid uses inhomogeneous bcs at interfaces\ {\bf Inputs:} \ phi: initial guess at solution. phic: solution at next coarser level. should be == NULL if there is no coarser level. rhs: right-hand side. \ {\bf Outputs:} \ phi: solution. |
|
do a level solve on this level using multigrid uses homogeneous bcs at coarse/fine interfaces \ {\bf Inputs:} \ phi: initial guess at solution. rhs: right-hand side. \ {\bf Outputs:} \ phi: solution. |
|
|
|
set max number multigrid vcycles to use in solution
|
|
Set min number of iterations. Only relevant when residual is not decreasing fast enough to satisfy the "operator tolerance". Default is 4. |
|
Set "operator tolerance" of iterative solution. Iteration will stop if (new_residual/old_residual) > 1-operatorTolerance (and at least minIter iterations have been performed). Default is 1.0e-5. |
|
set solution tolerance
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|