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

LevelMG Class Reference

Internal Chombo class to manage multigrid solve on a level. More...

#include <LevelMG.H>

Collaboration diagram for LevelMG:

Collaboration graph
[legend]
List of all members.

Public Methods

bool isDefined () const
 Has this object been fully defined?

 LevelMG ()
 Null Constructor.

 LevelMG (const DisjointBoxLayout &a_ba, const DisjointBoxLayout *a_baseBaPtr, Real a_dxLevel, int a_refRatio, const Box &a_domain, int a_nCoarserLevels, const LevelOp *const a_opin, int a_ncomp=1)
 Deprecated full constructor (use ProblemDomain instead of Box).

 LevelMG (const DisjointBoxLayout &a_ba, const DisjointBoxLayout *a_baseBaPtr, Real a_dxLevel, int a_refRatio, const ProblemDomain &a_domain, int a_nCoarserLevels, const LevelOp *const a_opin, int a_ncomp=1)
 Full constructor -- calls matching define function.

void define (const DisjointBoxLayout &a_ba, const DisjointBoxLayout *a_baseBaPtr, Real a_dxLevel, int a_refRatio, const Box &a_domain, int a_nCoarserLevels, const LevelOp *const a_opin, int a_ncomp=1)
 Deprecated full define function (use ProblemDomain instead of Box).

void define (const DisjointBoxLayout &a_ba, const DisjointBoxLayout *a_baseBaPtr, Real a_dxLevel, int a_refRatio, const ProblemDomain &a_domain, int a_nCoarserLevels, const LevelOp *const a_opin, int a_ncomp)
 Full Define Function.

void define (const LevelMG &a_level, int a_refCoarse, const LevelOp *const a_opin)
 Constructor for coarsened version of object.

 LevelMG (const LevelMG &a_level, int a_refCoarse, const LevelOp *a_opin)
 Constructor for coarsened version of object.

 ~LevelMG ()
 Destructor.

void mgRelax (LevelData< FArrayBox > &a_soln, const LevelData< FArrayBox > &a_rhs, bool bottomsolveflag)
 Invoke multigrid relaxation step.

void setNumBottomGSRB (int a_numBottomGSRB)
 Set number of smoothing steps at bottom.

void setNumSmoothUp (int a_numSmoothUp)
 Set number of smoothing steps on the way up V-cycle.

void setNumSmoothDown (int a_numSmoothDown)
 Set number of smoothing steps on the way down V-cycle.

LevelOplevelOpPtr ()
 this is a dangerous access function that should not generally be used.

LevelMG * lCoarsePtr ()
 this is another access function that should not be generally used.

void setConvergenceMetric (Real a_metric, int a_comp)
 sets convergence metric -- essentially a pass through to LevelOp


Protected Methods

void setDefaultValues ()
void clearMemory ()

Protected Attributes

bool m_isDefined
LevelData< FArrayBoxm_resid
LevelData< FArrayBoxm_crseResid
LevelData< FArrayBoxm_crseCorr
DisjointBoxLayout m_ba
DisjointBoxLayout m_baCoarsened
const DisjointBoxLayoutm_baseBaPtr
Real m_dxLevel
ProblemDomain m_domain
int m_nCoarserLevels
LevelMG * m_lCoarsePtr
LevelOpm_levelopPtr
int m_numBottomGSRB
int m_numSmoothUp
int m_numSmoothDown
int m_refToCoar
CoarseAverage m_averageOp

Detailed Description

Internal Chombo class to manage multigrid solve on a level.

Multigrid solver on a single multigrid level. This class should be considered internal to AMRSolver and not a part of the Chombo API.


Constructor & Destructor Documentation

LevelMG::LevelMG  
 

Null Constructor.

LevelMG::LevelMG const DisjointBoxLayout   a_ba,
const DisjointBoxLayout   a_baseBaPtr,
Real    a_dxLevel,
int    a_refRatio,
const Box   a_domain,
int    a_nCoarserLevels,
const LevelOp *const    a_opin,
int    a_ncomp = 1
 

Deprecated full constructor (use ProblemDomain instead of Box).

LevelMG::LevelMG const DisjointBoxLayout   a_ba,
const DisjointBoxLayout   a_baseBaPtr,
Real    a_dxLevel,
int    a_refRatio,
const ProblemDomain   a_domain,
int    a_nCoarserLevels,
const LevelOp *const    a_opin,
int    a_ncomp = 1
 

