Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

LevelMG Class Reference

#include <LevelMG.H>

Collaboration diagram for LevelMG:

Collaboration graph
[legend]
List of all members.

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.


Public Member Functions

bool isDefined () const
 Has this object been fully defined?
 LevelMG ()
 Default 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).
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 &L, int refCoarse, const LevelOp *const opin_a)
 Constructor for coarsened version of object.
 LevelMG (const LevelMG &L, int refCoarse, const LevelOp *opin_a)
 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.

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

Private Member Functions

void crseCorrect (LevelData< FArrayBox > &a_fine, const LevelData< FArrayBox > &a_crse, int a_refRat)
void operator= (const LevelMG &levmgin)
 LevelMG (const LevelMG &levmgin)


Constructor & Destructor Documentation

LevelMG::LevelMG  ) 
 

Default 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 L,
int  refCoarse,
const LevelOp opin_a
 

Constructor for coarsened version of object.

LevelMG::~LevelMG  ) 
 

Destructor.

LevelMG::LevelMG const LevelMG levmgin  )  [inline, private]
 


Member Function Documentation

bool LevelMG::isDefined  )  const
 

Has this object been fully defined?

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).

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 LevelMG L,
int  refCoarse,
const LevelOp *const  opin_a
 

Constructor for coarsened version of object.

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::setnumBottomGSRB int  a_numBottomGSRB  )  [inline]
 

Set number of smoothing steps at bottom.

void LevelMG::setnumSmoothUp int  a_numSmoothUp  )  [inline]
 

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

void LevelMG::setnumSmoothDown int  a_numSmoothDown  )  [inline]
 

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

LevelOp* LevelMG::levelOpPtr  ) 
 

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

LevelMG* LevelMG::lCoarsePtr  ) 
 

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

void LevelMG::setDefaultValues  )  [protected]
 

void LevelMG::clearMemory  )  [protected]
 

void LevelMG::crseCorrect LevelData< FArrayBox > &  a_fine,
const LevelData< FArrayBox > &  a_crse,
int  a_refRat
[private]
 

correct fine on intersection with crse should only be called internally because this is not written for general grid layouts

void LevelMG::operator= const LevelMG levmgin  )  [inline, private]
 


Member Data Documentation

bool LevelMG::m_isDefined [protected]
 

LevelData<FArrayBox> LevelMG::m_resid [protected]
 

LevelData<FArrayBox> LevelMG::m_crseResid [protected]
 

LevelData<FArrayBox> LevelMG::m_crseCorr [protected]
 

DisjointBoxLayout LevelMG::m_ba [protected]
 

DisjointBoxLayout LevelMG::m_baCoarsened [protected]
 

const DisjointBoxLayout* LevelMG::m_baseBaPtr [protected]
 

Real LevelMG::m_dxLevel [protected]
 

ProblemDomain LevelMG::m_domain [protected]
 

int LevelMG::m_nCoarserLevels [protected]
 

LevelMG* LevelMG::m_lCoarsePtr [protected]
 

LevelOp* LevelMG::m_levelopPtr [protected]
 

int LevelMG::m_numBottomGSRB [protected]
 

int LevelMG::m_numSmoothUp [protected]
 

int LevelMG::m_numSmoothDown [protected]
 

int LevelMG::m_refToCoar [protected]
 

CoarseAverage LevelMG::m_averageOp [protected]
 


The documentation for this class was generated from the following file:
Generated on Thu May 12 18:21:14 2005 for Chombo by doxygen 1.3.8