Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

AMRNodeSolverAlt Class Reference

Class which manages grid hierarchy and composite elliptic solution, solving level-by-level. More...

#include <AMRNodeSolverAlt.H>

List of all members.

Public Methods

 AMRNodeSolverAlt ()
 {\bf constructors, destructor and defines}

 AMRNodeSolverAlt (const Vector< DisjointBoxLayout > &a_gridsLevel, const Vector< ProblemDomain > &a_domainLevel, const Vector< Real > &a_dxLevel, const Vector< int > &a_refRatio, int a_numLevels, int a_lBase, const NodeLevelOp *const a_opin, int a_minLength=1)
 AMRNodeSolverAlt (const Vector< DisjointBoxLayout > &a_gridsLevel, const Vector< Box > &a_domainLevel, const Vector< Real > &a_dxLevel, const Vector< int > &a_refRatio, int a_numLevels, int a_lBase, const NodeLevelOp *const a_opin, int a_minLength=1)
 ~AMRNodeSolverAlt ()
void define (const Vector< DisjointBoxLayout > &a_gridsLevel, const Vector< ProblemDomain > &a_domainLevel, const Vector< Real > &a_dxLevel, const Vector< int > &a_refRatio, int a_numLevels, int a_lBase, const NodeLevelOp *const a_opin, int a_minLength=1)
void define (const Vector< DisjointBoxLayout > &a_gridsLevel, const Vector< Box > &a_domainLevel, const Vector< Real > &a_dxLevel, const Vector< int > &a_refRatio, int a_numLevels, int a_lBase, const NodeLevelOp *const a_opin, int a_minLength=1)
bool isDefined () const
 {\bf access functions}

void setTolerance (Real a_tolerance)
 {\bf parameter-setting functions}

void setBottomSmoothing (bool a_doBottomSmooth)
void setMaxIter (int a_maxIter)
void setVerbose (bool a_verbose)
void solveAMR (Vector< LevelData< NodeFArrayBox > * > &a_phiLevel, const Vector< LevelData< NodeFArrayBox > * > &a_rhsLevel)
 {\bf data modification functions}


Protected Methods

void setDefaultValues ()
void clear ()

Protected Attributes

int m_lBase
int m_numLevels
int m_finestLevel
Vector< int > m_refRatio
Vector< Real > m_dxLevel
Vector< DisjointBoxLayout > m_gridsLevel
Vector< ProblemDomain > m_domainLevel
bool m_isDefined
Vector< LevelNodeSolver * > m_levelSolver
bool m_verbose


Detailed Description

Class which manages grid hierarchy and composite elliptic solution, solving level-by-level.

AMRNodeSolverAlt manages the AMR/multigrid solution to the elliptic equation on a multiple level grid that satisfies certain proper nesting conditions. It can be used either as a solver, or to apply the AMR / multigrid V-cycle as a preconditioner for some other iterative method, such as a Krylov method.


Constructor & Destructor Documentation

AMRNodeSolverAlt::AMRNodeSolverAlt  
 

{\bf constructors, destructor and defines}

Creates a AMRNodeSolverAlt whose internal state is undefined. Need to call define(...) function to use any of the functionality of the class.

AMRNodeSolverAlt::AMRNodeSolverAlt const Vector< DisjointBoxLayout > &    a_gridsLevel,
const Vector< ProblemDomain > &    a_domainLevel,
const Vector< Real > &    a_dxLevel,
const Vector< int > &    a_refRatio,
int    a_numLevels,
int    a_lBase,
const NodeLevelOp *const    a_opin,
int    a_minLength = 1
 

Creates a fully-defined AMRNodeSolverAlt. Calls {\bf define} function with identical arguments.

AMRNodeSolverAlt::AMRNodeSolverAlt const Vector< DisjointBoxLayout > &    a_gridsLevel,
const Vector< Box > &    a_domainLevel,
const Vector< Real > &    a_dxLevel,
const Vector< int > &    a_refRatio,
int    a_numLevels,
int    a_lBase,
const NodeLevelOp *const    a_opin,
int    a_minLength = 1
 

AMRNodeSolverAlt::~AMRNodeSolverAlt  
 

Destructor.


Member Function Documentation

void AMRNodeSolverAlt::clear   [protected]
 

