11 #ifndef _EBVISCOUSTENSOROP_H_    12 #define _EBVISCOUSTENSOROP_H_    44 #include "NamespaceHeader.H"    78                     const int&                                         a_refToFine,
    79                     const int&                                         a_refToCoar,
    82                     const bool&                                        a_hasMGObjects,
    84                     const IntVect&                                     a_ghostCellsRHS);
   110     sprintf(filename, 
"%s.ebvto.step%d.lev.%d.hdf5",a_name.c_str(), 
s_step, 
s_whichLev );
   118     sprintf(filename, 
"%s.ebvto.step%d.lev.%d.hdf5", a_name.c_str(), 
s_step, 
s_whichLev );
   151                              bool a_kappaWeighted)
   157         for (
int idir = 0; idir < 
SpaceDim; idir++)
   159             int isrc = 0; 
int idst = idir; 
int inco = 1;
   160             a_rhs[dit()].mult((*
m_acoef)[dit()], isrc, idst, inco);
   169         for (
int idir = 0; idir < 
SpaceDim; idir++)
   171             int isrc = 0; 
int idst = idir; 
int inco = 1;
   172             a_rhs[dit()].divide((*
m_acoef)[dit()], isrc, idst, inco);
   193                const Box&                    a_ghostedBox,
   216                             int a_coarseningFactor);
   226                      bool a_homogeneousBC,
   235                      bool a_homogeneousBC,
   244                         bool                        a_homogeneousPhysBC=
false);
   259                        bool                              a_homogeneousPhysBC);
   281                                const int&                  a_refRat);
   323                      const Real&           a_scale);
   393                            bool a_homogeneousBC,
   402                              bool a_homogeneousBC);
   411                            bool a_homogeneousBC,
   419                              bool a_homogeneousBC);
   427                            bool a_skip_res = 
false );
   500                         const bool&            a_homogeneous,
   506                         const bool&            a_homogeneous,
   512                const Box&                    a_faceBox,
   678                     int isrc, 
int idst, 
int inco,
   679                     bool a_interpolateToCentroid);
   689                     int isrc, 
int idst, 
int inco,
   690                     bool a_interpolateToCentroid);
   697                                   const Box           &      ccFluxBox,
   701                                   int isrc, 
int idst, 
int inco);
   725 #include "NamespaceFooter.H" static void doLazyRelax(bool a_doLazyRelax)
Definition: EBViscousTensorOp.H:481
 
LayoutData< IntVectSet > m_ivsIrregCCFlux
Definition: EBViscousTensorOp.H:703
 
RefCountedPtr< LevelData< EBFluxFAB > > m_lambda
Definition: EBViscousTensorOp.H:609
 
virtual void setToZero(LevelData< EBCellFAB > &a_lhs)
 
IntVect m_ghostCellsRHS
Definition: EBViscousTensorOp.H:635
 
EBFastFR m_fastFR
Definition: EBViscousTensorOp.H:615
 
EBMGAverage m_ebAverage
Definition: EBViscousTensorOp.H:656
 
LayoutData< BaseIVFAB< Real > > m_alphaDiagWeight
Definition: EBViscousTensorOp.H:598
 
virtual void scale(LevelData< EBCellFAB > &a_lhs, const Real &a_scale)
 
virtual void kappaScale(LevelData< EBCellFAB > &a_rhs)
it's tga's world—we just live in it. 
Definition: EBViscousTensorOp.H:124
 
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)
 
virtual void createCoarsened(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs, const int &a_refRat)
 
virtual void restrictResidual(LevelData< EBCellFAB > &a_resCoarse, LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_rhsFine)
 
A reference-counting handle class. 
Definition: RefCountedPtr.H:173
 
EBFastFR-A class to encapsulate a levels worth of flux registers. 
Definition: EBFastFR.H:39
 
void cfinterp(const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse)
 
#define CH_SPACEDIM
Definition: SPACE.H:51
 
RefCountedPtr< LevelData< BaseIVFAB< Real > > > m_etaIrreg
Definition: EBViscousTensorOp.H:610
 
void faceCenteredAverageCellsToFaces(EBFaceFAB &a_faceData, const EBCellFAB &a_cellData, const Box &ccFluxBox, const EBISBox &a_ebisBox, const ProblemDomain &a_domain, const DataIndex &a_dit, int isrc, int idst, int inco)
 
LevelData< EBCellFAB > m_grad
Definition: EBViscousTensorOp.H:644
 
A class to facilitate interaction with physical boundary conditions. 
Definition: ProblemDomain.H:141
 
EBMGAverage m_ebAverageMG
Definition: EBViscousTensorOp.H:657
 
virtual void AMROperatorNF(LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, bool a_homogeneousBC)
 
static int s_whichLev
Definition: EBViscousTensorOp.H:59
 
