#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 |
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
1.2.16