#include <MultiGrid.H>
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 |
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.
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.
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.
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.