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);
168 bool a_homogeneousPhysBC,
177 bool a_homogeneousPhysBC,
186 bool a_homogeneousPhysBC);
194 bool a_homogeneousPhysBC,
202 bool a_homogeneousPhysBC,
210 bool a_homogeneousPhysBC);
222 bool a_skip_res =
false);
310 const Real& a_coarsedx,
330 bool homoOnly =
true);
351 #include "NamespaceFooter.H" ProblemDomain m_domainInteriorNodes
Definition: AMRNodeOp.H:252
virtual void prolongIncrement(LevelData< NodeFArrayBox > &a_phiThisLevel, const LevelData< NodeFArrayBox > &a_correctCoarse)
NodeQCFI m_interpWithCoarser
Definition: AMRNodeOp.H:261
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:141
LayoutData< Vector< IntVectSet > > m_IVSVcoarsenedFine
Definition: AMRNodeOp.H:294
Class to interpolate quadratically at coarse/fine interface.
Definition: NodeQCFI.H:28
NodeCoarseAverage m_averageOpMG
Definition: AMRNodeOp.H:262
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:255
DisjointBoxLayout m_coarsenedFineGrids
Definition: AMRNodeOp.H:265
Vector< DisjointBoxLayout > m_boxes
Definition: AMRNodeOp.H:343
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:152
Definition: NodeLevelDataOps.H:31
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:244
void levelGSRB(LevelData< NodeFArrayBox > &a_e, const LevelData< NodeFArrayBox > &a_residual)
Real m_dx
Definition: AMRNodeOp.H:253
Real m_dxCrse
Definition: AMRNodeOp.H:254
LayoutData< NodeCFIVS > m_loCFIVS[SpaceDim]
Definition: AMRNodeOp.H:258
Vector< ProblemDomain > m_domains
Definition: AMRNodeOp.H:342
virtual void AMRRestrict(LevelData< NodeFArrayBox > &a_resCoarse, const LevelData< NodeFArrayBox > &a_residual, const LevelData< NodeFArrayBox > &a_correction, const LevelData< NodeFArrayBox > &a_coarseCorrection, bool a_skip_res=false)
const int SpaceDim
Definition: SPACE.H:38
Definition: AMRMultiGrid.H:39
Vector< Real > m_dx
Definition: AMRNodeOp.H:344
int m_refToFiner
Definition: AMRNodeOp.H:264
int m_refToCoarser
Definition: AMRNodeOp.H:263
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:347
void(* NodeBCFunc)(NodeFArrayBox &a_state, const Box &a_valid, const ProblemDomain &a_domain, Real a_dx, bool a_homogeneous)
Definition: NodeBCFunc.H:22
LayoutData< Vector< IntVectSet > > m_IVSV
Definition: AMRNodeOp.H:279
double Real
Definition: REAL.H:33
NodeBCFunc m_bc
Definition: AMRNodeOp.H:346
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:259
LayoutData< Vector< IntVectSet > > m_IVSVcoarsened
Definition: AMRNodeOp.H:290
virtual void assign(LevelData< NodeFArrayBox > &a_lhs, const LevelData< NodeFArrayBox > &a_rhs)
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
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:266
NodeLevelDataOps m_levelOps
Definition: AMRNodeOp.H:256
LayoutData< BitSet > m_IVSVfull
Definition: AMRNodeOp.H:283
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:114
Vector< int > m_refRatios
Definition: AMRNodeOp.H:345
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:302
virtual void restrictResidual(LevelData< NodeFArrayBox > &a_resCoarse, LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_rhsFine)
Definition: AMRNodeOp.H:299
Real m_beta
Definition: AMRNodeOp.H:244
virtual void setToZero(LevelData< NodeFArrayBox > &a_x)
void projectFineInterior(LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_phiFine)
Copier m_exchangeCopier
Definition: AMRNodeOp.H:260
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:233
NodeBCFunc m_bc
Definition: AMRNodeOp.H:257
virtual void createCoarser(LevelData< NodeFArrayBox > &a_coarse, const LevelData< NodeFArrayBox > &a_fine, bool ghosted)
virtual int refToCoarser()
Definition: AMRNodeOp.H:156
LayoutData< Vector< IntVectSet > > m_IVSVext
Definition: AMRNodeOp.H:286