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

AMRLevelMG Class Reference

class which manages data and operations on a level for AMRSolver More...

#include <AMRLevelMG.H>

Collaboration diagram for AMRLevelMG:

Collaboration graph
[legend]
List of all members.

Public Methods

 AMRLevelMG ()
 ~AMRLevelMG ()
 AMRLevelMG (const AMRSolver *const a_parent, int a_level, const LevelOp *const a_opin, int ncomp=1)
void define (const AMRSolver *const a_parent, int a_level, const LevelOp *const a_opin, int ncomp=1)
void setnumSmoothUp (int a_numSmoothUp)
void setnumSmoothDown (int a_numSmoothDown)
void applyAMROperator (Vector< LevelData< FArrayBox > * > &a_phiLevel, LevelData< FArrayBox > &Lofphi)
void applyAMROperatorHphys (Vector< LevelData< FArrayBox > * > &a_phiLevel, LevelData< FArrayBox > &LofPhi)
void computeAMRResidual (Vector< LevelData< FArrayBox > * > &a_phiLevel, const Vector< LevelData< FArrayBox > * > &a_rhsLevel)
void computeAMRResidualHphys (Vector< LevelData< FArrayBox > * > &a_phiLevel, const Vector< LevelData< FArrayBox > * > &a_rhsLevel)
void computeAMRResidual (LevelData< FArrayBox > &a_resid, Vector< LevelData< FArrayBox > * > &a_phiLevel, const Vector< LevelData< FArrayBox > * > &a_rhsLevel)
void upSweep (Vector< LevelData< FArrayBox > * > &a_phiLevel, const Vector< LevelData< FArrayBox > * > &a_rhsLevel)
void downSweep (Vector< LevelData< FArrayBox > * > &a_phiLevel, const Vector< LevelData< FArrayBox > * > &a_rhsLevel)
Vector< RealcomputeResidualNorm (int normType) const
LevelOplevelOpPtr () const
bool isDefined () const

Protected Methods

Vector< RealcomputeNorm (const LevelData< FArrayBox > &a_mfinput, int a_normType) const
void crseCorrect (LevelData< FArrayBox > &a_soln, const LevelData< FArrayBox > &a_crseCorr, int a_nref)
void smooth (LevelData< FArrayBox > &a_soln, const LevelData< FArrayBox > &rhs)
void clearMemory ()
void setDefaultValues ()
void reflux (Vector< LevelData< FArrayBox > * > &a_phiLevel, LevelData< FArrayBox > &a_Lofphi)
void initFRCoarse (Vector< LevelData< FArrayBox > * > &a_phiLevel)
void incrementFRFine (Vector< LevelData< FArrayBox > * > &a_phiLevel)

Protected Attributes

const AMRSolverm_parent
LevelMG m_levelMG
MGInterp m_mginterp
LevelFluxRegister m_levfluxreg
bool m_isDefined
DisjointBoxLayout m_coarsenedGrids
LevelData< FArrayBoxm_resid
LevelData< FArrayBoxm_corr
LevelData< FArrayBoxm_dcorr
LevelData< FArrayBoxm_lofPhi
LevelData< FArrayBoxm_phiSave
LevelData< FArrayBoxm_resC
Copier m_residualCopier
Copier m_fineExchangeCopier
int m_level
LevelOpm_levelopPtr
CoarseAverage m_averageOp
bool m_arrayViewVerbose

Private Methods

void setArrayViewVerbose (bool a_verbosity)
AMRLevelMG & operator= (const AMRLevelMG &)
 AMRLevelMG (const AMRLevelMG &)

Friends

class AMRSolver

Detailed Description

class which manages data and operations on a level for AMRSolver

AMRLevelMG manages the operations on a level for AMRSolver. AMRSolver contains a vector of AMRLevelMG's (one for each level). This class should be considered internal to AMRSolver and should not be considered part of the Chombo API.


Constructor & Destructor Documentation

AMRLevelMG::AMRLevelMG  
 

AMRLevelMG::~AMRLevelMG  
 

AMRLevelMG::AMRLevelMG const AMRSolver *const    a_parent,
int    a_level,
const LevelOp *const    a_opin,
int    ncomp = 1
 

Define AMRLevelMG from the inputs.

AMRLevelMG::AMRLevelMG const AMRLevelMG &    [private]
 


Member Function Documentation

void AMRLevelMG::applyAMROperator Vector< LevelData< FArrayBox > * > &    a_phiLevel,
LevelData< FArrayBox > &    Lofphi
 