Full constructor -- calls matching define function.

LevelMG::LevelMG const LevelMG &    a_level,
int    a_refCoarse,
const LevelOp   a_opin
 

Constructor for coarsened version of object.

LevelMG::~LevelMG  
 

Destructor.


Member Function Documentation

void LevelMG::clearMemory   [protected]
 

void LevelMG::define const LevelMG &    a_level,
int    a_refCoarse,
const LevelOp *const    a_opin
 

Constructor for coarsened version of object.

void LevelMG::define const DisjointBoxLayout   a_ba,
const DisjointBoxLayout   a_baseBaPtr,
Real    a_dxLevel,
int    a_refRatio,
const ProblemDomain   a_domain,
int    a_nCoarserLevels,
const LevelOp *const    a_opin,
int    a_ncomp
 

Full Define Function.

Parameters:
a_ba  Grids at this multigrid level
a_baseBaPtr  Coarser grids
a_dxLevel  Cell spacing at this level
a_refRatio  Refinement ratio
a_domain  Physical domain of problem
a_nCoarserLevels  Number of multigrid levels coarser than this one
a_opin  LevelOp which encapsulates operator
a_ncomp  number of components

void LevelMG::define const DisjointBoxLayout   a_ba,
const DisjointBoxLayout   a_baseBaPtr,
Real    a_dxLevel,
int    a_refRatio,
const Box   a_domain,
int    a_nCoarserLevels,
const LevelOp *const    a_opin,
int    a_ncomp = 1
 

Deprecated full define function (use ProblemDomain instead of Box).

bool LevelMG::isDefined   const
 

Has this object been fully defined?

LevelMG* LevelMG::lCoarsePtr  
 

this is another access function that should not be generally used.

LevelOp* LevelMG::levelOpPtr  
 

this is a dangerous access function that should not generally be used.

void LevelMG::mgRelax LevelData< FArrayBox > &    a_soln,
const LevelData< FArrayBox > &    a_rhs,
bool    bottomsolveflag
 

Invoke multigrid relaxation step.

Default is pure MG V-cycle, suitable for use in multilevel solver application; otherwise, use approximate solver such as CG at bottom level. It is assumed that the problem has already been put in residual-correction form. In particular, only the homogeneous form of the physical and coarse-fine boundary conditions need be invoked.

void LevelMG::setConvergenceMetric Real    a_metric,
int    a_comp
 

sets convergence metric -- essentially a pass through to LevelOp

void LevelMG::setDefaultValues   [protected]
 

void LevelMG::setNumBottomGSRB int    a_numBottomGSRB [inline]
 

Set number of smoothing steps at bottom.

void LevelMG::setNumSmoothDown int    a_numSmoothDown
 

Set number of smoothing steps on the way down V-cycle.

void LevelMG::setNumSmoothUp int    a_numSmoothUp
 

Set number of smoothing steps on the way up V-cycle.


Member Data Documentation

CoarseAverage LevelMG::m_averageOp [protected]
 

DisjointBoxLayout LevelMG::m_ba [protected]
 

DisjointBoxLayout LevelMG::m_baCoarsened [protected]
 

const DisjointBoxLayout* LevelMG::m_baseBaPtr [protected]
 

LevelData<FArrayBox> LevelMG::m_crseCorr [protected]
 

LevelData<FArrayBox> LevelMG::m_crseResid [protected]
 

ProblemDomain LevelMG::m_domain [protected]
 

Real LevelMG::m_dxLevel [protected]
 

bool LevelMG::m_isDefined [protected]
 

LevelMG* LevelMG::m_lCoarsePtr [protected]
 

LevelOp* LevelMG::m_levelopPtr [protected]
 

int LevelMG::m_nCoarserLevels [protected]
 

int LevelMG::m_numBottomGSRB [protected]
 

int LevelMG::m_numSmoothDown [protected]
 

int LevelMG::m_numSmoothUp [protected]
 

int LevelMG::m_refToCoar [protected]
 

LevelData<FArrayBox> LevelMG::m_resid [protected]
 


The documentation for this class was generated from the following file:
Generated on Wed Jan 19 17:56:12 2005 for Chombo&INSwithParticles by doxygen1.2.16