24 #include "AMRNodeOpF_F.H" 27 #include "NamespaceHeader.H" 65 const Real& a_dxLevel,
75 const Real& a_dxLevel,
85 const Real& a_dxLevel,
97 bool a_homogeneous =
false);
107 bool a_homogeneous =
false);
112 const int& a_refRat);
170 bool a_homogeneousPhysBC,
180 bool a_homogeneousPhysBC,
189 bool a_homogeneousPhysBC);
198 bool a_homogeneousPhysBC,
207 bool a_homogeneousPhysBC,
215 bool a_homogeneousPhysBC);
319 const Real& a_coarsedx,
339 bool homoOnly =
true);
360 #include "NamespaceFooter.H" ProblemDomain m_domainInteriorNodes
Definition: AMRNodeOp.H:261
virtual void prolongIncrement(LevelData< NodeFArrayBox > &a_phiThisLevel, const LevelData< NodeFArrayBox > &a_correctCoarse)
NodeQCFI m_interpWithCoarser
Definition: AMRNodeOp.H:270
virtual void residual(LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs, bool a_homogeneous=false)
virtual ~AMRNodeOp()
Definition: AMRNodeOp.H:43
virtual void preCond(LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_residual)
Definition: AMRNodeOp.H:32
virtual void relax(LevelData< NodeFArrayBox > &a_e, const LevelData< NodeFArrayBox > &a_residual, int iterations)
virtual void axby(LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_x, const LevelData< NodeFArrayBox > &a_y, Real a, Real b)
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:130
LayoutData< Vector< IntVectSet > > m_IVSVcoarsenedFine
Definition: AMRNodeOp.H:303
Class to interpolate quadratically at coarse/fine interface.
Definition: NodeQCFI.H:28
NodeCoarseAverage m_averageOpMG
Definition: AMRNodeOp.H:271
virtual void AMRUpdateResidual(LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection)
virtual void applyOp(LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_phi, bool a_homogeneous=false)
ProblemDomain m_domain
Definition: AMRNodeOp.H:264
DisjointBoxLayout m_coarsenedFineGrids
Definition: AMRNodeOp.H:274
Vector< DisjointBoxLayout > m_boxes
Definition: AMRNodeOp.H:352
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:137
Definition: NodeLevelDataOps.H:32
virtual Real AMRNorm(const LevelData< NodeFArrayBox > &a_coarseResid, const LevelData< NodeFArrayBox > &a_fineResid, const int &a_refRat, const int &a_ord)
Real m_alpha
Definition: AMRNodeOp.H:252
void levelGSRB(LevelData< NodeFArrayBox > &a_e, const LevelData< NodeFArrayBox > &a_residual)
Real m_dx
Definition: AMRNodeOp.H:262
Real m_dxCrse
Definition: AMRNodeOp.H:263
LayoutData< NodeCFIVS > m_loCFIVS[SpaceDim]
Definition: AMRNodeOp.H:267
Vector< ProblemDomain > m_domains
Definition: AMRNodeOp.H:351
const int SpaceDim
Definition: SPACE.H:39
Definition: AMRMultiGrid.H:35
Vector< Real > m_dx
Definition: AMRNodeOp.H:353
int m_refToFiner
Definition: AMRNodeOp.H:273
virtual void AMRRestrict(LevelData< NodeFArrayBox > &a_resCoarse, const LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection)
int m_refToCoarser
Definition: AMRNodeOp.H:272
virtual void AMROperatorNF(LevelData< NodeFArrayBox > &a_LofPhi, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, bool a_homogeneousPhysBC)
virtual void AMRResidualNF(LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, const LevelData< NodeFArrayBox > &a_rhs, bool a_homogeneousPhysBC)
virtual Real norm(const LevelData< NodeFArrayBox > &a_x, int a_ord)
Real m_beta
Definition: AMRNodeOp.H:356
void(* NodeBCFunc)(NodeFArrayBox &a_state, const Box &a_valid, const ProblemDomain &a_domain, Real a_dx, bool a_homogeneous)
Definition: NodeBCFunc.H:23
LayoutData< Vector< IntVectSet > > m_IVSV
Definition: AMRNodeOp.H:288
double Real
Definition: REAL.H:33
NodeBCFunc m_bc
Definition: AMRNodeOp.H:355
virtual Real dotProduct(const LevelData< NodeFArrayBox > &a_1, const LevelData< NodeFArrayBox > &a_2)
virtual void incr(LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_x, Real a_scale)
LayoutData< NodeCFIVS > m_hiCFIVS[SpaceDim]
Definition: AMRNodeOp.H:268
LayoutData< Vector< IntVectSet > > m_IVSVcoarsened
Definition: AMRNodeOp.H:299
virtual void assign(LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs)
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:31
LoHiSide
Definition: LoHiSide.H:27
virtual void applyOpOnly(LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_phi)
virtual void scale(LevelData< NodeFArrayBox > &a_lhs, const Real &a_scale)
bool m_hasFiner
Definition: AMRNodeOp.H:275
NodeLevelDataOps m_levelOps
Definition: AMRNodeOp.H:265
LayoutData< BitSet > m_IVSVfull
Definition: AMRNodeOp.H:292
virtual void AMRProlong(LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection)
virtual void AMROperator(LevelData< NodeFArrayBox > &a_LofPhi, const LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< NodeFArrayBox > > *a_finerOp)
virtual void createCoarsened(LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs, const int &a_refRat)
void setCFIVS(const DisjointBoxLayout &a_grids)
virtual void AMROperatorNC(LevelData< NodeFArrayBox > &a_LofPhi, const LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phi, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< NodeFArrayBox > > *a_finerOp)
void homogeneousCFInterp(LevelData< NodeFArrayBox > &a_phif)
Definition: DataIndex.H:112
Vector< int > m_refRatios
Definition: AMRNodeOp.H:354
virtual void create(LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs)
void define(const DisjointBoxLayout &a_grids, const Real &a_dx, const ProblemDomain &a_domain, NodeBCFunc a_bc)
virtual void AMRResidual(LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiCoarse, const LevelData< NodeFArrayBox > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< NodeFArrayBox > > *a_finerOp)
virtual ~AMRNodeOpFactory()
Definition: AMRNodeOp.H:311
virtual void restrictResidual(LevelData< NodeFArrayBox > &a_resCoarse, LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_rhsFine)
Definition: AMRNodeOp.H:308
Real m_beta
Definition: AMRNodeOp.H:252
virtual void setToZero(LevelData< NodeFArrayBox > &a_x)
void projectFineInterior(LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiFine)
Copier m_exchangeCopier
Definition: AMRNodeOp.H:269
Replaces coarse-level data with an average of fine-level data.
Definition: NodeCoarseAverage.H:25
virtual void AMRResidualNC(LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs, bool a_homogeneousPhysBC, AMRLevelOp< LevelData< NodeFArrayBox > > *a_finerOp)
Definition: AMRMultiGrid.H:231
NodeBCFunc m_bc
Definition: AMRNodeOp.H:266
virtual void createCoarser(LevelData< NodeFArrayBox > &a_coarse, const LevelData< NodeFArrayBox > &a_fine, bool ghosted)
virtual int refToCoarser()
Definition: AMRNodeOp.H:158
LayoutData< Vector< IntVectSet > > m_IVSVext
Definition: AMRNodeOp.H:295