11 #ifndef _VCAMRPOISSONOP2_H_ 12 #define _VCAMRPOISSONOP2_H_ 17 #include "NamespaceHeader.H" 51 bool a_homogeneous =
false);
60 bool a_homogeneous =
false);
114 int a_coarseningFactor);
192 const Box& a_facebox,
194 int a_ref = 1)
const ;
232 const Real& a_coarsedx,
251 const Real& a_coarsedx,
258 bool a_homoOnly =
true);
269 void setDefaultValues();
291 #include "NamespaceFooter.H" void define(const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_gridsFiner, const DisjointBoxLayout &a_gridsCoarser, const Real &a_dxLevel, int a_refRatio, int a_refRatioFiner, const ProblemDomain &a_domain, BCHolder a_bc, const Copier &a_exchange, const CFRegion &a_cfregion)
RefCountedPtr< LevelData< FArrayBox > > m_aCoef
Identity operator spatially varying coefficient storage (cell-centered) — if you change this call re...
Definition: VCAMRPoissonOp2.H:149
LevelData< FArrayBox > & identityCoef()
Returns identity coefficient data.
Definition: VCAMRPoissonOp2.H:117
virtual void preCond(LevelData< FArrayBox > &a_correction, const LevelData< FArrayBox > &a_residual)
Vector< CFRegion > m_cfregion
Definition: VCAMRPoissonOp2.H:288
Real m_time
Definition: VCAMRPoissonOp2.H:165
virtual ~VCAMRPoissonOp2Factory()
Definition: VCAMRPoissonOp2.H:211
A reference-counting handle class.
Definition: RefCountedPtr.H:66
Vector< RefCountedPtr< LevelData< FArrayBox > > > m_aCoef
Definition: VCAMRPoissonOp2.H:282
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:130
RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > m_bCoefInterpolator
Definition: VCAMRPoissonOp2.H:162
virtual void overlapGSRB(LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
void finerOperatorChanged(const MGLevelOp< LevelData< FArrayBox > > &a_operator, int a_coarseningFactor)
virtual void levelJacobi(LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
Real m_beta
Definition: VCAMRPoissonOp2.H:280
VCAMRPoissonOp2()
Definition: VCAMRPoissonOp2.H:35
const int SpaceDim
Definition: SPACE.H:39
Definition: AMRMultiGrid.H:35
Vector< Copier > m_exchangeCopiers
Definition: VCAMRPoissonOp2.H:287
Definition: AMRPoissonOp.H:34
A FArrayBox-like container for face-centered fluxes.
Definition: FluxBox.H:22
Real m_alpha
Definition: VCAMRPoissonOp2.H:279
LevelData< FArrayBox > m_lambda
Reciprocal of the diagonal entry of the operator matrix.
Definition: VCAMRPoissonOp2.H:155
Definition: CoefficientInterpolator.H:29
virtual ~VCAMRPoissonOp2()
Definition: VCAMRPoissonOp2.H:43
Vector< ProblemDomain > m_domains
Definition: VCAMRPoissonOp2.H:271
double Real
Definition: REAL.H:33
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" ...
Definition: VCAMRPoissonOp2.H:206
Definition: MultiGrid.H:30
Definition: VCAMRPoissonOp2.H:25
Vector< Real > m_dx
Definition: VCAMRPoissonOp2.H:274
BCHolder m_bc
Definition: VCAMRPoissonOp2.H:277
bool m_lambdaNeedsResetting
Definition: VCAMRPoissonOp2.H:168
virtual void looseGSRB(LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
int m_coefficient_average_type
Definition: VCAMRPoissonOp2.H:266
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" ...
LayoutData< CFIVS > m_hiCFIVS[SpaceDim]
Definition: VCAMRPoissonOp2.H:159
virtual void levelGSRBLazy(LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
Vector< RefCountedPtr< LevelData< FArrayBox > > > m_lambda
Definition: VCAMRPoissonOp2.H:285
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.
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:465
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.
Vector< RefCountedPtr< LevelData< FluxBox > > > m_bCoef
Definition: VCAMRPoissonOp2.H:283
virtual void reflux(const LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_residual, AMRLevelOp< LevelData< FArrayBox > > *a_finerOp)
virtual void levelGSRB(LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
RefCountedPtr< LevelData< FluxBox > > m_bCoef
Laplacian operator spatially varying coefficient storage (face-centered) — if you change this call r...
Definition: VCAMRPoissonOp2.H:152
void setBCoefInterpolator(RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > &a_bCoefInterpolator)
Definition: VCAMRPoissonOp2.H:127
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
Definition: FArrayBox.H:44
virtual void setAlphaAndBeta(const Real &a_alpha, const Real &a_beta)
For tga stuff.
LayoutData< CFIVS > m_loCFIVS[SpaceDim]
Definition: VCAMRPoissonOp2.H:158
void setTime(Real a_time)
Vector< int > m_refRatios
Definition: VCAMRPoissonOp2.H:275
virtual void restrictResidual(LevelData< FArrayBox > &a_resCoarse, LevelData< FArrayBox > &a_phiFine, const LevelData< FArrayBox > &a_rhsFine)
virtual void applyOpNoBoundary(LevelData< FArrayBox > &a_lhs, const LevelData< FArrayBox > &a_phi)
Definition: AMRMultiGrid.H:231
virtual void levelMultiColor(LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
LevelData< FluxBox > & BCoef()
Returns the B coefficient.
Definition: VCAMRPoissonOp2.H:133
virtual void computeLambda()
Compute lambda once alpha, aCoef, beta, bCoef are defined.
virtual void resetLambda()
Should be called before the relaxation parameter is needed.
Vector< DisjointBoxLayout > m_boxes
Definition: VCAMRPoissonOp2.H:272
RefCountedPtr< CoefficientInterpolator< LevelData< FluxBox >, LevelData< FArrayBox > > > BCoefInterpolator()
Definition: VCAMRPoissonOp2.H:139