11 #ifndef _NWOEBCONDUCTIVITYOP_H_ 12 #define _NWOEBCONDUCTIVITYOP_H_ 44 #include "NamespaceHeader.H" 89 const Real & a_dxCoar,
90 const int& a_refToFine,
91 const int& a_refToCoar,
92 const bool& a_hasFine,
93 const bool& a_hasCoar,
94 const bool& a_hasMGObjects,
95 const bool& a_layoutChanged,
101 const IntVect& a_ghostCellsPhi,
102 const IntVect& a_ghostCellsRHS,
103 const int& a_relaxType);
139 bool a_homogeneousBC,
148 bool a_homogeneousBC,
159 bool a_kappaWeighted);
179 const Box& a_ghostedBox,
194 bool a_homogeneousPhysBC=
false);
210 const bool& a_homogeneousPhysBC,
211 const bool& a_homogeneousCFBC);
225 const bool& a_homogeneous,
231 const bool& a_homogeneous,
241 bool a_homogeneousPhysBC =
false);
252 const int& a_refRat);
292 const Real& a_scale);
359 bool a_homogeneousBC,
368 bool a_homogeneousBC);
377 bool a_homogeneousBC,
385 bool a_homogeneousBC);
393 bool a_skip_res =
false );
498 bool a_homogeneousPhysBC,
508 bool a_homogeneousPhysBC,
528 const Box& a_ghostedBox,
534 const Box& a_ghostedBox,
637 const Box& a_faceBox,
653 const bool& a_lowOrder);
663 const bool& a_lowOrder);
683 #include "NamespaceFooter.H" EBMGInterp m_ebInterp
Definition: NWOEBConductivityOp.H:584
bool m_hasMGObjects
Definition: NWOEBConductivityOp.H:612
LayoutData< Vector< VoFStencil > > m_stencilCoar[2 *SpaceDim]
Definition: NWOEBConductivityOp.H:541
void diagonalScale(LevelData< EBCellFAB > &a_rhs, bool a_kappaWeighted)
void homogeneousCFInterp(LevelData< EBCellFAB > &a_phif)
virtual Real dotProduct(const LevelData< EBCellFAB > &a_1, const LevelData< EBCellFAB > &a_2)
void getOpVoFStencil(VoFStencil &a_stencil, const EBISBox &a_ebisbox, const VolIndex &a_vof)
EBFastFR-A class to encapsulate a levels worth of flux registers.
Definition: EBFastFR.H:39
ProblemDomain m_domainCoarMG
Definition: NWOEBConductivityOp.H:619
virtual void create(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
virtual void setToZero(LevelData< EBCellFAB > &a_lhs)
void getAlphaDiagWeight(LayoutData< BaseIVFAB< Real > > const *&a_alphaDiagWeight)
Definition: NWOEBConductivityOp.H:455
void fillGrad(const LevelData< EBCellFAB > &a_phi)
These functions are part of the LevelTGA interface......
Definition: NWOEBConductivityOp.H:164
#define CH_SPACEDIM
Definition: SPACE.H:51
int m_relaxType
Definition: NWOEBConductivityOp.H:545
DisjointBoxLayout m_dblCoarMG
Definition: NWOEBConductivityOp.H:617
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
bool m_hasInterpAve
Definition: NWOEBConductivityOp.H:578
static void doLazyRelax(bool a_doLazyRelax)
Definition: NWOEBConductivityOp.H:447
EBLevelGrid m_eblgCoarsenedFine
Definition: NWOEBConductivityOp.H:555
Real m_beta
Definition: NWOEBConductivityOp.H:569
virtual void AMROperator(LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
virtual void axby(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, const LevelData< EBCellFAB > &a_y, Real a_a, Real a_b)
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)
virtual void residual(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousPhysBC=false)
void operator=(const NWOEBConductivityOp &a_opin)
Definition: NWOEBConductivityOp.H:676
LayoutData< VoFIterator > m_vofIterDomHi[CH_SPACEDIM]
Definition: NWOEBConductivityOp.H:599
LevelData< EBCellFAB > m_relCoef
Multigrid relaxation coefficient.
Definition: NWOEBConductivityOp.H:591
LayoutData< Vector< FaceIndex > > m_faceitCoar[2 *SpaceDim]
Definition: NWOEBConductivityOp.H:540
virtual LayoutData< BaseIVFAB< VoFStencil > > * getFluxStencil(int ivar)=0
void defineEBCFStencils()
Definition: FaceIndex.H:28
Data that maintains a one-to-one mapping of T to the boxes in a BoxLayout.
Definition: BoxLayout.H:26
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:152
virtual void relax(LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations)
Definition: NWOEBConductivityOp.H:52
virtual void setVal(LevelData< EBCellFAB > &a_lhs, const Real &a_value)
LayoutData< RefCountedPtr< VCAggStencil > > m_opEBStencil
Definition: NWOEBConductivityOp.H:587
void incrementFRCoar(EBFastFR &a_fluxReg, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi)
LayoutData< CFIVS > m_loCFIVS[SpaceDim]
Definition: NWOEBConductivityOp.H:603
void defineStencils()
do not call this one unless you really know what you are doing
Definition: EBLevelGrid.H:30
void AMROperatorNC(LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
virtual void AMRResidual(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
void getDivFStencil(VoFStencil &a_vofStencil, const VolIndex &a_vof, const DataIndex &a_dit)
static void setForceNoEBCF(bool a_forceNoEBCF)
Definition: NWOEBConductivityOp.H:442
bool m_hasCoar
Definition: NWOEBConductivityOp.H:579
EBFastFR m_fastFR
Definition: NWOEBConductivityOp.H:607
EBMGAverage m_ebAverage
Definition: NWOEBConductivityOp.H:582
NWOEBConductivityOp(const NWOEBConductivityOp &a_opin)
Definition: NWOEBConductivityOp.H:671
void getFluxEBCF(EBFaceFAB &a_flux, const EBCellFAB &a_phi, const Box &a_ghostedBox, Vector< FaceIndex > &a_faceitEBCF, Vector< VoFStencil > &a_stenEBCF)
Definition: EBFaceFAB.H:28
virtual void AMROperatorNF(LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, bool a_homogeneousBC)
const IntVect m_ghostRHS
Definition: NWOEBConductivityOp.H:547
const RefCountedPtr< LevelData< EBFluxFAB > > getBScalingCoefficients()
Definition: NWOEBConductivityOp.H:475
RefCountedPtr< LevelData< BaseIVFAB< Real > > > m_bcoIrreg
Definition: NWOEBConductivityOp.H:566
Copier m_exchangeCopier
Definition: NWOEBConductivityOp.H:622
Piecewise constant interpolation.
Definition: EBMGInterp.H:33
const int SpaceDim
Definition: SPACE.H:38
virtual void resetACoefficient(RefCountedPtr< LevelData< EBCellFAB > > &a_acoef)
Definition: NWOEBConductivityOp.H:116
Definition: AMRMultiGrid.H:39
virtual void applyOp(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > *const a_phiCoarse, const bool &a_homogeneousPhysBC, const bool &a_homogeneousCFBC)
VoF-centered stencil.
Definition: Stencils.H:60
virtual void assign(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
LayoutData< BaseIVFAB< Real > > m_alphaDiagWeight
Definition: NWOEBConductivityOp.H:571
A EBFaceFAB-like container for edge-centered fluxes.
Definition: EBFluxFAB.H:25
static bool s_doLazyRelax
Definition: NWOEBConductivityOp.H:518
virtual void createCoarser(LevelData< EBCellFAB > &a_coarse, const LevelData< EBCellFAB > &a_fine, bool a_ghosted)
const RefCountedPtr< LevelData< EBCellFAB > > getAScalingCoefficients()
Definition: NWOEBConductivityOp.H:470
LayoutData< CFIVS > m_hiCFIVS[SpaceDim]
Definition: NWOEBConductivityOp.H:604
void setAlphaAndBeta(const Real &a_alpha, const Real &a_beta)
void fillPhiGhost(const EBCellFAB &a_phi, const DataIndex &a_datInd, bool a_homog) const
LayoutData< BaseIVFAB< Real > > m_betaDiagWeight
Definition: NWOEBConductivityOp.H:573
void GSColorAllIrregular(EBCellFAB &a_phi, const EBCellFAB &a_rhs, const int &a_icolor, const DataIndex &a_dit)
EBLevelGrid m_eblgCoar
Definition: NWOEBConductivityOp.H:553
const IntVect m_ghostPhi
Definition: NWOEBConductivityOp.H:546
~NWOEBConductivityOp()
Definition: NWOEBConductivityOp.H:106
Definition: EBCellFAB.H:29
EBLevelGrid m_eblg
Definition: NWOEBConductivityOp.H:551
EBMGAverage m_ebAverageMG
Definition: NWOEBConductivityOp.H:615
virtual void prolongIncrement(LevelData< EBCellFAB > &a_phiThisLevel, const LevelData< EBCellFAB > &a_correctCoarse)
double Real
Definition: REAL.H:33
virtual void preCond(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
virtual int refToCoarser()
virtual void kappaScale(LevelData< EBCellFAB > &a_rhs)
for eb only. kappa weight the rhs but do not multiply by the identity coefficient ...
static bool s_forceNoEBCF
Definition: NWOEBConductivityOp.H:517
virtual void applyOpNoBoundary(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
virtual function called by LevelTGA
Definition: NWOEBConductivityOp.H:214
virtual void AMRProlong(LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
void incrOpRegularAllDirs(Box *a_loBox, Box *a_hiBox, int *a_hasLo, int *a_hasHi, Box &a_curDblBox, Box &a_curPhiBox, int a_nComps, BaseFab< Real > &a_curOpPhiFAB, const BaseFab< Real > &a_curPhiFAB, bool a_homogeneousPhysBC, const DataIndex &a_dit)
void reflux(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
int m_refToCoar
Definition: NWOEBConductivityOp.H:575
Real m_dxCoar
Definition: NWOEBConductivityOp.H:562
RefCountedPtr< LevelData< EBCellFAB > > m_acoef
Definition: NWOEBConductivityOp.H:564
virtual void calculateRelaxationCoefficient()
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
void getFluxRegOnly(EBFaceFAB &a_fluxCentroid, const EBCellFAB &a_phi, const Box &a_ghostedBox, const Real &a_dx, const DataIndex &a_datInd, const int &a_idir)
NWOEBConductivityOp()
Default constructor. Creates an undefined conductivity operator.
LoHiSide
Definition: LoHiSide.H:27
virtual void incr(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, Real a_scale)
virtual void restrictResidual(LevelData< EBCellFAB > &a_resCoarse, LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_rhsFine)
const RefCountedPtr< BaseDomainBC > getDomainBC()
Definition: NWOEBConductivityOp.H:465
void applyOpIrregular(EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const DataIndex &a_datInd)
RefCountedPtr< ConductivityBaseEBBC > m_ebBC
Definition: NWOEBConductivityOp.H:558
LayoutData< VoFIterator > m_vofIterIrreg
Definition: NWOEBConductivityOp.H:595
void applyOpRegular(EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const DataIndex &a_datInd)
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.
void incrementFRFine(EBFastFR &a_fluxReg, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
virtual Real norm(const LevelData< EBCellFAB > &a_rhs, int a_ord)
void getAlphaBeta(Real &a_alpha, Real &a_beta)
Definition: NWOEBConductivityOp.H:460
virtual void scale(LevelData< EBCellFAB > &a_lhs, const Real &a_scale)
virtual void AMRUpdateResidual(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
bool m_hasEBCF
Definition: NWOEBConductivityOp.H:576
void applyDomainFlux(Box *a_loBox, Box *a_hiBox, int *a_hasLo, int *a_hasHi, Box &a_dblBox, int a_nComps, BaseFab< Real > &a_phiFAB, bool a_homogeneousPhysBC, const DataIndex &a_dit)
bool m_hasFine
Definition: NWOEBConductivityOp.H:577
RefCountedPtr< ConductivityBaseDomainBC > m_domainBC
Definition: NWOEBConductivityOp.H:557
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:469
void AMRResidualNC(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
EBISLayout m_ebislCoarMG
Definition: NWOEBConductivityOp.H:618
Definition: DataIndex.H:114
virtual void calculateAlphaWeight()
Vector< IntVect > m_colors
Definition: NWOEBConductivityOp.H:621
Piecewise constant interpolation.
Definition: EBMGAverage.H:31
bool m_layoutChanged
Definition: NWOEBConductivityOp.H:613
virtual void createCoarsened(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs, const int &a_refRat)
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
Definition: FArrayBox.H:45
virtual void AMRResidualNF(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousBC)
void getFaceCenteredFluxStencil(VoFStencil &a_fluxStencil, const FaceIndex &a_face, const DataIndex &a_dit)
void getFlux(EBFluxFAB &a_flux, const LevelData< EBCellFAB > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale)
void divideByIdentityCoef(LevelData< EBCellFAB > &a_rhs)
Real dx() const
Definition: NWOEBConductivityOp.H:125
Volume of Fluid Index.
Definition: VolIndex.H:31
Real m_dxFine
Definition: NWOEBConductivityOp.H:560
RefCountedPtr< LevelData< EBFluxFAB > > m_bcoef
Definition: NWOEBConductivityOp.H:565
void getFluxStencil(VoFStencil &a_fluxStencil, const FaceIndex &a_face, const DataIndex &a_dit)
EBLevelGrid m_eblgCoarMG
Definition: NWOEBConductivityOp.H:554
Definition: EBISLayout.H:39
Real m_dx
Definition: NWOEBConductivityOp.H:561
Real AMRNorm(const LevelData< EBCellFAB > &a_coarResid, const LevelData< EBCellFAB > &a_fineResid, const int &a_refRat, const int &a_ord)
void getEBBCFluxStencil(LayoutData< BaseIVFAB< VoFStencil > > const *&a_ebbcFluxStencil)
Definition: NWOEBConductivityOp.H:480
static bool s_turnOffBCs
Definition: NWOEBConductivityOp.H:516
virtual void AMRRestrict(LevelData< EBCellFAB > &a_resCoarse, const LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection, bool a_skip_res=false)
void gsrbColor(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, const IntVect &a_color)
EBLevelGrid m_eblgFine
Definition: NWOEBConductivityOp.H:552
LayoutData< VoFIterator > m_vofIterMulti
Definition: NWOEBConductivityOp.H:596
const EBLevelGrid & getEBLG() const
Definition: NWOEBConductivityOp.H:438
LayoutData< VoFIterator > m_vofIterDomLo[CH_SPACEDIM]
Definition: NWOEBConductivityOp.H:598
int m_refToFine
Definition: NWOEBConductivityOp.H:574
EBMGInterp m_ebInterpMG
Definition: NWOEBConductivityOp.H:616
Real m_alpha
Definition: NWOEBConductivityOp.H:568
virtual Real localMaxNorm(const LevelData< EBCellFAB > &a_rhs)
RefCountedPtr< NWOEBQuadCFInterp > m_interpWithCoarser
Definition: NWOEBConductivityOp.H:549