EBViscousTensorOp(const EBViscousTensorOp &a_opin)
Definition: EBViscousTensorOp.H:713
 
static void setForceNoEBCF(bool a_forceNoEBCF)
Definition: EBViscousTensorOp.H:485
 
LayoutData< TensorFineStencilSet > m_hiTanStencilSets[SpaceDim]
Definition: EBViscousTensorOp.H:584
 
void reflux(const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, LevelData< EBCellFAB > &residual, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
 
Real m_dxCoar
Definition: EBViscousTensorOp.H:621
 
LayoutData< BaseIVFAB< Real > > m_betaDiagWeight
Definition: EBViscousTensorOp.H:600
 
virtual void AMRProlong(LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
 
static void kappaWeight(LevelData< EBCellFAB > &a_data)
 
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)
 
static void getDivergenceStencil(VoFStencil &a_divStencil, const FaceIndex &a_face, const DataIndex &a_dit, const Real &a_dx, const EBLevelGrid &a_eblg)
static for code reuse in bcs 
 
one dimensional dynamic array 
Definition: Vector.H:53
 
void incrementFRCoar(EBFastFR &a_fr, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi)
 
EBMGInterp m_ebInterpMG
Definition: EBViscousTensorOp.H:661
 
Definition: FaceIndex.H:28
 
EBMGInterp m_ebInterp
Definition: EBViscousTensorOp.H:660
 
virtual void AMRUpdateResidual(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
 
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)
 
RefCountedPtr< LevelData< EBCellFAB > > m_acoef
Definition: EBViscousTensorOp.H:605
 
static int s_step
Definition: EBViscousTensorOp.H:60
 
A strange but true thing to make copying from one boxlayoutdata to another fast. 
Definition: Copier.H:145
 
void averageToCells(LevelData< EBCellFAB > &a_cellCoef, const LevelData< EBFluxFAB > &a_faceCoef, const LevelData< BaseIVFAB< Real > > &a_irregCoef)
 
void getCCSigma(LevelData< EBCellFAB > &a_source, const LevelData< EBCellFAB > &a_gradU, const LevelData< EBCellFAB > &a_eta, const LevelData< EBCellFAB > &a_lambda)
 
void writeEBAMRname(const Vector< LevelData< EBCellFAB > * > *a_dataPtr, const char *a_filename)
 
void setTime(Real a_oldTime, Real a_mu, Real a_dt)
 
Definition: EBLevelGrid.H:30
 
LayoutData< RefCountedPtr< DivergenceStencil > > m_divergenceStencil
Definition: EBViscousTensorOp.H:582
 
static Real staticMaxNorm(const LevelData< EBCellFAB > &a_rhs, const EBLevelGrid &a_eblg)
 
DisjointBoxLayout getDBL() const
Definition: EBLevelGrid.H:86
 
virtual void assign(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
 
virtual bool ok() const
return true if this iterator is still in its Layout 
Definition: LayoutIterator.H:117
 
void incrOpWithExternalFlux(EBCellFAB &a_lhs, const DataIndex &a_dit, const BaseIVFAB< Real > &a_ebflux)
 
Definition: DataIterator.H:190
 
EBViscousTensorOp()
weak construction is bad 
Definition: EBViscousTensorOp.H:707
 
void writeEBLevelname(const LevelData< EBCellFAB > *a_dataPtr, const char *a_filename)
 
void getCellCenteredCoefficients(LevelData< EBCellFAB > &a_etaCell, LevelData< EBCellFAB > &a_lambdaCell)
 
Definition: EBFaceFAB.H:28
 
void getShearStressDotGradU(LevelData< EBCellFAB > &a_source, const LevelData< EBCellFAB > &a_gradU, int a_level)
compute (tau dot grad u) (for energy equation) 
 
virtual Real norm(const LevelData< EBCellFAB > &a_rhs, int a_ord)
 
virtual Real dotProduct(const LevelData< EBCellFAB > &a_1, const LevelData< EBCellFAB > &a_2)
 
RefCountedPtr< EBTensorCFInterp > m_interpWithCoarser
Definition: EBViscousTensorOp.H:653
 
LayoutData< CFIVS > m_hiCFIVS[CH_SPACEDIM]
Definition: EBViscousTensorOp.H:581
 
void getVelDotSigma(LevelData< EBFluxFAB > &a_velDotSigma, const LevelData< EBFluxFAB > &a_vel, const LevelData< EBFluxFAB > &a_sigma)
 
virtual void divideByIdentityCoef(LevelData< EBCellFAB > &a_rhs)
Definition: EBViscousTensorOp.H:165
 
Piecewise constant interpolation. 
Definition: EBMGInterp.H:33
 
int m_refToCoar
Definition: EBViscousTensorOp.H:630
 
const int SpaceDim
Definition: SPACE.H:38
 
Definition: AMRMultiGrid.H:39
 
VoF-centered stencil. 
Definition: Stencils.H:60
 
static void getGradientStencil(VoFStencil &a_gradStencil, int a_ivar, int a_diffDir, const FaceIndex &a_face, const DataIndex &a_dit, const Real &a_dx, const EBLevelGrid &a_eblg)
static for code reuse in bcs 
 
static bool s_turnOffBCs
Definition: EBViscousTensorOp.H:575
 
Real m_dx
Definition: EBViscousTensorOp.H:620
 
virtual void getFlux(EBFluxFAB &a_flux, const LevelData< EBCellFAB > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale)
another leveltgaism 
 
LayoutData< VoFIterator > m_vofIterMulti
Definition: EBViscousTensorOp.H:647
 
A EBFaceFAB-like container for edge-centered fluxes. 
Definition: EBFluxFAB.H:25
 
virtual void outputLevel(LevelData< EBCellFAB > &a_rhs, string &a_name)
Definition: EBViscousTensorOp.H:107
 
void finerOperatorChanged(const MGLevelOp< LevelData< EBCellFAB > > &a_operator, int a_coarseningFactor)
 
RefCountedPtr< LevelData< BaseIVFAB< Real > > > m_lambdaIrreg
Definition: EBViscousTensorOp.H:611
 
static void getFluxStencil(VoFStencil &a_fluxStencil, const RefCountedPtr< LevelData< EBFluxFAB > > &a_eta, const RefCountedPtr< LevelData< EBFluxFAB > > &a_lambda, const Real &a_dx, const EBLevelGrid &a_eblg, const FaceIndex &a_face, const DataIndex &a_dit, int a_ivar)
static for code reuse in bcs 
 
static void getFaceCenteredFluxStencil(VoFStencil &a_fluxStencil, const RefCountedPtr< LevelData< EBFluxFAB > > &a_eta, const RefCountedPtr< LevelData< EBFluxFAB > > &a_lambda, const Real &a_dx, const EBLevelGrid &a_eblg, const FaceIndex &a_face, const DataIndex &a_dit, int a_ivar)
static for code reuse in bcs 
 
IntVect m_ghostCellsPhi
Definition: EBViscousTensorOp.H:634
 
virtual void axby(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, const LevelData< EBCellFAB > &a_y, Real a_a, Real a_b)
 
LayoutData< CFIVS > m_loCFIVS[CH_SPACEDIM]
Definition: EBViscousTensorOp.H:580
 
virtual void applyOpNoBoundary(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
apply operator without any boundary or coarse-fine boundary conditions and no finer level ...
Definition: EBViscousTensorOp.H:205
 
virtual void setAlphaAndBeta(const Real &a_alpha, const Real &a_beta)
for tga to reset stuff 
 
Definition: EBCellFAB.H:29
 
virtual void create(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
 
EBLevelGrid m_eblgFine
Definition: EBViscousTensorOp.H:589
 
double Real
Definition: REAL.H:33
 
Definition: MultiGrid.H:30
 
IntVect m_ghostPhi
Definition: EBViscousTensorOp.H:587
 
EBLevelGrid m_eblg
Definition: EBViscousTensorOp.H:590
 
virtual void incr(LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, Real a_scale)
 
LayoutData< TensorFineStencilSet > m_loTanStencilSets[SpaceDim]
Definition: EBViscousTensorOp.H:585
 
virtual void prolongIncrement(LevelData< EBCellFAB > &a_phiThisLevel, const LevelData< EBCellFAB > &a_correctCoarse)
 
void getVoFStencil(VoFStencil &a_vofStencil, const VolIndex &a_vof, const DataIndex &a_dit, int a_ivar)
 
void gsrbColor(LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_lph, const LevelData< EBCellFAB > &a_rhs, const IntVect &a_color)
 
Real m_beta
Definition: EBViscousTensorOp.H:596
 
A BoxLayout that has a concept of disjointedness. 
Definition: DisjointBoxLayout.H:30
 
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)
 
RefCountedPtr< ViscousBaseDomainBC > m_domainBC
Definition: EBViscousTensorOp.H:664
 
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 calculateAlphaWeight()
 
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. 
 
Real AMRNorm(const LevelData< EBCellFAB > &a_coarResid, const LevelData< EBCellFAB > &a_fineResid, const int &a_refRat, const int &a_ord)
 
Vector< IntVect > m_colors
Definition: EBViscousTensorOp.H:666
 
void applyOpIrregular(EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const DataIndex &a_datInd)
 
virtual void diagonalScale(LevelData< EBCellFAB > &a_rhs, bool a_kappaWeighted)
another tgaism 
Definition: EBViscousTensorOp.H:150
 
void defineStencils()
(Re)define the stencils for the given coefficients. 
 
void incrOpRegularDir(EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const int &a_dir, const DataIndex &a_datInd)
 
A Rectangular Domain on an Integer Lattice. 
Definition: Box.H:465
 
Copier m_exchangeCopierGrad
Definition: EBViscousTensorOp.H:668
 
void homogeneousCFInterp(LevelData< EBCellFAB > &a_phi)
 
void getKappaDivSigmaU(LevelData< EBCellFAB > &a_divSigmaU, const LevelData< EBCellFAB > &a_velocity, const LevelData< EBCellFAB > *a_veloCoar, int a_level)
compute volfrac(sigma dot grad u) (for energy equation) 
 
Definition: EBViscousTensorOp.H:55
 
Definition: DataIndex.H:112
 
IntVect m_ghostRHS
Definition: EBViscousTensorOp.H:587
 
LayoutData< VoFIterator > m_vofIterIrreg
Definition: EBViscousTensorOp.H:646
 
virtual Real localMaxNorm(const LevelData< EBCellFAB > &a_rhs)
 
virtual ~EBViscousTensorOp()
Destructor. 
 
bool m_hasCoar
Definition: EBViscousTensorOp.H:628
 
void resetACoefficient(RefCountedPtr< LevelData< EBCellFAB > > &a_acoef)
Definition: EBViscousTensorOp.H:99
 
Piecewise constant interpolation. 
Definition: EBMGAverage.H:31
 
virtual void calculateRelaxationCoefficient()
 
EBLevelGrid m_eblgCoar
Definition: EBViscousTensorOp.H:591
 
int m_refToFine
Definition: EBViscousTensorOp.H:629
 
virtual void relax(LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations)
 
void cellGrad(EBCellFAB &a_gradPhi, const EBCellFAB &a_phi, const Box &a_grid, const DataIndex &a_datInd)
 
An integer Vector in SpaceDim-dimensional space. 
Definition: CHArray.H:42
 
virtual void residual(LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousPhysBC=false)
 
Definition: FArrayBox.H:45
 
void AMROperatorNC(LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
 
RefCountedPtr< ViscousBaseEBBC > m_ebBC
Definition: EBViscousTensorOp.H:665
 
Volume of Fluid Index. 
Definition: VolIndex.H:31
 
EBLevelGrid m_eblgCoarMG
Definition: EBViscousTensorOp.H:592
 
LevelData< EBCellFAB > m_zeroCoarse
Definition: EBViscousTensorOp.H:601
 
virtual int refToCoarser()
 
virtual void preCond(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
 
static bool s_forceNoEBCF
Definition: EBViscousTensorOp.H:576
 
virtual void fillGrad(const LevelData< EBCellFAB > &a_phi)
a leveltgaism 
 
RefCountedPtr< LevelData< EBFluxFAB > > m_eta
Definition: EBViscousTensorOp.H:608
 
Copier m_exchangeCopier
Definition: EBViscousTensorOp.H:667
 
void operator=(const EBViscousTensorOp &a_opin)
Definition: EBViscousTensorOp.H:718
 
Definition: EBISLayout.H:39
 
virtual void applyOp(LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi, bool a_homogeneousPhysBC)
 
virtual void outputAMR(Vector< LevelData< EBCellFAB > * > &a_rhs, string &a_name)
Definition: EBViscousTensorOp.H:115
 
void incrementFRFine(EBFastFR &a_fr, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
 
DataIterator dataIterator() const
Parallel iterator. 
 
Real m_alpha
Definition: EBViscousTensorOp.H:595
 
LayoutData< VoFIterator > m_vofIterDomHi[CH_SPACEDIM]
Definition: EBViscousTensorOp.H:650
 
virtual void createCoarser(LevelData< EBCellFAB > &a_coarse, const LevelData< EBCellFAB > &a_fine, bool a_ghosted)
 
void averageCellToFace(EBFaceFAB &a_fluxData, const EBCellFAB &a_cellData, const Box &a_grid, const EBISBox &a_ebisBox, const ProblemDomain &a_domain, const DataIndex &a_dit, int isrc, int idst, int inco, bool a_interpolateToCentroid)
 
LevelData< EBCellFAB > m_relCoef
Definition: EBViscousTensorOp.H:641
 
bool m_hasFine
Definition: EBViscousTensorOp.H:627
 
static bool s_doLazyRelax
Definition: EBViscousTensorOp.H:578
 
LayoutData< VoFIterator > m_vofIterDomLo[CH_SPACEDIM]
Definition: EBViscousTensorOp.H:649
 
LayoutData< RefCountedPtr< EBStencil > > m_opEBStencil[CH_SPACEDIM]
Definition: EBViscousTensorOp.H:638
 
bool m_hasMGObjects
Definition: EBViscousTensorOp.H:631
 
virtual void setVal(LevelData< EBCellFAB > &a_lhs, const Real &a_value)