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:145
 
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:465
 
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:112
 
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