MGLevelOp< T > Class Template Reference

#include <MultiGrid.H>

Inheritance diagram for MGLevelOp< T >:

Inheritance graph
[legend]
Collaboration diagram for MGLevelOp< T >:

Collaboration graph
[legend]

List of all members.


Detailed Description

template<class T>
class MGLevelOp< T >

class MGLevelOp handles the additional tasks of coordinating operations between this level, and the level one coarser than this 'level'

Public Member Functions

virtual ~MGLevelOp ()
virtual void createCoarser (T &a_coarse, const T &a_fine, bool ghosted)=0
virtual void relax (T &a_correction, const T &a_residual, int a_iterations)=0
virtual void restrictResidual (T &a_resCoarse, T &a_phiFine, const T &a_rhsFine)=0
virtual void prolongIncrement (T &a_phiThisLevel, const T &a_correctCoarse)=0

Constructor & Destructor Documentation

template<class T>
virtual MGLevelOp< T >::~MGLevelOp (  )  [inline, virtual]


Member Function Documentation

template<class T>
virtual void MGLevelOp< T >::createCoarser ( T &  a_coarse,
const T &  a_fine,
bool  ghosted 
) [pure virtual]

Create a coarsened (by two) version of the input data. This does not include averaging the data. So if a_fine is over a Box of (0, 0, 0) (63, 63, 63), a_fine should be over a Box (0, 0, 0) (31, 31, 31).

Implemented in AMRNodeOp, AMRPoissonOp, NewPoissonOp, ResistivityOp, VCAMRPoissonOp, ViscousTensorOp, EBAMRPoissonOp, EBConductivityOp, EBPoissonOp, and EBViscousTensorOp.

template<class T>
virtual void MGLevelOp< T >::relax ( T &  a_correction,
const T &  a_residual,
int  a_iterations 
) [pure virtual]

Use your relaxtion operator to remove the high frequency wave numbers from the correction so that it may be averaged to a coarser refinement. A point relaxtion scheme, for example takes the form a_correction -= lambda*(L(a_correction) - a_residual).

Implemented in AMRNodeOp, AMRPoissonOp, NewPoissonOp, ResistivityOp, VCAMRPoissonOp, VCAMRPoissonOp2, ViscousTensorOp, EBAMRPoissonOp, EBConductivityOp, EBPoissonOp, and EBViscousTensorOp.

template<class T>
virtual void MGLevelOp< T >::restrictResidual ( T &  a_resCoarse,
T &  a_phiFine,
const T &  a_rhsFine 
) [pure virtual]

calculate restricted residual a_resCoarse[2h] = I[h->2h] (rhsFine[h] - L[h](phiFine[h])

Implemented in AMRNodeOp, AMRPoissonOp, NewPoissonOp, ResistivityOp, VCAMRPoissonOp, VCAMRPoissonOp2, ViscousTensorOp, EBAMRPoissonOp, EBConductivityOp, EBPoissonOp, and EBViscousTensorOp.

template<class T>
virtual void MGLevelOp< T >::prolongIncrement ( T &  a_phiThisLevel,
const T &  a_correctCoarse 
) [pure virtual]

correct the fine solution based on coarse correction a_phiThisLevel += I[2h->h](a_correctCoarse)

Implemented in AMRNodeOp, AMRPoissonOp, NewPoissonOp, ResistivityOp, VCAMRPoissonOp, ViscousTensorOp, EBAMRPoissonOp, EBConductivityOp, EBPoissonOp, and EBViscousTensorOp.


The documentation for this class was generated from the following file:

Generated on Tue Apr 14 14:23:44 2009 for Chombo + EB by  doxygen 1.5.5