#include <LevelSolver.H>
Collaboration diagram for LevelSolver:
Public Methods | |
LevelSolver () | |
Null constructor, leaves LevelSolver undefined. | |
virtual | ~LevelSolver () |
Destructor. | |
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, bool a_limitCoarsening=false) | |
Full constructor. Calls full define function. | |
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, bool a_limitCoarsening=false) | |
Full constructor (Deprecated -- use ProblemDomain instead). | |
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, bool a_limitCoarsening=false) |
Full define function. | |
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, bool a_limitCoarsening=false) |
Full define function. (Deprecated -- use ProblemDomain version instead). | |
bool | isDefined () const |
Has this object been defined already? | |
void | clearMemory () |
Clears storage. | |
void | setDefaultValues () |
Internal use function to set default values for solver parameters. | |
void | levelSolveH (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs, bool a_initializePhiToZero=true) |
Do a level solve with homogeneous BCs on this level using multigrid. | |
void | levelSolve (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phic, const LevelData< FArrayBox > &a_rhs, bool a_initializePhiToZero=true) |
Do a level solve with inhomogeneous BCs on this level using multigrid. | |
void | setNumSmoothUp (int a_numSmoothUp) |
Set number of multigrid smoothings on way up v-cycle. Default is 4. | |
void | setNumSmoothDown (int a_numSmoothDown) |
Set number of multigrid smoothings on way down v-cycle; Default is 4. | |
void | setTolerance (Real a_tolerance) |
Set solution tolerance. | |
void | setOperatorTolerance (Real a_operatorTolerance) |
Set "operator tolerance" of iterative solution. | |
void | setVerbose (bool a_verbose) |
Set how much info is printed out during solve. | |
void | setMaxIter (int a_maxIter) |
Set max number multigrid vcycles to use in solution. | |
void | setMinIter (int a_minIter) |
Set min number of iterations. | |
virtual void | setConvergenceMetric (Real a_metric, int a_comp) |
set the convergence metrics (if appropriate) for this problem | |
virtual void | resetConvergenceMetrics () |
rest the convergence metrics to an undefined state (for solver re-use) | |
void | setNormType (int a_normType) |
set type of norm to use to judge convergence | |
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 |
int | m_numSmoothUp |
int | m_numSmoothDown |
Real | m_tolerance |
int | m_normType |
Vector< Real > | m_convergenceMetrics |
Real | m_operatorTolerance |
bool | m_verbose |
LevelSolver Solves elliptic equations on a level using multigrid.
|
Null constructor, leaves LevelSolver undefined.
|
|
Destructor.
|
|
Full constructor. Calls full define function. Calls corresponding full define function. Inputs:
|
|
Full constructor (Deprecated -- use ProblemDomain instead). Calls corresponding full define function. Inputs:
|
|
Clears storage.
|
|
Full define function. (Deprecated -- use ProblemDomain version instead). Inputs:
|
|
Full define function. Inputs:
|
|
Has this object been defined already?
|
|
Do a level solve with inhomogeneous BCs on this level using multigrid. Uses inhomogeneous bcs at interfaces. phic should be set to NULL if there is no coarser level.
|
|
Do a level solve with homogeneous BCs on this level using multigrid. Uses homogeneous bcs at coarse/fine interfaces
|
|
rest the convergence metrics to an undefined state (for solver re-use)
|
|
set the convergence metrics (if appropriate) for this problem sets metric against which we define convergence (for example, the norm of the RHS). Also passes a_metric through to the LevelMG (and eventually to a bottom solver.) |
|
Internal use function to set default values for solver parameters.
|
|
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 type of norm to use to judge convergence
|
|
Set number of multigrid smoothings on way down v-cycle; Default is 4.
|
|
Set number of multigrid smoothings on way up v-cycle. 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.
|
|
Set how much info is printed out during solve.
|
|
metrics used to judge convergence |
|
Correction |
|
Problem domain at this level |
|
Cell spacing on this level |
|
Grids at this level |
|
Has this LevelSolver been defined yet? |
|
LevelMG level solver object to relax on this level |
|
LevelMG level solver object to relax on this level |
|
Maximum number of solver iterations |
|
Minimum number of iterations |
|
type of norm to use for evaluating convergence |
|
Refinement ratio to coarser level |
|
Number of smoother iterations on down cycle |
|
Number of smoother iterations on up cycle |
|
Tolerance used to stop solver iteration if convergence hangs. |
|
Residual |
|
Useful scratch space. |
|
Solver tolerance |
|
How verbose shold the solve be? |