Complete, 3-level operator. Applies operator with inhomogeneous coarse-fine boundary conditions (and inhomogeneous domain boundary conditions. Refluxing is used to compute the operator at coarse-fine boundaries.

void AMRLevelMG::applyAMROperatorHphys Vector< LevelData< FArrayBox > * > &    a_phiLevel,
LevelData< FArrayBox > &    LofPhi
 

Complete, 3-level operator with homogeneous physical boundary conditions. Applies operator with inhomogeneous physical boundary conditions. Refluxing is used to compute the operator at coarse-fine boundaries.

void AMRLevelMG::clearMemory   [protected]
 

void AMRLevelMG::computeAMRResidual LevelData< FArrayBox > &    a_resid,
Vector< LevelData< FArrayBox > * > &    a_phiLevel,
const Vector< LevelData< FArrayBox > * > &    a_rhsLevel
 

Compute complete, 3-level residual and return it in the argument LevelData<FArrayBox>

void AMRLevelMG::computeAMRResidual Vector< LevelData< FArrayBox > * > &    a_phiLevel,
const Vector< LevelData< FArrayBox > * > &    a_rhsLevel
 

Compute complete, 3-level residual and put it into local data m_resid

void AMRLevelMG::computeAMRResidualHphys Vector< LevelData< FArrayBox > * > &    a_phiLevel,
const Vector< LevelData< FArrayBox > * > &    a_rhsLevel
 

Compute complete, 3-level residual with homogeneous physical BCs and inhomogeneous C/F BCs and put it into local data m_resid

Vector<Real> AMRLevelMG::computeNorm const LevelData< FArrayBox > &    a_mfinput,
int    a_normType
const [protected]
 

Vector<Real> AMRLevelMG::computeResidualNorm int    normType const
 

compute and return norm of internal data m_resid.

void AMRLevelMG::crseCorrect LevelData< FArrayBox > &    a_soln,
const LevelData< FArrayBox > &    a_crseCorr,
int    a_nref
[protected]
 

void AMRLevelMG::define const AMRSolver *const    a_parent,
int    a_level,
const LevelOp *const    a_opin,
int    ncomp = 1
 

Define AMRLevelMG from the inputs. The AMRLevelMG will only work for the input AMRSolver. A LevelMG is created.

void AMRLevelMG::downSweep Vector< LevelData< FArrayBox > * > &    a_phiLevel,
const Vector< LevelData< FArrayBox > * > &    a_rhsLevel
 

Sweep down v-cycle

void AMRLevelMG::incrementFRFine Vector< LevelData< FArrayBox > * > &    a_phiLevel [protected]
 

void AMRLevelMG::initFRCoarse Vector< LevelData< FArrayBox > * > &    a_phiLevel [protected]
 

bool AMRLevelMG::isDefined   const
 

LevelOp* AMRLevelMG::levelOpPtr   const
 

AMRLevelMG& AMRLevelMG::operator= const AMRLevelMG &    [private]
 

void AMRLevelMG::reflux Vector< LevelData< FArrayBox > * > &    a_phiLevel,
LevelData< FArrayBox > &    a_Lofphi
[protected]
 

void AMRLevelMG::setArrayViewVerbose bool    a_verbosity [private]
 

void AMRLevelMG::setDefaultValues   [protected]
 

void AMRLevelMG::setnumSmoothDown int    a_numSmoothDown
 

Set number of multigrid smoothings on way down V-cycle; Default == 4.

void AMRLevelMG::setnumSmoothUp int    a_numSmoothUp
 

Set number of multigrid smoothings on way up V-cycle; Default == 4.

void AMRLevelMG::smooth LevelData< FArrayBox > &    a_soln,
const LevelData< FArrayBox > &    rhs
[protected]
 

void AMRLevelMG::upSweep Vector< LevelData< FArrayBox > * > &    a_phiLevel,
const Vector< LevelData< FArrayBox > * > &    a_rhsLevel
 

Sweep up multigrid v-cycle. Computes residual on


Friends And Related Function Documentation

friend class AMRSolver [friend]
 


Member Data Documentation

bool AMRLevelMG::m_arrayViewVerbose [protected]
 

CoarseAverage AMRLevelMG::m_averageOp [protected]
 

DisjointBoxLayout AMRLevelMG::m_coarsenedGrids [protected]
 

LevelData<FArrayBox> AMRLevelMG::m_corr [protected]
 

LevelData<FArrayBox> AMRLevelMG::m_dcorr [protected]
 

Copier AMRLevelMG::m_fineExchangeCopier [protected]
 

bool AMRLevelMG::m_isDefined [protected]
 

int AMRLevelMG::m_level [protected]
 

LevelMG AMRLevelMG::m_levelMG [protected]
 

LevelOp* AMRLevelMG::m_levelopPtr [protected]
 

LevelFluxRegister AMRLevelMG::m_levfluxreg [protected]
 

LevelData<FArrayBox> AMRLevelMG::m_lofPhi [protected]
 

MGInterp AMRLevelMG::m_mginterp [protected]
 

const AMRSolver* AMRLevelMG::m_parent [protected]
 

LevelData<FArrayBox> AMRLevelMG::m_phiSave [protected]
 

LevelData<FArrayBox> AMRLevelMG::m_resC [protected]
 

LevelData<FArrayBox> AMRLevelMG::m_resid [protected]
 

Copier AMRLevelMG::m_residualCopier [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Jul 2 10:43:59 2002 for Chombo by doxygen1.2.16