#include <GenAMRLevelMG.H>
Collaboration diagram for GenAMRLevelMG< T >:
Public Methods | |
GenAMRLevelMG () | |
constructor | |
GenAMRLevelMG (const GenAMRSolver< T > *const a_parent, int a_level, const GenAMRLevelMGOp< T > *const a_opin, int a_ncomp=1) | |
define level | |
~GenAMRLevelMG () | |
destructor | |
bool | isDefined () const |
has define function been called? if not, most fcns won't work | |
void | define (const GenAMRSolver< T > *const a_parent, int a_level, const GenAMRLevelMGOp< T > *const a_opin, int a_ncomp=1) |
define level | |
void | setnumSmoothUp (int a_numSmoothUp) |
void | setnumSmoothDown (int a_numSmoothDown) |
void | applyAMROperator (Vector< T * > &a_phiLevel, T &a_LOfPhi) |
complete, 3-level operator | |
void | applyAMROperatorHphys (Vector< T * > &a_phiLevel, T &a_LOfPhi) |
complete, 3-level operator with homogeneous physical boundary conditions | |
void | computeAMRResidual (Vector< T * > &a_phiLevel, const Vector< T * > &a_rhsLevel) |
void | computeAMRResidual (T &a_resid, Vector< T * > &a_phiLevel, const Vector< T * > &a_rhsLevel) |
void | computeAMRResidualHphys (Vector< T * > &a_phiLevel, const Vector< T * > &a_rhsLevel) |
void | upSweep (Vector< T * > &a_phiLevel, const Vector< T * > &a_rhsLevel) |
void | downSweep (Vector< T * > &a_phiLevel, const Vector< T * > &a_rhsLevel) |
Vector< Real > | computeResidualNorm (int a_normType) const |
GenAMRLevelMGOp< T > * | levelOpPtr () const |
Vector< Real > | computeNorm (const T &a_mfinput, int a_normType) const |
Protected Methods | |
void | smooth (T &a_soln, const T &a_rhs) |
void | clearMemory () |
void | setDefaultValues () |
void | reflux (Vector< T * > &a_phiLevel, T &a_LOfPhi) |
void | initFRCoarse (Vector< T * > &a_phiLevel) |
internally useful functions | |
void | incrementFRFine (Vector< T * > &a_phiLevel) |
Protected Attributes | |
const GenAMRSolver< T > * | m_parent |
GenLevelMG< T > | m_levelMG |
GenMGInterp< T > | m_mginterp |
LevelFluxRegister | m_levfluxreg |
bool | m_isDefined |
DisjointBoxLayout | m_coarsenedGrids |
T | m_resid |
T | m_corr |
T | m_dcorr |
T | m_lofPhi |
T | m_phiSave |
T | m_resC |
Copier | m_residualCopier |
Copier | m_fineExchangeCopier |
int | m_level |
GenAMRLevelMGOp< T > * | m_levelopPtr |
CoarseAverage | m_averageOp |
bool | m_arrayViewVerbose |
Private Methods | |
void | setArrayViewVerbose (bool a_verbosity) |
GenAMRLevelMG (const GenAMRLevelMG< T > &) | |
void | operator= (const GenAMRLevelMG< T > &) |
Friends | |
class | GenAMRSolver< T > |
GenAMRLevelMG manages the operations on a level for GenAMRSolver. GenAMRSolver contains a vector of GenAMRLevelMG's (one for each level). This class should be considered internal to GenAMRSolver and should not be considered part of the Chombo API.
|
constructor
|
|
define level Define GenAMRLevelMG from the inputs. |
|
destructor
|
|
|
|
complete, 3-level operator 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. |
|
complete, 3-level operator with homogeneous physical boundary conditions 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. |
|
|
|
Compute complete, 3-level residual and return it in the argument a_resid |
|
Compute complete, 3-level residual and put it into local data m_resid |
|
Compute complete, 3-level residual with homogeneous physical BCs and inhomogeneous C/F BCs and put it into local data m_resid |
|
|
|
compute and return norm of internal data m_resid. |
|
define level Define GenAMRLevelMG from the inputs. The GenAMRLevelMG will only work for the input GenAMRSolver. A LevelMG is created. |
|
Sweep down multigrid v-cycle |
|
increment fluxregisters with fine flux |
|
internally useful functions Fill fluxregisters with coarse flux |
|
has define function been called? if not, most fcns won't work
|
|
|
|
|
|
reflux enforces flux-matching from finer levels. Steps involved: a)initialize flux register with coarse flux b)increment flux register with sum of fine fluxes b)modify solution with flux difference |
|
|
|
|
|
Set number of multigrid smoothings on way down V-cycle; Default == 4. |
|
Set number of multigrid smoothings on way up V-cycle; Default == 4. |
|
smooth a_soln |
|
Sweep up multigrid v-cycle |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|