11 #ifndef _EBCONDUCTIVITYOP_H_ 12 #define _EBCONDUCTIVITYOP_H_ 44 #include "NamespaceHeader.H" 48 #define EBAMRPOVC_NUMSTEN 4 50 #define EBAMRPOVC_NUMSTEN 8 54 THIS_WILL_ONLY_COMPILE_WHEN_CH_SPACEDIM_IS_2_OR_3;
112 const Real & a_dxCoar,
113 const int& a_refToFine,
114 const int& a_refToCoar,
115 const bool& a_hasFine,
116 const bool& a_hasCoar,
117 const bool& a_hasMGObjects,
118 const bool& a_layoutChanged,
124 const IntVect& a_ghostCellsPhi,
125 const IntVect& a_ghostCellsRHS,
126 const int& a_relaxType);
162 bool a_homogeneousBC,
171 bool a_homogeneousBC,
182 bool a_kappaWeighted);
196 const Box& a_ghostedBox,
210 int a_coarseningFactor);
220 bool a_homogeneousPhysBC=
false);
236 const bool& a_homogeneousPhysBC,
237 const bool& a_homogeneousCFBC);
249 bool a_homogeneousPhysBC);
260 const int& a_refRat);
300 const Real& a_scale);
381 bool a_homogeneousBC,
390 bool a_homogeneousBC);
399 bool a_homogeneousBC,
407 bool a_homogeneousBC);
415 bool a_skip_res =
false );
452 const bool& a_homogeneous,
457 const bool& a_homogeneous,
518 bool a_homogeneousPhysBC,
528 bool a_homogeneousPhysBC,
546 Box a_ideBoxHi[SpaceDim]);
551 const Box& a_ghostedBox,
557 const Box& a_ghostedBox,
677 const Box& a_faceBox,
686 bool a_homogeneousCFBC);
697 const bool& a_lowOrder);
707 const bool& a_lowOrder);
736 #include "NamespaceFooter.H" void operator=(const EBConductivityOp &a_opin)
Definition: EBConductivityOp.H:729
LayoutData< VoFIterator > m_vofIterDomLo[CH_SPACEDIM]
Definition: EBConductivityOp.H:639
LevelData< EBCellFAB > m_relCoef
Multigrid relaxation coefficient.
Definition: EBConductivityOp.H:632
EBLevelGrid m_eblgCoarMG
Definition: EBConductivityOp.H:585
static int s_numComps
Definition: EBConductivityOp.H:505
void setAlphaAndBeta(const Real &a_alpha, const Real &a_beta)
virtual void setToZero(LevelData< EBCellFAB > &a_lhs)
virtual void restrictResidual(LevelData< EBCellFAB > &a_resCoarse, LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_rhsFine)
void fillGrad(const LevelData< EBCellFAB > &a_phi)
These functions are part of the LevelTGA interface......
LayoutData< BaseIVFAB< Real > > m_cacheEBxDomainFluxHi[EBAMRPOVC_NUMSTEN][SpaceDim]
Definition: EBConductivityOp.H:571
void levelJacobi(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs)
Vector< IntVect > m_colors
Definition: EBConductivityOp.H:662
void getFlux(EBFluxFAB &a_flux, const LevelData< EBCellFAB > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale)
LayoutData< BaseIVFAB< Real > > m_alphaDiagWeight
Definition: EBConductivityOp.H:612
EBFastFR-A class to encapsulate a levels worth of flux registers.
Definition: EBFastFR.H:39
bool m_hasMGObjects
Definition: EBConductivityOp.H:653
Real m_dx
Definition: EBConductivityOp.H:594
#define CH_SPACEDIM
Definition: SPACE.H:51
virtual void AMRUpdateResidual(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
void getFaceCenteredFluxStencil(VoFStencil &a_fluxStencil, const FaceIndex &a_face, const DataIndex &a_dit)
LayoutData< RefCountedPtr< EBStencil > > m_opEBStencil
Definition: EBConductivityOp.H:628
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
void THIS_IS_AN_ERROR_MESSAGE(void)
Definition: EBConductivityOp.H:52
void diagonalScale(LevelData< EBCellFAB > &a_rhs, bool a_kappaWeighted)
virtual void AMROperatorNF(LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, bool a_homogeneousBC)
void defineStencils()
do not call this one unless you really know what you are doing
Real dx() const
returns m_dx, such function is required by some LinearSolvers
Definition: EBConductivityOp.H:151
virtual void AMRProlong(LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
LayoutData< CFIVS > m_loCFIVS[SpaceDim]
Definition: EBConductivityOp.H:644
LayoutData< BaseIVFAB< Real > > m_betaDiagWeight
Definition: EBConductivityOp.H:614
one dimensional dynamic array
Definition: Vector.H:53
virtual LayoutData< BaseIVFAB< VoFStencil > > * getFluxStencil(int ivar)=0
Definition: FaceIndex.H:28
Data that maintains a one-to-one mapping of T to the boxes in a BoxLayout.
Definition: BoxLayout.H:26
LayoutData< CFIVS > m_hiCFIVS[SpaceDim]
Definition: EBConductivityOp.H:645
void writeEBAMRname(const Vector< LevelData< EBCellFAB > * > *a_dataPtr, const char *a_filename)
LayoutData< VoFIterator > m_vofIterIrreg
Definition: EBConductivityOp.H:636
virtual void createCoarser(LevelData< EBCellFAB > &a_coarse, const LevelData< EBCellFAB > &a_fine, bool a_ghosted)
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)
Definition: EBLevelGrid.H:30
void getFluxEBCF(EBFaceFAB &a_flux, const EBCellFAB &a_phi, const Box &a_ghostedBox, Vector< FaceIndex > &a_faceitEBCF, Vector< VoFStencil > &a_stenEBCF)
EBFastFR m_fastFR
Definition: EBConductivityOp.H:648
virtual void dumpAMR(Vector< LevelData< EBCellFAB > *> &a_data, string name)
for debugging
Definition: EBConductivityOp.H:68
bool m_hasCoar
Definition: EBConductivityOp.H:620
void getOpVoFStencil(VoFStencil &a_stencil, const EBISBox &a_ebisbox, const VolIndex &a_vof)
virtual void applyOpNoBoundary(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
virtual function called by LevelTGA
void writeEBLevelname(const LevelData< EBCellFAB > *a_dataPtr, const char *a_filename)
void getEBBCFluxStencil(LayoutData< BaseIVFAB< VoFStencil > > const *&a_ebbcFluxStencil)
Definition: EBConductivityOp.H:500
virtual void relax(LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations)
Definition: EBFaceFAB.H:28
RefCountedPtr< LevelData< BaseIVFAB< Real > > > m_bcoIrreg
Definition: EBConductivityOp.H:607
const RefCountedPtr< LevelData< EBCellFAB > > getAScalingCoefficients()
Definition: EBConductivityOp.H:490
Piecewise constant interpolation.
Definition: EBMGInterp.H:33
const int SpaceDim
Definition: SPACE.H:38
void getAlphaDiagWeight(LayoutData< BaseIVFAB< Real > > const *&a_alphaDiagWeight)
Definition: EBConductivityOp.H:475
Real m_dxCoar
Definition: EBConductivityOp.H:595
void divideByIdentityCoef(LevelData< EBCellFAB > &a_rhs)
Definition: AMRMultiGrid.H:39
EBMGInterp m_ebInterpMG
Definition: EBConductivityOp.H:657
DisjointBoxLayout m_dblCoarMG
Definition: EBConductivityOp.H:658
VoF-centered stencil.
Definition: Stencils.H:60
EBLevelGrid m_eblg
Definition: EBConductivityOp.H:582
virtual void createCoarsened(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs, const int &a_refRat)
A EBFaceFAB-like container for edge-centered fluxes.
Definition: EBFluxFAB.H:25
virtual void scale(LevelData< EBCellFAB > &a_lhs, const Real &a_scale)
static IntVect s_ivDebug
Definition: EBConductivityOp.H:538
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)
ProblemDomain m_domainCoarMG
Definition: EBConductivityOp.H:660
virtual int refToCoarser()
void getAlphaBeta(Real &a_alpha, Real &a_beta)
Definition: EBConductivityOp.H:480
LayoutData< VoFIterator > m_vofItIrregColorDomLo[EBAMRPOVC_NUMSTEN][SpaceDim]
Definition: EBConductivityOp.H:568
EBLevelGrid m_eblgCoarsenedFine
Definition: EBConductivityOp.H:586
const RefCountedPtr< BaseDomainBC > getDomainBC()
Definition: EBConductivityOp.H:485
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 residual(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousPhysBC=false)
EBMGInterp m_ebInterp
Definition: EBConductivityOp.H:625
~EBConductivityOp()
Destructor.
EBLevelGrid m_eblgCoar
Definition: EBConductivityOp.H:584
const char * name(const FArrayBox &a_dummySpecializationArg)
Definition: CH_HDF5.H:907
Real m_alpha
Definition: EBConductivityOp.H:609
virtual void prolongIncrement(LevelData< EBCellFAB > &a_phiThisLevel, const LevelData< EBCellFAB > &a_correctCoarse)
Definition: EBCellFAB.H:29
virtual void calculateRelaxationCoefficient()
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 applyOpIrregular(EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const DataIndex &a_datInd)
void reflux(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
bool m_hasEBCF
Definition: EBConductivityOp.H:617
void dumpLevelPoint(const LevelData< EBCellFAB > &a_res, const string &a_blab)
double Real
Definition: REAL.H:33
Definition: MultiGrid.H:30
RefCountedPtr< BaseDomainBC > m_domainBC
Definition: EBConductivityOp.H:590
RefCountedPtr< BaseEBBC > m_ebBC
Definition: EBConductivityOp.H:591
LayoutData< BaseIVFAB< Real > > m_cacheEBxDomainFluxLo[EBAMRPOVC_NUMSTEN][SpaceDim]
Definition: EBConductivityOp.H:570
static void setForceNoEBCF(bool a_forceNoEBCF)
Definition: EBConductivityOp.H:467
const EBLevelGrid & getEBLG() const
Definition: EBConductivityOp.H:463
virtual void relaxGauSai(LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations)
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 relaxGSRBFast(LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations)
int m_refToCoar
Definition: EBConductivityOp.H:616
void setTime(Real a_oldTime, Real a_mu, Real a_dt)
void getFluxStencil(VoFStencil &a_fluxStencil, const FaceIndex &a_face, const DataIndex &a_dit)
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
bool m_hasInterpAve
Definition: EBConductivityOp.H:619
LoHiSide
Definition: LoHiSide.H:27
Real AMRNorm(const LevelData< EBCellFAB > &a_coarResid, const LevelData< EBCellFAB > &a_fineResid, const int &a_refRat, const int &a_ord)
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)
EBConductivityOp(const EBConductivityOp &a_opin)
Definition: EBConductivityOp.H:724
void applyCFBCs(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > *const a_phiCoarse, bool a_homogeneousCFBC)
static int s_whichComp
Definition: EBConductivityOp.H:506
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 AMRResidualNF(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousBC)
EBISLayout m_ebislCoarMG
Definition: EBConductivityOp.H:659
EBMGAverage m_ebAverage
Definition: EBConductivityOp.H:623
LayoutData< VoFIterator > m_vofItIrregColorDomHi[EBAMRPOVC_NUMSTEN][SpaceDim]
Definition: EBConductivityOp.H:569
Definition: EBConductivityOp.H:62
EBConductivityOp()
Default constructor. Creates an undefined conductivity operator.
virtual void dumpLevel(LevelData< EBCellFAB > &a_data, string name)
for debugging
Definition: EBConductivityOp.H:74
const RefCountedPtr< LevelData< EBFluxFAB > > getBScalingCoefficients()
Definition: EBConductivityOp.H:495
virtual void preCond(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:465
void finerOperatorChanged(const MGLevelOp< LevelData< EBCellFAB > > &a_operator, int a_coarseningFactor)
void incrementFRCoar(EBFastFR &a_fluxReg, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi)
const IntVect m_ghostCellsRHS
Definition: EBConductivityOp.H:578
virtual void create(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
LayoutData< VoFIterator > m_vofIterMulti
Definition: EBConductivityOp.H:637
Definition: DataIndex.H:112
RefCountedPtr< LevelData< EBCellFAB > > m_acoef
Definition: EBConductivityOp.H:599
void gsrbColor(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_lph, const LevelData< EBCellFAB > &a_rhs, const IntVect &a_color)
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)
virtual void setVal(LevelData< EBCellFAB > &a_lhs, const Real &a_value)
virtual void calculateAlphaWeight()
Piecewise constant interpolation.
Definition: EBMGAverage.H:31
LayoutData< Vector< VoFStencil > > m_stencilCoar[2 *SpaceDim]
Definition: EBConductivityOp.H:564
Real m_beta
Definition: EBConductivityOp.H:610
virtual void relaxPoiJac(LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations)
LayoutData< RefCountedPtr< EBStencil > > m_colorEBStencil[EBAMRPOVC_NUMSTEN]
Definition: EBConductivityOp.H:572
int m_relaxType
Definition: EBConductivityOp.H:576
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
bool m_hasFine
Definition: EBConductivityOp.H:618
EBMGAverage m_ebAverageMG
Definition: EBConductivityOp.H:656
Definition: FArrayBox.H:45
virtual void kappaScale(LevelData< EBCellFAB > &a_rhs)
for eb only. kappa weight the rhs but do not multiply by the identity coefficient ...
Real m_dxFine
Definition: EBConductivityOp.H:593
virtual Real localMaxNorm(const LevelData< EBCellFAB > &a_rhs)
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)
virtual void assign(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
Volume of Fluid Index.
Definition: VolIndex.H:31
static bool s_turnOffBCs
Definition: EBConductivityOp.H:536
void incrementFRFine(EBFastFR &a_fluxReg, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
void defineEBCFStencils()
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)
RefCountedPtr< LevelData< EBFluxFAB > > m_bcoef
Definition: EBConductivityOp.H:603
Definition: EBISLayout.H:39
LayoutData< VoFIterator > m_vofIterDomHi[CH_SPACEDIM]
Definition: EBConductivityOp.H:640
void incrOpRegularDir(EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const int &a_dir, const DataIndex &a_datInd)
void getDivFStencil(VoFStencil &a_vofStencil, const VolIndex &a_vof, const DataIndex &a_dit)
virtual void incr(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, Real a_scale)
const IntVect m_ghostCellsPhi
Definition: EBConductivityOp.H:577
void GSColorAllIrregular(EBCellFAB &a_phi, const EBCellFAB &a_rhs, const int &a_icolor, const DataIndex &a_dit)
static bool s_forceNoEBCF
Definition: EBConductivityOp.H:537
virtual void axby(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, const LevelData< EBCellFAB > &a_y, Real a_a, Real a_b)
bool m_layoutChanged
Definition: EBConductivityOp.H:654
void applyHomogeneousCFBCs(LevelData< EBCellFAB > &a_phi)
void dumpFABPoint(const EBCellFAB &a_fab, const DataIndex &a_dit, const string &a_blab)
void defineColorStencils(Box a_ideBoxLo[SpaceDim], Box a_ideBoxHi[SpaceDim])
virtual void resetACoefficient(RefCountedPtr< LevelData< EBCellFAB > > &a_acoef)
Definition: EBConductivityOp.H:139
EBLevelGrid m_eblgFine
Definition: EBConductivityOp.H:583
LayoutData< Vector< FaceIndex > > m_faceitCoar[2 *SpaceDim]
Definition: EBConductivityOp.H:563
RefCountedPtr< EBQuadCFInterp > m_quadCFIWithCoar
Definition: EBConductivityOp.H:580
int m_refToFine
Definition: EBConductivityOp.H:615
virtual Real norm(const LevelData< EBCellFAB > &a_rhs, int a_ord)
virtual Real dotProduct(const LevelData< EBCellFAB > &a_1, const LevelData< EBCellFAB > &a_2)
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)