void AMRNodeSolverAlt::define const Vector< DisjointBoxLayout > &    a_gridsLevel,
const Vector< Box > &    a_domainLevel,
const Vector< Real > &    a_dxLevel,
const Vector< int > &    a_refRatio,
int    a_numLevels,
int    a_lBase,
const NodeLevelOp *const    a_opin,
int    a_minLength = 1
 

void AMRNodeSolverAlt::define const Vector< DisjointBoxLayout > &    a_gridsLevel,
const Vector< ProblemDomain > &    a_domainLevel,
const Vector< Real > &    a_dxLevel,
const Vector< int > &    a_refRatio,
int    a_numLevels,
int    a_lBase,
const NodeLevelOp *const    a_opin,
int    a_minLength = 1
 

Defines AMRNodeSolverAlt's internal state.

{\bf Arguments:}\ a_gridsLevel: the grids (cell-centered) at all levels; each element in the Vector is a level's worth of grids. Vector index corresponds to level number. \ a_domainLevel: the physical domains at all levels. \ a_dxLevel: the grid spacing at all levels.\ a_refRatio: the refinement ratios between adjacent levels. a_refRatio[0] is the refinement ratio between level 0 and level 1. \ a_numlevels: the number of AMR levels in the calculation. The length of the Vectors must be at least numlevels. \ a_lBase: index of coarsest level on which solution is to be computed. This needs to be set at the time of definition, in order to build the bottom LevelNodeSolver. \ a_opin: pointer to the NodeLevelOp to use in the solution.\ a_minLength: minimum length of maximally coarsened box in LevelNodeSolver. \

bool AMRNodeSolverAlt::isDefined   const
 

{\bf access functions}

Returns true if full define function has been called.

void AMRNodeSolverAlt::setBottomSmoothing bool    a_doBottomSmooth
 

Set whether solver does smoothing at bottom level. Default is set in LevelNodeSolver.

void AMRNodeSolverAlt::setDefaultValues   [protected]
 

void AMRNodeSolverAlt::setMaxIter int    a_maxIter
 

Set max number of iterations for solvers at every level. Default is set in LevelNodeSolver.

void AMRNodeSolverAlt::setTolerance Real    a_tolerance
 

{\bf parameter-setting functions}

Set tolerance of solvers. Default is set in LevelNodeSolver.

void AMRNodeSolverAlt::setVerbose bool    a_verbose
 

Set whether the solver gives output while solving. Default is true.

void AMRNodeSolverAlt::solveAMR Vector< LevelData< NodeFArrayBox > * > &    a_phiLevel,
const Vector< LevelData< NodeFArrayBox > * > &    a_rhsLevel
 

{\bf data modification functions}

Solves the elliptic equation over the hierarchy of levels m_lBase ... m_finestLevel where m_finestLevel = m_numLevels-1. \ If m_lBase > 0, then the data at level m_lBase - 1 is used to interpolate boundary conditions at boundary cells that are not adjacent to the domain boundary. \

{\bf Arguments:}\ a_phiLevel (modified): pointers to current guess at the solution values for levels (lMin = max(m_lBase-1,0)) ... m_finestLevel. Vector index corresponds to level number. These values are updated in place.\ a_rhsLevel (not modified): pointers to right-hand side for levels lMin ... m_finestLevel.\


Member Data Documentation

Vector<ProblemDomain> AMRNodeSolverAlt::m_domainLevel [protected]
 

Vector<Real> AMRNodeSolverAlt::m_dxLevel [protected]
 

int AMRNodeSolverAlt::m_finestLevel [protected]
 

Vector<DisjointBoxLayout> AMRNodeSolverAlt::m_gridsLevel [protected]
 

bool AMRNodeSolverAlt::m_isDefined [protected]
 

int AMRNodeSolverAlt::m_lBase [protected]
 

Vector<LevelNodeSolver*> AMRNodeSolverAlt::m_levelSolver [protected]
 

int AMRNodeSolverAlt::m_numLevels [protected]
 

Vector<int> AMRNodeSolverAlt::m_refRatio [protected]
 

bool AMRNodeSolverAlt::m_verbose [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Apr 15 18:34:54 2003 for AMRNodeElliptic by doxygen1.2.16