#include <VCAMRPoissonOp2.H>

Public Member Functions | |
| void | finerOperatorChanged (const MGLevelOp< LevelData< FArrayBox > > &a_operator, int a_coarseningFactor) |
| LevelData< FArrayBox > & | identityCoef () |
| Returns identity coefficient data. | |
| virtual void | diagonalScale (LevelData< FArrayBox > &a_rhs, bool a_kappaWeighted) |
| For TGA. | |
| virtual void | divideByIdentityCoef (LevelData< FArrayBox > &a_rhs) |
| For TGA. | |
| void | setBCoefInterpolator (RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > &a_bCoefInterpolator) |
| LevelData< FluxBox > & | BCoef () |
| Returns the B coefficient. | |
| RefCountedPtr < CoefficientInterpolator < LevelData< FluxBox > , LevelData< FArrayBox > > > | BCoefInterpolator () |
| void | setTime (Real a_time) |
| virtual void | getFlux (FluxBox &a_flux, const LevelData< FArrayBox > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale) |
| virtual void | getFlux (FluxBox &a_flux, const LevelData< FArrayBox > &a_data, const FluxBox &a_bCoef, const Box &a_grid, const DataIndex &a_dit, Real a_scale) |
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) |
MGLevelOp functions | |
| 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 before the relaxation parameter is needed. | |
| 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] |
| RefCountedPtr < CoefficientInterpolator < LevelData< FluxBox > , LevelData< FArrayBox > > > | m_bCoefInterpolator |
| Real | m_time |
| bool | m_lambdaNeedsResetting |
| VCAMRPoissonOp2::VCAMRPoissonOp2 | ( | ) | [inline] |
References m_lambdaNeedsResetting.
| 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 the differential operator without any boundary or coarse-fine boundary conditions and no finer level
| a_ans | The result of the application of the operator to a_phi. | |
| a_phi | The data to which the operator is applied. |
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 before the relaxation parameter is needed.
| 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.
| void VCAMRPoissonOp2::finerOperatorChanged | ( | const MGLevelOp< LevelData< FArrayBox > > & | a_operator, | |
| int | a_coarseningFactor | |||
| ) | [virtual] |
This is called on multigrid operators when their AMR operators are altered.
Reimplemented from MGLevelOp< LevelData< FArrayBox > >.
Returns identity coefficient data.
Reimplemented from TGAHelmOp< LevelData< FArrayBox > >.
References m_aCoef.
| virtual void VCAMRPoissonOp2::diagonalScale | ( | LevelData< FArrayBox > & | a_rhs, | |
| bool | a_kappaWeighted | |||
| ) | [inline, virtual] |
For TGA.
Reimplemented from AMRPoissonOp.
References BoxLayout::dataIterator(), LevelData< T >::disjointBoxLayout(), m_aCoef, and LayoutIterator::ok().
| virtual void VCAMRPoissonOp2::divideByIdentityCoef | ( | LevelData< FArrayBox > & | a_rhs | ) | [inline, virtual] |
For TGA.
Reimplemented from AMRPoissonOp.
References BoxLayout::dataIterator(), LevelData< T >::disjointBoxLayout(), m_aCoef, and LayoutIterator::ok().
| void VCAMRPoissonOp2::setBCoefInterpolator | ( | RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > & | a_bCoefInterpolator | ) | [inline] |
Sets up a model that modifies b coefficient data when the operator's time is set.
| a_bCoefInterpolator | A CoefficientInterpolator that will be used to compute the b coefficient at specific times. |
References m_bCoefInterpolator.
| RefCountedPtr<CoefficientInterpolator<LevelData<FluxBox>, LevelData<FArrayBox> > > VCAMRPoissonOp2::BCoefInterpolator | ( | ) | [inline] |
References m_bCoefInterpolator.
| void VCAMRPoissonOp2::setTime | ( | Real | a_time | ) | [virtual] |
Sets the time centering of the operator. This interpolates b coefficient data at the given time if an interpolator is set.
Reimplemented from TGAHelmOp< LevelData< FArrayBox > >.
| virtual void VCAMRPoissonOp2::getFlux | ( | FluxBox & | a_flux, | |
| const LevelData< FArrayBox > & | a_data, | |||
| const Box & | a_grid, | |||
| const DataIndex & | a_dit, | |||
| Real | a_scale | |||
| ) | [inline, virtual] |
assumes we want to use member-data bCoef, then calls second getFlux function
Reimplemented from AMRPoissonOp.
Referenced by getFlux().
| virtual void VCAMRPoissonOp2::getFlux | ( | FluxBox & | a_flux, | |
| const LevelData< FArrayBox > & | a_data, | |||
| const FluxBox & | a_bCoef, | |||
| const Box & | a_grid, | |||
| const DataIndex & | a_dit, | |||
| Real | a_scale | |||
| ) | [inline, virtual] |
References FluxBox::define(), getFlux(), BoxLayoutData< T >::nComp(), and SpaceDim.
| 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.
Referenced by diagonalScale(), divideByIdentityCoef(), and identityCoef().
Laplacian operator spatially varying coefficient storage (face-centered) --- if you change this call resetLambda().
Reimplemented from AMRPoissonOp.
Referenced by BCoef().
Reciprocal of the diagonal entry of the operator matrix.
LayoutData<CFIVS> VCAMRPoissonOp2::m_loCFIVS[SpaceDim] [protected] |
LayoutData<CFIVS> VCAMRPoissonOp2::m_hiCFIVS[SpaceDim] [protected] |
RefCountedPtr<CoefficientInterpolator<LevelData<FluxBox>, LevelData<FArrayBox> > > VCAMRPoissonOp2::m_bCoefInterpolator [protected] |
Referenced by BCoefInterpolator(), and setBCoefInterpolator().
Real VCAMRPoissonOp2::m_time [protected] |
bool VCAMRPoissonOp2::m_lambdaNeedsResetting [protected] |
Referenced by VCAMRPoissonOp2().
1.5.5