Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class 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 Member Functions

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.
LevelMGlCoarsePtr ()
 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 Member Functions

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
LevelMGm_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 Oct 5 12:48:40 2005 for Chombo&AMRIdealMHD by  doxygen 1.4.1