11 #ifndef _EBPOISSONOP_H__ 12 #define _EBPOISSONOP_H__ 40 #include "NamespaceHeader.H" 46 #define EBPOISSONOP_JACOBI_OMEGA 0.67 50 #define EBPO_NUMSTEN 4 52 #define EBPO_NUMSTEN 8 56 THIS_WILL_ONLY_COMPILE_WHEN_CH_SPACEDIM_IS_2_OR_3;
99 const bool& a_hasMGObjects,
100 const int& a_numPreCondIters,
101 const int& a_relaxType,
102 const int& a_orderEB,
105 const IntVect& a_ghostCellsPhi,
106 const IntVect& a_ghostCellsRHS);
116 bool a_homogeneousPhysBC=
false);
129 const Real& a_weight,
130 const bool& a_homogeneousPhysBC);
136 const bool& a_homogeneousPhysBC,
146 bool a_homogeneousPhysBC,
148 bool do_exchange =
true);
152 bool a_homogeneousPhysBC)
155 applyOp(a_opPhi, a_phi, a_homogeneousPhysBC, dit,
true);
196 const Real& a_scale);
258 const IntVect& color,
int icolor);
340 const bool& a_lowOrder);
350 const bool& a_lowOrder);
369 bool a_homogeneousPhysBC,
385 bool a_homogeneousPhysBC,
396 bool a_homogeneousPhysBC,
422 #include "NamespaceFooter.H" virtual void GSColorAllRegular(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, const IntVect &a_color, const Real &a_weight, const bool &a_homogeneousPhysBC)
EBISLayout m_ebislCoarMG
Definition: EBPoissonOp.H:318
const IntVect m_ghostCellsPhi
Definition: EBPoissonOp.H:266
Real m_dxScale
Definition: EBPoissonOp.H:281
Real m_beta
Definition: EBPoissonOp.H:283
LayoutData< VoFIterator > m_vofItIrregColorDomLo[EBPO_NUMSTEN][SpaceDim]
Definition: EBPoissonOp.H:310
int m_numPreCondIters
Definition: EBPoissonOp.H:287
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:130
RealVect m_origin
Definition: EBPoissonOp.H:285
void operator=(const EBPoissonOp &a_opin)
Definition: EBPoissonOp.H:415
void applyDomainFlux(Box *a_loBox, Box *a_hiBox, int *a_hasLo, int *a_hasHi, Box &a_curPhiBox, int a_nComps, BaseFab< Real > &a_phiFAB, bool a_homogeneousPhysBC, const DataIndex &a_dit, const Real &a_beta)
void colorGS(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, const IntVect &color, int icolor)
virtual void incr(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, Real a_scale)
const IntVect m_ghostCellsRHS
Definition: EBPoissonOp.H:267
virtual void preCond(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
Definition: FaceIndex.H:28
Data that maintains a one-to-one mapping of T to the boxes in a BoxLayout.
Definition: LayoutData.H:46
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:137
LayoutData< RefCountedPtr< EBStencil > > m_colorEBStencil[EBPO_NUMSTEN]
Definition: EBPoissonOp.H:295
Definition: EBLevelGrid.H:30
DataIterator dataIterator() const
Definition: LayoutDataI.H:79
virtual void setToZero(LevelData< EBCellFAB > &a_lhs)
static bool nextColor(IntVect &color, const IntVect &limit)
void getOpFaceStencil(VoFStencil &a_stencil, const Vector< VolIndex > &a_allMonotoneVofs, const EBISBox &a_ebisbox, const VolIndex &a_vof, int a_dir, const Side::LoHiSide &a_side, const FaceIndex &a_face, const bool &a_lowOrder)
LayoutData< VoFIterator > m_vofItIrreg
Definition: EBPoissonOp.H:304
Definition: DataIterator.H:140
void levelMulticolorGS(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs)
virtual void scale(LevelData< EBCellFAB > &a_lhs, const Real &a_scale)
virtual void applyOp(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi, bool a_homogeneousPhysBC)
Definition: EBPoissonOp.H:150
virtual void axby(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, const LevelData< EBCellFAB > &a_y, Real a_a, Real a_b)
LayoutData< VoFIterator > m_vofItIrregDomHi[SpaceDim]
Definition: EBPoissonOp.H:308
LayoutData< VoFIterator > m_vofItIrregColor[EBPO_NUMSTEN]
Definition: EBPoissonOp.H:305
LayoutData< RefCountedPtr< EBStencil > > m_opEBStencil
Definition: EBPoissonOp.H:293
static int getIndex(const IntVect &a_color)
Real m_alpha
Definition: EBPoissonOp.H:282
ProblemDomain m_domainCoarMG
Definition: EBPoissonOp.H:319
Piecewise constant interpolation.
Definition: EBMGInterp.H:33
const int SpaceDim
Definition: SPACE.H:39
virtual Real dotProduct(const LevelData< EBCellFAB > &a_1, const LevelData< EBCellFAB > &a_2)
VoF-centered stencil.
Definition: Stencils.H:59
EBMGInterp m_ebInterpMG
Definition: EBPoissonOp.H:316
virtual void applyOp(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi, bool a_homogeneousPhysBC, DataIterator &a_dit, bool do_exchange=true)
virtual void restrictResidual(LevelData< EBCellFAB > &a_resCoarse, LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_rhsFine)
virtual void create(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
void levelJacobi(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs)
RealVect m_dx
Definition: EBPoissonOp.H:277
virtual void setVal(LevelData< EBCellFAB > &a_lhs, const Real &a_value)
double Real
Definition: REAL.H:33
Definition: MultiGrid.H:30
LayoutData< BaseIVFAB< Real > > m_alphaDiagWeight
Definition: EBPoissonOp.H:299
void THIS_IS_AN_ERROR_MESSAGE(void)
Definition: EBPoissonOp.H:54
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:31
LayoutData< VoFIterator > m_vofItIrregDomLo[SpaceDim]
Definition: EBPoissonOp.H:307
LoHiSide
Definition: LoHiSide.H:27
virtual Real norm(const LevelData< EBCellFAB > &a_rhs, int a_ord)
int m_orderEB
Definition: EBPoissonOp.H:286
static void Error(const char *const a_msg=m_nullString, int m_exitCode=CH_DEFAULT_ERROR_CODE)
Print out message to cerr and exit with the specified exit code.
virtual void createCoarser(LevelData< EBCellFAB > &a_coarse, const LevelData< EBCellFAB > &a_fine, bool a_ghosted)
void applyOpRegularAllDirs(Box *a_loBox, Box *a_hiBox, int *a_hasLo, int *a_hasHi, Box &a_curOpPhiBox, Box &a_curPhiBox, int a_nComps, BaseFab< Real > &a_curOpPhiFAB, const BaseFab< Real > &a_curPhiFAB, bool a_homogeneousPhysBC, const DataIndex &a_dit, const Real &a_beta)
virtual void GSColorAllIrregular(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, const IntVect &a_color, const bool &a_homogeneousPhysBC, int icolor)
static IntVect getColor(const int &a_icolor)
RefCountedPtr< BaseDomainBC > m_domainBC
Definition: EBPoissonOp.H:274
LayoutData< BaseIVFAB< Real > > m_betaDiagWeight
Definition: EBPoissonOp.H:301
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:465
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
void getInvDiagRHS(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
RefCountedPtr< BaseEBBC > m_ebBC
Definition: EBPoissonOp.H:275
Definition: DataIndex.H:112
Definition: EBPoissonOp.H:63
EBLevelGrid m_eblgCoarMG
Definition: EBPoissonOp.H:272
Piecewise constant interpolation.
Definition: EBMGAverage.H:31
LayoutData< RefCountedPtr< EBStencil > > m_rhsColorEBStencil[EBPO_NUMSTEN]
Definition: EBPoissonOp.H:297
LayoutData< VoFIterator > m_vofItIrregColorDomHi[EBPO_NUMSTEN][SpaceDim]
Definition: EBPoissonOp.H:311
void getOpVoFStencil(VoFStencil &a_stencil, const EBISBox &a_ebisbox, const VolIndex &a_vof)
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
bool m_hasMGObjects
Definition: EBPoissonOp.H:313
void getJacobiRelaxCoeff(LevelData< EBCellFAB > &a_relaxCoeff)
EBPoissonOp(const EBPoissonOp &a_opin)
Definition: EBPoissonOp.H:410
virtual void residual(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousPhysBC=false)
Volume of Fluid Index.
Definition: VolIndex.H:31
void applyOpRegular(int idir, Box *a_loBox, Box *a_hiBox, int *a_hasLo, int *a_hasHi, Box &a_curOpPhiBox, Box &a_curPhiBox, int a_nComps, BaseFab< Real > &a_curOpPhiFAB, const BaseFab< Real > &a_curPhiFAB, bool a_homogeneousPhysBC, const DataIndex &a_dit, const Real &a_beta)
Definition: EBISLayout.H:39
virtual void relax(LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations)
RealVect m_invDx
Definition: EBPoissonOp.H:279
virtual void prolongIncrement(LevelData< EBCellFAB > &a_phiThisLevel, const LevelData< EBCellFAB > &a_correctCoarse)
RealVect m_invDx2
Definition: EBPoissonOp.H:280
Copier m_exchangeCopier
Definition: EBPoissonOp.H:290
int m_relaxType
Definition: EBPoissonOp.H:288
Vector< IntVect > m_colors
Definition: EBPoissonOp.H:268
DisjointBoxLayout m_dblCoarMG
Definition: EBPoissonOp.H:317
EBMGAverage m_ebAverageMG
Definition: EBPoissonOp.H:315
EBLevelGrid m_eblg
Definition: EBPoissonOp.H:271
Real m_time
Definition: EBPoissonOp.H:284
virtual void assign(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)