#include <GenLevelSolver.H>
Collaboration diagram for GenLevelSolver< T >:
Public Methods | |
GenLevelSolver () | |
GenLevelSolver (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseGrids, const Box &a_domain, Real a_dxLevel, int a_nRefCrse, const GenLevelMGOp< T > *const a_opin, int a_ncomp=1) | |
GenLevelSolver (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseGrids, const ProblemDomain &a_domain, Real a_dxLevel, int a_nRefCrse, const GenLevelMGOp< T > *const a_opin, int a_ncomp) | |
virtual | ~GenLevelSolver () |
bool | isDefined () const |
virtual void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseGrids, const Box &a_domain, Real a_dxLevel, int a_nRefCrse, const GenLevelMGOp< T > *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 GenLevelMGOp< T > *const a_opin, int a_ncomp=1) |
Full define function. | |
void | clearMemory () |
void | setDefaultValues () |
void | levelSolveH (T &a_phi, const T &a_rhs, bool a_initializePhiToZero=true) |
void | levelSolve (T &a_phi, const T *a_phic, const T &a_rhs, bool a_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 | |
GenLevelMG< T > | m_levelMG |
GenLevelMGOp< T > * | m_levelOpPtr |
bool | m_isDefined |
DisjointBoxLayout | m_grids |
ProblemDomain | m_domain |
T | m_resid |
T | m_scratch |
T | m_corr |
int | m_nRefCrse |
Real | m_dxLevel |
int | m_maxIter |
int | m_minIter |
Real | m_tolerance |
Real | m_operatorTolerance |
bool | m_verbose |
Private Methods | |
GenLevelSolver (const GenLevelSolver< T > &) | |
void | operator= (const GenLevelSolver< T > &) |
GenLevelSolver Solves elliptic equations on a level using multigrid.
|
Default constructor leaves GenLevelSolver 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|