#include <VCAMRPoissonOp2.H>


Public Member Functions | |
VCAMRPoissonOp2 functions | |
| VCAMRPoissonOp2 () | |
| virtual | ~VCAMRPoissonOp2 () |
| virtual void | residualI (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs, bool a_homogeneous=false) |
| despite what you might think, the "I" here means "Ignore the coarse-fine boundary" | |
| virtual void | preCond (LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_residual) |
| virtual void | applyOpI (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi, bool a_homogeneous=false) |
| despite what you might think, the "I" here means "Ignore the coarse-fine boundary" | |
| virtual void | applyOpNoBoundary (LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi) |
| apply operator without any boundary or coarse-fine boundary conditions and no finer level | |
MGLevelOp functions | |
| virtual void | relax (LevelData< FArrayBox > &a_e, const LevelData< FArrayBox > &a_residual, int a_iterations) |
| virtual void | restrictResidual (LevelData< FArrayBox > &a_resCoarse, LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_rhsFine) |
VCAMRPoissonOp2 functions | |
| virtual void | setAlphaAndBeta (const Real &a_alpha, const Real &a_beta) |
| For tga stuff. | |
| virtual void | setCoefs (const RefCountedPtr< LevelData< FArrayBox > > &a_aCoef, const RefCountedPtr< LevelData< FluxBox > > &a_bCoef, const Real &a_alpha, const Real &a_beta) |
| Also calls reset lambda. | |
| virtual void | resetLambda () |
| Should be called every time coefs are changed. | |
| virtual void | computeLambda () |
| Compute lambda once alpha, aCoef, beta, bCoef are defined. | |
| virtual void | reflux (const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_residual, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp) |
Public Attributes | |
| RefCountedPtr< LevelData < FArrayBox > > | m_aCoef |
| Identity operator spatially varying coefficient storage (cell-centered) --- if you change this call resetLambda(). | |
| RefCountedPtr< LevelData < FluxBox > > | m_bCoef |
| Laplacian operator spatially varying coefficient storage (face-centered) --- if you change this call resetLambda(). | |
| LevelData< FArrayBox > | m_lambda |
| Reciprocal of the diagonal entry of the operator matrix. | |
Protected Member Functions | |
| virtual void | levelGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs) |
| virtual void | levelMultiColor (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs) |
| virtual void | looseGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs) |
| virtual void | overlapGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs) |
| virtual void | levelGSRBLazy (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs) |
| virtual void | levelJacobi (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs) |
| virtual void | getFlux (FArrayBox &a_flux, const FArrayBox &a_data, const FluxBox &a_bCoef, const Box &a_facebox, int a_dir, int a_ref=1) const |
| computes flux over face-centered a_facebox. | |
Protected Attributes | |
| LayoutData< CFIVS > | m_loCFIVS [SpaceDim] |
| LayoutData< CFIVS > | m_hiCFIVS [SpaceDim] |
| VCAMRPoissonOp2::VCAMRPoissonOp2 | ( | ) | [inline] |
| virtual VCAMRPoissonOp2::~VCAMRPoissonOp2 | ( | ) | [inline, virtual] |
| virtual void VCAMRPoissonOp2::residualI | ( | LevelData< FArrayBox > & | a_lhs, | |
| const LevelData< FArrayBox > & | a_phi, | |||
| const LevelData< FArrayBox > & | a_rhs, | |||
| bool | a_homogeneous = false | |||
| ) | [virtual] |
despite what you might think, the "I" here means "Ignore the coarse-fine boundary"
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::preCond | ( | LevelData< FArrayBox > & | a_cor, | |
| const LevelData< FArrayBox > & | a_residual | |||
| ) | [virtual] |
Given the current state of the residual the correction, apply your preconditioner to a_cor.
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::applyOpI | ( | LevelData< FArrayBox > & | a_lhs, | |
| const LevelData< FArrayBox > & | a_phi, | |||
| bool | a_homogeneous = false | |||
| ) | [virtual] |
despite what you might think, the "I" here means "Ignore the coarse-fine boundary"
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::applyOpNoBoundary | ( | LevelData< FArrayBox > & | a_ans, | |
| const LevelData< FArrayBox > & | a_phi | |||
| ) | [virtual] |
apply operator without any boundary or coarse-fine boundary conditions and no finer level
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::relax | ( | LevelData< FArrayBox > & | a_correction, | |
| const LevelData< FArrayBox > & | a_residual, | |||
| int | a_iterations | |||
| ) | [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).
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::restrictResidual | ( | LevelData< FArrayBox > & | a_resCoarse, | |
| LevelData< FArrayBox > & | a_phiFine, | |||
| const LevelData< FArrayBox > & | a_rhsFine | |||
| ) | [virtual] |
calculate restricted residual a_resCoarse[2h] = I[h->2h] (rhsFine[h] - L[h](phiFine[h])
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::setCoefs | ( | const RefCountedPtr< LevelData< FArrayBox > > & | a_aCoef, | |
| const RefCountedPtr< LevelData< FluxBox > > & | a_bCoef, | |||
| const Real & | a_alpha, | |||
| const Real & | a_beta | |||
| ) | [virtual] |
Also calls reset lambda.
| virtual void VCAMRPoissonOp2::resetLambda | ( | ) | [virtual] |
Should be called every time coefs are changed.
| virtual void VCAMRPoissonOp2::computeLambda | ( | ) | [virtual] |
Compute lambda once alpha, aCoef, beta, bCoef are defined.
| virtual void VCAMRPoissonOp2::reflux | ( | const LevelData< FArrayBox > & | a_phiFine, | |
| const LevelData< FArrayBox > & | a_phi, | |||
| LevelData< FArrayBox > & | a_residual, | |||
| AMRLevelOp< LevelData< FArrayBox > > * | a_finerOp | |||
| ) | [virtual] |
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::levelGSRB | ( | LevelData< FArrayBox > & | a_phi, | |
| const LevelData< FArrayBox > & | a_rhs | |||
| ) | [protected, virtual] |
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::levelMultiColor | ( | LevelData< FArrayBox > & | a_phi, | |
| const LevelData< FArrayBox > & | a_rhs | |||
| ) | [protected, virtual] |
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::looseGSRB | ( | LevelData< FArrayBox > & | a_phi, | |
| const LevelData< FArrayBox > & | a_rhs | |||
| ) | [protected, virtual] |
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::overlapGSRB | ( | LevelData< FArrayBox > & | a_phi, | |
| const LevelData< FArrayBox > & | a_rhs | |||
| ) | [protected, virtual] |
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::levelGSRBLazy | ( | LevelData< FArrayBox > & | a_phi, | |
| const LevelData< FArrayBox > & | a_rhs | |||
| ) | [protected, virtual] |
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::levelJacobi | ( | LevelData< FArrayBox > & | a_phi, | |
| const LevelData< FArrayBox > & | a_rhs | |||
| ) | [protected, virtual] |
Reimplemented from AMRPoissonOp.
| virtual void VCAMRPoissonOp2::getFlux | ( | FArrayBox & | a_flux, | |
| const FArrayBox & | a_data, | |||
| const FluxBox & | a_bCoef, | |||
| const Box & | a_facebox, | |||
| int | a_dir, | |||
| int | a_ref = 1 | |||
| ) | const [protected, virtual] |
computes flux over face-centered a_facebox.
Identity operator spatially varying coefficient storage (cell-centered) --- if you change this call resetLambda().
Reimplemented from AMRPoissonOp.
Laplacian operator spatially varying coefficient storage (face-centered) --- if you change this call resetLambda().
Reimplemented from AMRPoissonOp.
Reciprocal of the diagonal entry of the operator matrix.
LayoutData<CFIVS> VCAMRPoissonOp2::m_loCFIVS[SpaceDim] [protected] |
LayoutData<CFIVS> VCAMRPoissonOp2::m_hiCFIVS[SpaceDim] [protected] |
1.5.5