LevelSolver Solves elliptic equations on a level using multigrid.
|
Public Member Functions |
| 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)
|
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 |
Vector< Real > | m_convergenceMetrics |
Real | m_operatorTolerance |
bool | m_verbose |
Private Member Functions |
void | operator= (const LevelSolver &) |
| LevelSolver (const LevelSolver &) |