Chombo + EB  3.2
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
EBAMRPoissonOp Class Reference

#include <EBAMRPoissonOp.H>

Inheritance diagram for EBAMRPoissonOp:
Inheritance graph
[legend]

Classes

class  StencilIndex
 
class  StencilIndexComparator
 

Public Member Functions

void getVoFStencil (VoFStencil &a_stenc, const VolIndex &a_vof, const DataIndex &a_dit) const
 
virtual void dumpAMR (Vector< LevelData< EBCellFAB > *> &a_data, string name)
 
virtual void dumpLevel (LevelData< EBCellFAB > &a_data, string name)
 
int getPetscMatrix (Mat &a_petsc_mat)
 Fill a_petsc_mat with a matrix that describes the operator stencil. More...
 
int getLevelDataFromPetscVector (LevelData< EBCellFAB > &a_data, const Vec &a_petsc_vec_real, const Vec &a_petsc_vec_imag)
 put the real components into comp 0, the imaginary ones into comp 1 More...
 
virtual void setAlphaAndBeta (const Real &a_alpha, const Real &a_beta)
 
virtual void diagonalScale (LevelData< EBCellFAB > &a_rhs, bool a_kappaWeighted=true)
 
virtual void divideByIdentityCoef (LevelData< EBCellFAB > &a_rhs)
 
virtual void kappaScale (LevelData< EBCellFAB > &a_rhs)
 for eb only. kappa weight the rhs but do not multiply by the identity coefficient More...
 
Real dx () const
 returns m_dx, such function is required by some LinearSolvers More...
 
virtual void fillGrad (const LevelData< EBCellFAB > &a_phi)
 a leveltgaism More...
 
void dumpStencilMatrix ()
 
void getDomainFluxStencil (VoFStencil &a_stencil, const VolIndex &a_vof, const int a_comp, const DataIndex &a_dit)
 
void dumpReferenceStencilMatrix ()
 
virtual void getFlux (EBFluxFAB &a_flux, const LevelData< EBCellFAB > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale)
 
EBLevelGrid getEBLG ()
 
EBLevelGrid getEBLGCoarMG ()
 
virtual void setTime (Real a_time)
 
virtual ~EBAMRPoissonOp ()
 
 EBAMRPoissonOp ()
 
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)
 
void AMROperatorNC (LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, bool a_homogeneousBC, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
 
 EBAMRPoissonOp (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblg, const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgCoarMG, const RefCountedPtr< EBQuadCFInterp > &a_quadCFI, const RefCountedPtr< BaseDomainBC > &a_domainBC, const RefCountedPtr< BaseEBBC > &a_ebBC, const RealVect &a_dx, const RealVect &a_dxCoar, const RealVect &a_origin, const int &a_refToFine, const int &a_refToCoar, const bool &a_hasFine, const bool &a_hasCoar, const bool &a_hasMGObjects, const bool &a_layoutChanged, const int &a_numPreCondIters, const int &a_relaxType, const Real &a_alpha, const Real &a_beta, const IntVect &a_ghostCellsPhi, const IntVect &a_ghostCellsRHS, int a_testRef=2)
 
virtual void residual (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousPhysBC=false)
 
virtual void getOpMatrix (const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs)
 
virtual void preCond (LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
 
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)
 
virtual void applyOpNoBoundary (LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi)
 virtual function called by LevelTGA More...
 
virtual void applyOp (LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > *const a_phiCoar, const bool &a_homogeneousPhysBC, const bool &a_homogeneousCFBC, const LevelData< BaseIVFAB< Real > > *const a_ebFluxBCLD)
 
virtual void applyOp (LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > *const a_phiCoar, DataIterator &a_dit, const bool &a_homogeneousPhysBC, const bool &a_homogeneousCFBC, const LevelData< BaseIVFAB< Real > > *const a_ebFluxBCLD)
 
virtual void GSColorAllRegular (BaseFab< Real > &a_phi, const BaseFab< Real > &a_rhs, const int &a_icolor, const Real &a_weight, const bool &a_homogeneousPhysBC, const DataIndex &a_dit)
 
virtual void GSColorAllIrregular (EBCellFAB &a_phi, const EBCellFAB &a_rhs, const int &a_icolor, const bool &a_homogeneousPhysBC, const DataIndex &a_dit)
 
virtual void GSColorAllRegularClone (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiOld, const LevelData< EBCellFAB > &a_rhs, const int &a_icolor, const Real &a_weight, const bool &a_homogeneousPhysBC)
 
virtual void GSColorAllIrregularClone (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiOld, const LevelData< EBCellFAB > &a_rhs, const int &a_icolor, const bool &a_homogeneousPhysBC)
 
void mvApplyDomainFlux (BaseFab< Real > &a_phiFAB, const Box &a_grid, const DataIndex &a_dit)
 apply domainflux in multivariable mode More...
 
void mvBetaLaplacianGrid (EBCellFAB &a_lph, const EBCellFAB &a_phi, const DataIndex &a_dit)
 
virtual void applyOp (LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi, bool a_homogeneousPhysBC)
 
void applyOpNoCFBCs (LevelData< EBCellFAB > &a_opPhi, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > *const a_phiCoar, DataIterator &a_dit, const bool &a_homogeneousPhysBC, const bool &a_homogeneousCFBC, const LevelData< BaseIVFAB< Real > > *const a_ebFluxBCLD)
 no exchange of cf interp More...
 
virtual void create (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
 
virtual void createCoarsened (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs, const int &a_refRat)
 
virtual void buildCopier (Copier &a_copier, const LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
 
virtual void assignCopier (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs, const Copier &a_copier)
 
Real AMRNorm (const LevelData< EBCellFAB > &a_coarResid, const LevelData< EBCellFAB > &a_fineResid, const int &a_refRat, const int &a_ord)
 
virtual void assign (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
 
virtual void assignLocal (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
 copier definition was killing us. More...
 
virtual Real dotProduct (const LevelData< EBCellFAB > &a_1, const LevelData< EBCellFAB > &a_2)
 
virtual void incr (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, Real a_scale)
 
virtual void axby (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_x, const LevelData< EBCellFAB > &a_y, Real a_a, Real a_b)
 
virtual void scale (LevelData< EBCellFAB > &a_lhs, const Real &a_scale)
 
virtual Real norm (const LevelData< EBCellFAB > &a_rhs, int a_ord)
 
virtual Real localMaxNorm (const LevelData< EBCellFAB > &a_rhs)
 
virtual void setToZero (LevelData< EBCellFAB > &a_lhs)
 
virtual void setVal (LevelData< EBCellFAB > &a_lhs, const Real &a_value)
 
virtual void createCoarser (LevelData< EBCellFAB > &a_coarse, const LevelData< EBCellFAB > &a_fine, bool a_ghosted)
 
virtual void relax (LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations)
 
virtual void restrictResidual (LevelData< EBCellFAB > &a_resCoarse, LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_rhsFine)
 
virtual void prolongIncrement (LevelData< EBCellFAB > &a_phiThisLevel, const LevelData< EBCellFAB > &a_correctCoarse)
 
virtual int refToCoarser ()
 
virtual int refToFiner ()
 
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 AMRResidualNF (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousBC)
 
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 AMROperatorNF (LevelData< EBCellFAB > &a_LofPhi, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiCoarse, bool a_homogeneousBC)
 
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)
 
virtual void AMRProlong (LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
 
virtual void AMRUpdateResidual (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection)
 
void AMRUpdateResidual (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection, const LevelData< BaseIVFAB< Real > > *const a_ebFluxBCLD)
 
void reflux (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
 
void fast_reflux (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
 
void setEBBC (const RefCountedPtr< BaseEBBC > &a_ebBC)
 
void slowGSRBColor (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_res, int a_iredblack)
 
void levelSlowRelax (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs)
 
void levelJacobi (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, int a_iterations)
 
void levelMultiColorGS (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs)
 
void levelMultiColorGS (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_resid, const IntVect &color)
 
void colorGS (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, const int &a_icolor)
 
void levelGSRB (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs)
 
void levelGSRB (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, const int a_color)
 
void levelMultiColorGSClone (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs)
 
void colorGSClone (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_phiOld, const LevelData< EBCellFAB > &a_rhs, const int &a_icolor)
 
void getDivFStencil (VoFStencil &a_vofStencil, const VolIndex &a_vof, const DataIndex &a_dit, bool doFaceInterp) const
 
void getVoFStencil (LayoutData< BaseIVFAB< VoFStencil > > const *&a_vofStencil)
 
void getAlphaDiagWeight (LayoutData< BaseIVFAB< Real > > const *&a_alphaDiagWeight)
 
void getAlphaBeta (Real &a_alpha, Real &a_beta)
 
const RefCountedPtr< BaseDomainBCgetDomainBC ()
 
void setListValue (const LevelData< EBCellFAB > &a_data, Real a_value)
 
void setListValue (EBCellFAB &a_data, const Vector< VolIndex > &a_setList, Real a_value)
 
void setRhsSetList (const LayoutData< Vector< VolIndex > > &a_list)
 
LayoutData< Vector< VolIndex > > & getRhsSetList ()
 
const LayoutData< Vector< VolIndex > > & getListValue ()
 
void applyCFBCs (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > *const a_phiCoarse, bool a_homogeneousCFBC, bool a_doOnlyRegularInterp=false)
 
void getInvDiagRHS (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs)
 
- Public Member Functions inherited from LevelTGAHelmOp< LevelData< EBCellFAB >, EBFluxFAB >
 LevelTGAHelmOp ()
 
 LevelTGAHelmOp (bool a_isTimeIndependent)
 
virtual ~LevelTGAHelmOp ()
 Destructor. More...
 
- Public Member Functions inherited from TGAHelmOp< LevelData< EBCellFAB > >
 TGAHelmOp ()
 
 TGAHelmOp (bool a_isTimeDependent)
 
virtual ~TGAHelmOp ()
 Destructor. More...
 
virtual void diagonalScale (LevelData< EBCellFAB > &a_rhs)
 
virtual void setTime (Real a_oldTime, Real a_mu, Real a_dt)
 
bool isTimeDependent () const
 Returns true if the operator is time-dependent, false otherwise. More...
 
virtual LevelData< EBCellFAB > & identityCoef ()
 Allows access to the identity coefficient data for the operator. More...
 
- Public Member Functions inherited from AMRLevelOp< LevelData< EBCellFAB > >
 AMRLevelOp ()
 Constructor. More...
 
virtual void dumpStuff (Vector< LevelData< EBCellFAB > * > data, string filename)
 
virtual ~AMRLevelOp ()
 Destructor. More...
 
virtual void outputLevel (LevelData< EBCellFAB > &a_rhs, string &a_name)
 
virtual void outputAMR (Vector< LevelData< EBCellFAB > * > &a_rhs, string &a_name)
 
virtual void zeroCovered (LevelData< EBCellFAB > &a_lhs, LevelData< EBCellFAB > &a_rhs, const Copier &a_copier)
 
virtual void AMRProlongS (LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection, LevelData< EBCellFAB > &a_temp, const Copier &a_copier)
 
virtual void AMRProlongS_2 (LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection, LevelData< EBCellFAB > &a_temp, const Copier &a_copier, const Copier &a_cornerCopier, const AMRLevelOp< LevelData< FArrayBox > > *a_crsOp)
 
virtual void AMRRestrictS (LevelData< EBCellFAB > &a_resCoarse, const LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection, LevelData< EBCellFAB > &scratch, bool a_skip_res=false)
 
virtual unsigned int orderOfAccuracy (void) const
 
virtual void enforceCFConsistency (LevelData< EBCellFAB > &a_coarseCorrection, const LevelData< EBCellFAB > &a_correction)
 This routine is for operators with orderOfAccuracy()>2. More...
 
- Public Member Functions inherited from MGLevelOp< LevelData< EBCellFAB > >
 MGLevelOp ()
 Constructor. More...
 
virtual ~MGLevelOp ()
 Destructor. More...
 
virtual void relaxNF (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > *a_phiCoarse, const LevelData< EBCellFAB > &a_rhs, int a_iterations)
 specialized no-fine relax function, useful for full-multigrid schemes, defaults to regular relax More...
 
virtual void restrictResidual (LevelData< EBCellFAB > &a_resCoarse, LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > *a_phiCoarse, const LevelData< EBCellFAB > &a_rhsFine, bool homogeneous)
 full-multigrid version of restrictResidual, useful for FAS-type schemes. Defaults to standard restriction More...
 
virtual void restrictR (LevelData< EBCellFAB > &a_phiCoarse, const LevelData< EBCellFAB > &a_phiFine)
 simple restriction function More...
 
void addObserver (MGLevelOpObserver< LevelData< EBCellFAB > > *a_observer)
 
virtual void applyOpMg (LevelData< EBCellFAB > &a_lhs, LevelData< EBCellFAB > &a_phi, LevelData< EBCellFAB > *a_phiCoarse, bool a_homogeneous)
 Apply an operator. More...
 
virtual void residualNF (LevelData< EBCellFAB > &a_lhs, LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > *a_phiCoarse, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneous=false)
 
void removeObserver (MGLevelOpObserver< LevelData< EBCellFAB > > *a_observer)
 
void addCoarserObserver (MGLevelOp< LevelData< EBCellFAB > > *a_operator, int a_coarseningFactor)
 
void notifyObserversOfChange ()
 This should be called whenever the operator's data is updated. More...
 
virtual void finerOperatorChanged (const MGLevelOp< LevelData< EBCellFAB > > &a_operator, int a_coarseningFactor)
 
int numObservers () const
 Returns the number of objects observing this operator. More...
 
- Public Member Functions inherited from LinearOp< LevelData< EBCellFAB > >
virtual ~LinearOp ()
 
virtual void clear (LevelData< EBCellFAB > &a_lhs)
 
virtual void mDotProduct (const LevelData< EBCellFAB > &a_1, const int a_sz, const LevelData< EBCellFAB > a_2[], Real a_mdots[])
 
virtual void write (const LevelData< EBCellFAB > *a, const char *filename)
 
- Public Member Functions inherited from MGLevelOpObserver< LevelData< EBCellFAB > >
 MGLevelOpObserver ()
 Base level Constructor. Called by all subclasses. More...
 
virtual ~MGLevelOpObserver ()
 Destructor. More...
 
virtual void operatorChanged (const MGLevelOp< LevelData< EBCellFAB > > &a_operator)
 
void setObservee (MGLevelOp< LevelData< EBCellFAB > > *a_observee)
 
void clearObservee ()
 

Static Public Member Functions

static int getMatrixIndexingLD (LevelData< BaseEBCellFAB< int > > &a_gids, int &a_data, const EBLevelGrid &a_eblg, const IntVect &a_ghostCellsPhi, const bool &a_hasCoar)
 
static void getAggregatedLayout (DisjointBoxLayout &a_dblCoar, const ProblemDomain &a_domainCoar, const EBIndexSpace *const a_ebisPtr, const int &a_maxBoxSize)
 
static bool getCoarserLayouts (DisjointBoxLayout &a_dblCoar, ProblemDomain &a_domainCoar, const DisjointBoxLayout &a_dblFine, const EBISLayout &a_ebislFine, const ProblemDomain &a_domainFine, int a_refToCoar, const EBIndexSpace *a_ebisPtr, int a_maxBoxSize, bool &a_layoutChanged, int a_testRef=2)
 
static Real staticMaxNorm (const LevelData< EBCellFAB > &a_rhs, const EBLevelGrid &a_eblg)
 
static void setOperatorTime (Real a_time)
 
static void doLazyRelax (bool a_doLazyRelax)
 
static void doEBEllipticLoadBalance (bool a_doEBEllipticLoadBalance)
 
static void areaFracWeighted (bool a_areaFracWeighted)
 
static void getDivFStencil (VoFStencil &a_vofStencil, const VolIndex &a_vof, const EBISBox &a_ebisBox, const IntVectSet &a_cfivs, const RealVect &a_dx, bool doFaceInterp=true)
 
static void getFluxStencil (VoFStencil &a_fluxStencil, const FaceIndex &a_face, const EBISBox &a_ebisBox, const IntVectSet &a_cfivs, const RealVect &a_dx, bool a_doFaceInterp)
 
static void getFaceCenteredFluxStencil (VoFStencil &a_fluxStencil, const FaceIndex &a_face, const RealVect &a_dx)
 

Static Public Attributes

static int s_numComps
 
static int s_whichComp
 

Protected Member Functions

void defineMGObjects (const EBLevelGrid &a_eblgCoarMG)
 
void defineWithCoarser (const EBLevelGrid &a_eblgCoar, const int &a_refToCoar)
 
void defineWithFiner (const EBLevelGrid &a_eblgFine, const int &a_refToFine)
 
void defineStencils ()
 
void defineEBCFStencils ()
 

Protected Attributes

LevelData< EBCellFABm_resThisLevel
 
int m_testRef
 
const IntVect m_ghostCellsPhi
 
const IntVect m_ghostCellsRHS
 
RefCountedPtr< EBQuadCFInterpm_quadCFIWithCoar
 
EBLevelGrid m_eblg
 
EBLevelGrid m_eblgFine
 
EBLevelGrid m_eblgCoar
 
EBLevelGrid m_eblgCoarMG
 
EBLevelGrid m_eblgCoarsenedFine
 
RefCountedPtr< BaseDomainBCm_domainBC
 
RefCountedPtr< BaseEBBCm_ebBC
 
LayoutData< Vector< VolIndex > > m_rhsSetList
 
RealVect m_dxFine
 
RealVect m_dx
 
RealVect m_dxCoar
 
RealVect m_invDx
 
RealVect m_invDx2
 
Real m_dxScale
 
Real m_alpha
 
Real m_aCoef
 
Real m_beta
 
Real m_bCoef
 
RealVect m_origin
 
int m_refToFine
 
int m_refToCoar
 
bool m_hasFine
 
bool m_hasInterpAve
 
bool m_hasCoar
 
int m_numPreCondIters
 
int m_relaxType
 
bool m_hasEBCF
 
Copier m_exchangeCopier
 
EBMGAverage m_ebAverage
 
EBMGInterp m_ebInterp
 
LayoutData< BaseIVFAB< VoFStencil > > m_opStencil
 
LayoutData< RefCountedPtr< EBSTENCIL_T > > m_opEBStencil
 
LayoutData< RefCountedPtr< EBSTENCIL_T > > m_opEBStencilInhomDomLo [SpaceDim]
 
LayoutData< RefCountedPtr< EBSTENCIL_T > > m_opEBStencilInhomDomHi [SpaceDim]
 
LayoutData< RefCountedPtr< EBSTENCIL_T > > m_colorEBStencil [EBAMRPO_NUMSTEN]
 
LayoutData< RefCountedPtr< EBSTENCIL_T > > m_colorEBStencilDomLo [EBAMRPO_NUMSTEN][SpaceDim]
 
LayoutData< RefCountedPtr< EBSTENCIL_T > > m_colorEBStencilDomHi [EBAMRPO_NUMSTEN][SpaceDim]
 
LayoutData< RefCountedPtr< EBSTENCIL_T > > m_invDiagEBStencil
 
LayoutData< BaseIVFAB< Real > > m_alphaDiagWeight
 
LayoutData< BaseIVFAB< Real > > m_betaDiagWeight
 
LayoutData< BaseIVFAB< Real > > m_one
 
LayoutData< VoFIteratorm_vofItIrreg
 
LayoutData< VoFIteratorm_vofItIrregColor [EBAMRPO_NUMSTEN]
 
LayoutData< VoFIteratorm_vofItIrregDomLo [SpaceDim]
 
LayoutData< VoFIteratorm_vofItIrregDomHi [SpaceDim]
 
LayoutData< VoFIteratorm_vofItIrregColorDomLo [EBAMRPO_NUMSTEN][SpaceDim]
 
LayoutData< VoFIteratorm_vofItIrregColorDomHi [EBAMRPO_NUMSTEN][SpaceDim]
 
Vector< Vector< RefCountedPtr< LayoutData< EBCellFAB > > > > m_cacheInhomDomBCLo
 
Vector< Vector< RefCountedPtr< LayoutData< EBCellFAB > > > > m_cacheInhomDomBCHi
 
LayoutData< CFIVSm_loCFIVS [SpaceDim]
 
LayoutData< CFIVSm_hiCFIVS [SpaceDim]
 
EBFastFR m_fastFR
 
LayoutData< Vector< FaceIndex > > m_faceitCoar [2 *SpaceDim]
 
LayoutData< Vector< VoFStencil > > m_stencilCoar [2 *SpaceDim]
 
bool m_hasMGObjects
 
bool m_layoutChanged
 
Vector< IntVectm_colors
 
EBMGAverage m_ebAverageMG
 
EBMGInterp m_ebInterpMG
 
DisjointBoxLayout m_dblCoarMG
 
EBISLayout m_ebislCoarMG
 
ProblemDomain m_domainCoarMG
 

Static Protected Attributes

static bool s_turnOffBCs
 
static bool s_doEBEllipticLoadBalance
 
static bool s_areaFracWeighted
 
static Real s_time
 
static bool s_doLazyRelax
 
static bool s_doInconsistentRelax
 
static bool s_doTrimEdges
 
static bool s_doSetListValueResid
 

Private Member Functions

void fast_incrementFRCoar (const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi)
 
void fast_incrementFRFine (const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp)
 
void getFlux (EBFaceFAB &a_flux, const EBCellFAB &a_phi, const Box &a_ghostedBox, const Box &a_fabBox, const ProblemDomain &a_domainBox, const EBISBox &a_ebisBox, const RealVect &a_dx, const int &a_idir)
 this one gets called by base level tga (called by the public getFlux) More...
 
void getFluxEBCF (EBFaceFAB &a_flux, const EBCellFAB &a_phi, const Box &a_ghostedBox, Vector< FaceIndex > &a_faceitEBCF, Vector< VoFStencil > &a_ebcfsten, const RealVect &a_dx)
 this one is internal (called by refluxing) More...
 
void getFluxRegO (EBFaceFAB &a_flux, const EBCellFAB &a_phi, const Box &a_ghostedBox, const RealVect &a_dx)
 this one is internal (called by refluxing) More...
 
void getOpVoFStencil (VoFStencil &a_stencil, const EBISBox &a_ebisbox, const VolIndex &a_vof)
 
void getOpVoFStencil (VoFStencil &a_stencil, const int &a_dir, const Vector< VolIndex > &a_allMonotoneVoFs, const EBISBox &a_ebisbox, const VolIndex &a_vof, const bool &a_lowOrder)
 
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)
 
void levelJacobi (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs)
 
void applyHomogeneousCFBCs (LevelData< EBCellFAB > &a_phi)
 
void applyHomogeneousCFBCs (EBCellFAB &a_phi, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
 
Real getRadius (const FaceIndex &a_face, const RealVect &a_centroid)
 
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)
 
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)
 
 EBAMRPoissonOp (const EBAMRPoissonOp &a_opin)
 
void operator= (const EBAMRPoissonOp &a_opin)
 

Detailed Description

Operator to solve (alpha + beta lapl)phi = rhs. This follows the AMRLevelOp interface.

Constructor & Destructor Documentation

◆ ~EBAMRPoissonOp()

virtual EBAMRPoissonOp::~EBAMRPoissonOp ( )
virtual

Referenced by setTime().

◆ EBAMRPoissonOp() [1/3]

EBAMRPoissonOp::EBAMRPoissonOp ( )

Referenced by setTime().

◆ EBAMRPoissonOp() [2/3]

EBAMRPoissonOp::EBAMRPoissonOp ( const EBLevelGrid a_eblgFine,
const EBLevelGrid a_eblg,
const EBLevelGrid a_eblgCoar,
const EBLevelGrid a_eblgCoarMG,
const RefCountedPtr< EBQuadCFInterp > &  a_quadCFI,
const RefCountedPtr< BaseDomainBC > &  a_domainBC,
const RefCountedPtr< BaseEBBC > &  a_ebBC,
const RealVect a_dx,
const RealVect a_dxCoar,
const RealVect a_origin,
const int &  a_refToFine,
const int &  a_refToCoar,
const bool &  a_hasFine,
const bool &  a_hasCoar,
const bool &  a_hasMGObjects,
const bool &  a_layoutChanged,
const int &  a_numPreCondIters,
const int &  a_relaxType,
const Real a_alpha,
const Real a_beta,
const IntVect a_ghostCellsPhi,
const IntVect a_ghostCellsRHS,
int  a_testRef = 2 
)

If you are approaching this operator from this interface, consider backing away and using EBAMRPoissonOpFactory to generate these objects. Really. a_eblgFine, : grid at finer level \ a_eblg, : grid at this level \ a_eblgCoar, : grid at coarser level \ a_eblgCoarMG, : grid at intermediate multigrid level \ a_domainBC, : domain boundary conditions at this level \ a_ebBC: eb boundary conditions at this level \ a_dx: grid spacing at this level \ a_origin: offset to lowest corner of the domain \ a_refToFine: refinement ratio to finer level \ a_refToCoar: refinement ratio to coarser level \ a_hasFiner: true if there is a finer AMR level, false otherwise. \ a_hasCoarser: true if there is a coarser AMR level. \ a_hasCoarserMG: true if there is a coarser MultiGrid level. \ a_preCondIters: number of iterations to do for pre-conditioning \ a_relaxType: 0 means point Jacobi, 1 is Gauss-Seidel. \ a_alpha: coefficent of identity \ a_beta: coefficient of laplacian.\ a_ghostCellsPhi: Number of ghost cells in phi, correction\ a_ghostCellsRhs: Number of ghost cells in RHS, residual, lphi\ Ghost cell arguments are there for caching reasons. Once you set them, an error is thrown if you send in data that does not match.

◆ EBAMRPoissonOp() [3/3]

EBAMRPoissonOp::EBAMRPoissonOp ( const EBAMRPoissonOp a_opin)
inlineprivate

References MayDay::Error().

Member Function Documentation

◆ getVoFStencil() [1/2]

void EBAMRPoissonOp::getVoFStencil ( VoFStencil a_stenc,
const VolIndex a_vof,
const DataIndex a_dit 
) const

◆ dumpAMR()

virtual void EBAMRPoissonOp::dumpAMR ( Vector< LevelData< EBCellFAB > *> &  a_data,
string  name 
)
inlinevirtual

Reimplemented from AMRLevelOp< LevelData< EBCellFAB > >.

References writeEBAMRname().

◆ dumpLevel()

virtual void EBAMRPoissonOp::dumpLevel ( LevelData< EBCellFAB > &  a_data,
string  name 
)
inlinevirtual

◆ getPetscMatrix()

int EBAMRPoissonOp::getPetscMatrix ( Mat &  a_petsc_mat)

Fill a_petsc_mat with a matrix that describes the operator stencil.

Referenced by dumpLevel().

◆ getLevelDataFromPetscVector()

int EBAMRPoissonOp::getLevelDataFromPetscVector ( LevelData< EBCellFAB > &  a_data,
const Vec &  a_petsc_vec_real,
const Vec &  a_petsc_vec_imag 
)

put the real components into comp 0, the imaginary ones into comp 1

Referenced by dumpLevel().

◆ getMatrixIndexingLD()

static int EBAMRPoissonOp::getMatrixIndexingLD ( LevelData< BaseEBCellFAB< int > > &  a_gids,
int &  a_data,
const EBLevelGrid a_eblg,
const IntVect a_ghostCellsPhi,
const bool &  a_hasCoar 
)
static

get the matrix indicies associated with every point on the level Not really going to work if level does not cover the domain

Referenced by dumpLevel().

◆ getAggregatedLayout()

static void EBAMRPoissonOp::getAggregatedLayout ( DisjointBoxLayout a_dblCoar,
const ProblemDomain a_domainCoar,
const EBIndexSpace *const  a_ebisPtr,
const int &  a_maxBoxSize 
)
static

Referenced by dumpLevel().

◆ getCoarserLayouts()

static bool EBAMRPoissonOp::getCoarserLayouts ( DisjointBoxLayout a_dblCoar,
ProblemDomain a_domainCoar,
const DisjointBoxLayout a_dblFine,
const EBISLayout a_ebislFine,
const ProblemDomain a_domainFine,
int  a_refToCoar,
const EBIndexSpace a_ebisPtr,
int  a_maxBoxSize,
bool &  a_layoutChanged,
int  a_testRef = 2 
)
static

version that does not fill ebislcoar

Referenced by dumpLevel().

◆ staticMaxNorm()

static Real EBAMRPoissonOp::staticMaxNorm ( const LevelData< EBCellFAB > &  a_rhs,
const EBLevelGrid a_eblg 
)
static

Referenced by dumpLevel().

◆ setAlphaAndBeta()

virtual void EBAMRPoissonOp::setAlphaAndBeta ( const Real a_alpha,
const Real a_beta 
)
virtual

Sets the scaling constants in the Helmholtz equation.

Parameters
a_alphaThe scaling constant that multiplies the identity term.
a_betaThe scaling constant that multiplies the derivative term.

Implements TGAHelmOp< LevelData< EBCellFAB > >.

Referenced by dumpLevel().

◆ diagonalScale()

virtual void EBAMRPoissonOp::diagonalScale ( LevelData< EBCellFAB > &  a_rhs,
bool  a_kappaWeighted = true 
)
virtual

Scales the right hand side of the Helmholtz equation by the identity term in the operator. If you are solving rho(x) dphi/dt = L(phi), this means multiply by rho (or kappa * rho in embedded boundary calculations.

Parameters
a_rhsThe right hand side of the equation to be scaled.
a_kappaWeightedIf set to true, a_rhs will be scaled by the volume fraction in addition to the identity term.

Reimplemented from TGAHelmOp< LevelData< EBCellFAB > >.

Referenced by dumpLevel(), and kappaScale().

◆ divideByIdentityCoef()

virtual void EBAMRPoissonOp::divideByIdentityCoef ( LevelData< EBCellFAB > &  a_rhs)
inlinevirtual

Divides the right hand side of the Helmholtz equation by the identity coefficient rho(x) in the equation rho(x) dphi/dt = L(phi).

Parameters
a_rhsThe right hand side of the equation to be scaled.

Implements TGAHelmOp< LevelData< EBCellFAB > >.

◆ kappaScale()

virtual void EBAMRPoissonOp::kappaScale ( LevelData< EBCellFAB > &  a_rhs)
inlinevirtual

for eb only. kappa weight the rhs but do not multiply by the identity coefficient

Reimplemented from TGAHelmOp< LevelData< EBCellFAB > >.

References diagonalScale().

◆ dx()

Real EBAMRPoissonOp::dx ( ) const
inlinevirtual

returns m_dx, such function is required by some LinearSolvers

Reimplemented from LinearOp< LevelData< EBCellFAB > >.

References m_dx.

◆ fillGrad()

virtual void EBAMRPoissonOp::fillGrad ( const LevelData< EBCellFAB > &  a_phi)
inlinevirtual

◆ dumpStencilMatrix()

void EBAMRPoissonOp::dumpStencilMatrix ( )

◆ getDomainFluxStencil()

void EBAMRPoissonOp::getDomainFluxStencil ( VoFStencil a_stencil,
const VolIndex a_vof,
const int  a_comp,
const DataIndex a_dit 
)

◆ dumpReferenceStencilMatrix()

void EBAMRPoissonOp::dumpReferenceStencilMatrix ( )

◆ getFlux() [1/2]

virtual void EBAMRPoissonOp::getFlux ( EBFluxFAB a_flux,
const LevelData< EBCellFAB > &  a_data,
const Box a_grid,
const DataIndex a_dit,
Real  a_scale 
)
inlinevirtual

◆ getEBLG()

EBLevelGrid EBAMRPoissonOp::getEBLG ( )
inline

References m_eblg.

◆ getEBLGCoarMG()

EBLevelGrid EBAMRPoissonOp::getEBLGCoarMG ( )
inline

References m_eblgCoarMG.

◆ setOperatorTime()

static void EBAMRPoissonOp::setOperatorTime ( Real  a_time)
inlinestatic

References s_time.

Referenced by setTime().

◆ setTime()

virtual void EBAMRPoissonOp::setTime ( Real  a_time)
inlinevirtual

◆ AMRResidualNC()

void EBAMRPoissonOp::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

a_residual = a_rhs - L(a_phiFine, a_phi) no coaser AMR level

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ AMROperatorNC()

void EBAMRPoissonOp::AMROperatorNC ( LevelData< EBCellFAB > &  a_LofPhi,
const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
bool  a_homogeneousBC,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
)
virtual

apply AMR operator no coaser AMR level

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ residual()

virtual void EBAMRPoissonOp::residual ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs,
bool  a_homogeneous = false 
)
virtual

Say you are solving L(phi) = rhs. Make a_lhs = L(a_phi) - a_rhs. If a_homogeneous is true, evaluate the operator using homogeneous boundary conditions.

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ getOpMatrix()

virtual void EBAMRPoissonOp::getOpMatrix ( const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs 
)
virtual

For debugging purpose, get the matrix of the op (could be change from time to time due to EBBC update) by calculating 0 - L(phi(i)) for i=0,1,...,n, each time phi(i)=1 for i-th cell and 0 for all other cells

Referenced by setTime().

◆ preCond()

virtual void EBAMRPoissonOp::preCond ( LevelData< EBCellFAB > &  a_cor,
const LevelData< EBCellFAB > &  a_residual 
)
virtual

Given the current state of the residual the correction, apply your preconditioner to a_cor.

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ applyOp() [1/4]

virtual void EBAMRPoissonOp::applyOp ( LevelData< EBCellFAB > &  a_opPhi,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > *const  a_phiCoarse,
const bool &  a_homogeneousPhysBC,
const bool &  a_homogeneousCFBC 
)
virtual

This function assumes that coarse-fine boundary condtions have been dealt with.

Referenced by setTime().

◆ applyOpNoBoundary()

virtual void EBAMRPoissonOp::applyOpNoBoundary ( LevelData< EBCellFAB > &  a_opPhi,
const LevelData< EBCellFAB > &  a_phi 
)
virtual

virtual function called by LevelTGA

Implements TGAHelmOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ applyOp() [2/4]

virtual void EBAMRPoissonOp::applyOp ( LevelData< EBCellFAB > &  a_opPhi,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > *const  a_phiCoar,
const bool &  a_homogeneousPhysBC,
const bool &  a_homogeneousCFBC,
const LevelData< BaseIVFAB< Real > > *const  a_ebFluxBCLD 
)
virtual

get EB flux from leveldata if we have one. otherwise use m_ebBC ignore input data in the case of homogeneous Phys BC

◆ applyOp() [3/4]

virtual void EBAMRPoissonOp::applyOp ( LevelData< EBCellFAB > &  a_opPhi,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > *const  a_phiCoar,
DataIterator a_dit,
const bool &  a_homogeneousPhysBC,
const bool &  a_homogeneousCFBC,
const LevelData< BaseIVFAB< Real > > *const  a_ebFluxBCLD 
)
virtual

◆ GSColorAllRegular()

virtual void EBAMRPoissonOp::GSColorAllRegular ( BaseFab< Real > &  a_phi,
const BaseFab< Real > &  a_rhs,
const int &  a_icolor,
const Real a_weight,
const bool &  a_homogeneousPhysBC,
const DataIndex a_dit 
)
virtual

Referenced by setTime().

◆ GSColorAllIrregular()

virtual void EBAMRPoissonOp::GSColorAllIrregular ( EBCellFAB a_phi,
const EBCellFAB a_rhs,
const int &  a_icolor,
const bool &  a_homogeneousPhysBC,
const DataIndex a_dit 
)
virtual

Referenced by setTime().

◆ GSColorAllRegularClone()

virtual void EBAMRPoissonOp::GSColorAllRegularClone ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiOld,
const LevelData< EBCellFAB > &  a_rhs,
const int &  a_icolor,
const Real a_weight,
const bool &  a_homogeneousPhysBC 
)
virtual

Referenced by setTime().

◆ GSColorAllIrregularClone()

virtual void EBAMRPoissonOp::GSColorAllIrregularClone ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiOld,
const LevelData< EBCellFAB > &  a_rhs,
const int &  a_icolor,
const bool &  a_homogeneousPhysBC 
)
virtual

Referenced by setTime().

◆ mvApplyDomainFlux()

void EBAMRPoissonOp::mvApplyDomainFlux ( BaseFab< Real > &  a_phiFAB,
const Box a_grid,
const DataIndex a_dit 
)

apply domainflux in multivariable mode

Referenced by setTime().

◆ mvBetaLaplacianGrid()

void EBAMRPoissonOp::mvBetaLaplacianGrid ( EBCellFAB a_lph,
const EBCellFAB a_phi,
const DataIndex a_dit 
)

for taking the multi-variable laplacian (think source term in viscous flow) evaluates beta*laplacian (with inhomogeneous bcs).

Referenced by setTime().

◆ applyOp() [4/4]

virtual void EBAMRPoissonOp::applyOp ( LevelData< EBCellFAB > &  a_opPhi,
const LevelData< EBCellFAB > &  a_phi,
bool  a_homogeneousPhysBC 
)
virtual

this is the linearop function. CFBC is set to homogeneous. phic is null

Implements LinearOp< LevelData< EBCellFAB > >.

◆ applyOpNoCFBCs()

void EBAMRPoissonOp::applyOpNoCFBCs ( LevelData< EBCellFAB > &  a_opPhi,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > *const  a_phiCoar,
DataIterator a_dit,
const bool &  a_homogeneousPhysBC,
const bool &  a_homogeneousCFBC,
const LevelData< BaseIVFAB< Real > > *const  a_ebFluxBCLD 
)

no exchange of cf interp

Referenced by setTime().

◆ create()

virtual void EBAMRPoissonOp::create ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs 
)
virtual

Creat data holder a_lhs that mirrors a_rhs. You do not need to copy the data of a_rhs, just make a holder the same size.

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ createCoarsened()

virtual void EBAMRPoissonOp::createCoarsened ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs,
const int &  a_refRat 
)
virtual

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ buildCopier()

virtual void EBAMRPoissonOp::buildCopier ( Copier a_copier,
const LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs 
)
virtual

Reimplemented from AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ assignCopier()

virtual void EBAMRPoissonOp::assignCopier ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs,
const Copier a_copier 
)
virtual

Reimplemented from AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ AMRNorm()

Real EBAMRPoissonOp::AMRNorm ( const LevelData< EBCellFAB > &  a_coarResid,
const LevelData< EBCellFAB > &  a_fineResid,
const int &  a_refRat,
const int &  a_ord 
)
virtual

Reimplemented from AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ assign()

virtual void EBAMRPoissonOp::assign ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs 
)
virtual

Set a_lhs equal to a_rhs.

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ assignLocal()

virtual void EBAMRPoissonOp::assignLocal ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs 
)
virtual

copier definition was killing us.

Reimplemented from LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ dotProduct()

virtual Real EBAMRPoissonOp::dotProduct ( const LevelData< EBCellFAB > &  a_1,
const LevelData< EBCellFAB > &  a_2 
)
virtual

Compute and return the dot product of a_1 and a_2. In most contexts, this means return the sum over all data points of a_1*a_2.

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ incr()

virtual void EBAMRPoissonOp::incr ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_x,
Real  a_scale 
)
virtual

Increment by scaled amount (a_lhs += a_scale*a_x).

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ axby()

virtual void EBAMRPoissonOp::axby ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_x,
const LevelData< EBCellFAB > &  a_y,
Real  a_a,
Real  a_b 
)
virtual

Set input to a scaled sum (a_lhs = a_a*a_x + a_b*a_y).

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ scale()

virtual void EBAMRPoissonOp::scale ( LevelData< EBCellFAB > &  a_lhs,
const Real a_scale 
)
virtual

Multiply the input by a given scale (a_lhs *= a_scale).

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ norm()

virtual Real EBAMRPoissonOp::norm ( const LevelData< EBCellFAB > &  a_rhs,
int  a_ord 
)
virtual

Return the norm of a_rhs. a_ord == 0 max norm, a_ord == 1 sum(abs(a_rhs)), else, L(a_ord) norm.

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ localMaxNorm()

virtual Real EBAMRPoissonOp::localMaxNorm ( const LevelData< EBCellFAB > &  a_rhs)
virtual

Reimplemented from AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ setToZero()

virtual void EBAMRPoissonOp::setToZero ( LevelData< EBCellFAB > &  a_lhs)
virtual

Set a_lhs to zero.

Implements LinearOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ setVal()

virtual void EBAMRPoissonOp::setVal ( LevelData< EBCellFAB > &  a_lhs,
const Real a_value 
)
virtual

Referenced by setTime().

◆ createCoarser()

virtual void EBAMRPoissonOp::createCoarser ( LevelData< EBCellFAB > &  a_coarse,
const LevelData< EBCellFAB > &  a_fine,
bool  ghosted 
)
virtual

Create a coarsened (by two) version of the input data. This does not include averaging the data. So if a_fine is over a Box of (0, 0, 0) (63, 63, 63), a_fine should be over a Box (0, 0, 0) (31, 31, 31).

Implements MGLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ relax()

virtual void EBAMRPoissonOp::relax ( LevelData< EBCellFAB > &  a_correction,
const LevelData< EBCellFAB > &  a_residual,
int  a_iterations 
)
virtual

Use your relaxation operator to remove the high frequency wave numbers from the correction so that it may be averaged to a coarser refinement. A point relaxtion scheme, for example takes the form a_correction -= lambda*(L(a_correction) - a_residual).

Implements MGLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ restrictResidual()

virtual void EBAMRPoissonOp::restrictResidual ( LevelData< EBCellFAB > &  a_resCoarse,
LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_rhsFine 
)
virtual

Calculate restricted residual: a_resCoarse[2h] = I[h->2h] (a_rhsFine[h] - L[h](a_phiFine[h]))

Implements MGLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ prolongIncrement()

virtual void EBAMRPoissonOp::prolongIncrement ( LevelData< EBCellFAB > &  a_phiThisLevel,
const LevelData< EBCellFAB > &  a_correctCoarse 
)
virtual

Correct the fine solution based on coarse correction: a_phiThisLevel += I[2h->h] (a_correctCoarse)

Implements MGLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ refToCoarser()

virtual int EBAMRPoissonOp::refToCoarser ( )
virtual

Refinement ratio between this level and coarser level. Returns 1 when there are no coarser AMRLevelOp objects

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ refToFiner()

virtual int EBAMRPoissonOp::refToFiner ( )
virtual

Refinement ratio between this level and coarser level. Returns 1 when there are no coarser AMRLevelOp objects

Referenced by setTime().

◆ AMRResidual()

virtual void EBAMRPoissonOp::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

a_residual = a_rhs - L(a_phi, a_phiFine, a_phiCoarse)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ AMRResidualNF()

virtual void EBAMRPoissonOp::AMRResidualNF ( LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiCoarse,
const LevelData< EBCellFAB > &  a_rhs,
bool  a_homogeneousBC 
)
virtual

a_residual = a_rhs - L(a_phi, a_phiCoarse)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ AMROperator()

virtual void EBAMRPoissonOp::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

a_residual = a_rhs - L(a_phi, a_phiFine, a_phiCoarse)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ AMROperatorNF()

virtual void EBAMRPoissonOp::AMROperatorNF ( LevelData< EBCellFAB > &  a_LofPhi,
const LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiCoarse,
bool  a_homogeneousBC 
)
virtual

a_residual = a_rhs - L(a_phi, a_phiCoarse)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ AMRRestrict()

virtual void EBAMRPoissonOp::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 
)
virtual

a_resCoarse = I[h-2h] (a_residual - L(a_correction, a_coarseCorrection))

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ AMRProlong()

virtual void EBAMRPoissonOp::AMRProlong ( LevelData< EBCellFAB > &  a_correction,
const LevelData< EBCellFAB > &  a_coarseCorrection 
)
virtual

a_correction += I[2h->h](a_coarseCorrection)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ AMRUpdateResidual() [1/2]

virtual void EBAMRPoissonOp::AMRUpdateResidual ( LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_correction,
const LevelData< EBCellFAB > &  a_coarseCorrection 
)
virtual

a_residual = a_residual - L(a_correction, a_coarseCorrection)

Implements AMRLevelOp< LevelData< EBCellFAB > >.

Referenced by setTime().

◆ AMRUpdateResidual() [2/2]

void EBAMRPoissonOp::AMRUpdateResidual ( LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_correction,
const LevelData< EBCellFAB > &  a_coarseCorrection,
const LevelData< BaseIVFAB< Real > > *const  a_ebFluxBCLD 
)

a_residual = a_residual - L(a_correction, a_coarseCorrection) used in multifluid

◆ reflux()

void EBAMRPoissonOp::reflux ( LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
)

Referenced by setTime().

◆ fast_reflux()

void EBAMRPoissonOp::fast_reflux ( LevelData< EBCellFAB > &  a_residual,
const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
)

Referenced by setTime().

◆ setEBBC()

void EBAMRPoissonOp::setEBBC ( const RefCountedPtr< BaseEBBC > &  a_ebBC)

Referenced by setTime().

◆ slowGSRBColor()

void EBAMRPoissonOp::slowGSRBColor ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_res,
int  a_iredblack 
)

Referenced by setTime().

◆ levelSlowRelax()

void EBAMRPoissonOp::levelSlowRelax ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs 
)

Referenced by setTime().

◆ levelJacobi() [1/2]

void EBAMRPoissonOp::levelJacobi ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs,
int  a_iterations 
)

Referenced by setTime().

◆ levelMultiColorGS() [1/2]

void EBAMRPoissonOp::levelMultiColorGS ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs 
)

Referenced by setTime().

◆ levelMultiColorGS() [2/2]

void EBAMRPoissonOp::levelMultiColorGS ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_resid,
const IntVect color 
)

◆ colorGS()

void EBAMRPoissonOp::colorGS ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs,
const int &  a_icolor 
)

Referenced by setTime().

◆ levelGSRB() [1/2]

void EBAMRPoissonOp::levelGSRB ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs 
)

Referenced by setTime().

◆ levelGSRB() [2/2]

void EBAMRPoissonOp::levelGSRB ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs,
const int  a_color 
)

◆ levelMultiColorGSClone()

void EBAMRPoissonOp::levelMultiColorGSClone ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs 
)

Referenced by setTime().

◆ colorGSClone()

void EBAMRPoissonOp::colorGSClone ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_phiOld,
const LevelData< EBCellFAB > &  a_rhs,
const int &  a_icolor 
)

Referenced by setTime().

◆ doLazyRelax()

static void EBAMRPoissonOp::doLazyRelax ( bool  a_doLazyRelax)
static

Referenced by setTime().

◆ doEBEllipticLoadBalance()

static void EBAMRPoissonOp::doEBEllipticLoadBalance ( bool  a_doEBEllipticLoadBalance)
static

Referenced by setTime().

◆ areaFracWeighted()

static void EBAMRPoissonOp::areaFracWeighted ( bool  a_areaFracWeighted)
static

Referenced by setTime().

◆ getDivFStencil() [1/2]

static void EBAMRPoissonOp::getDivFStencil ( VoFStencil a_vofStencil,
const VolIndex a_vof,
const EBISBox a_ebisBox,
const IntVectSet a_cfivs,
const RealVect a_dx,
bool  doFaceInterp = true 
)
static

Referenced by setTime().

◆ getDivFStencil() [2/2]

void EBAMRPoissonOp::getDivFStencil ( VoFStencil a_vofStencil,
const VolIndex a_vof,
const DataIndex a_dit,
bool  doFaceInterp 
) const

◆ getVoFStencil() [2/2]

void EBAMRPoissonOp::getVoFStencil ( LayoutData< BaseIVFAB< VoFStencil > > const *&  a_vofStencil)
inline

References m_opStencil.

◆ getAlphaDiagWeight()

void EBAMRPoissonOp::getAlphaDiagWeight ( LayoutData< BaseIVFAB< Real > > const *&  a_alphaDiagWeight)
inline

References m_alphaDiagWeight.

◆ getAlphaBeta()

void EBAMRPoissonOp::getAlphaBeta ( Real a_alpha,
Real a_beta 
)
inline

References m_alpha, and m_beta.

◆ getDomainBC()

const RefCountedPtr<BaseDomainBC> EBAMRPoissonOp::getDomainBC ( )
inline

◆ setListValue() [1/2]

void EBAMRPoissonOp::setListValue ( const LevelData< EBCellFAB > &  a_data,
Real  a_value 
)

Referenced by getDomainBC().

◆ setListValue() [2/2]

void EBAMRPoissonOp::setListValue ( EBCellFAB a_data,
const Vector< VolIndex > &  a_setList,
Real  a_value 
)

◆ setRhsSetList()

void EBAMRPoissonOp::setRhsSetList ( const LayoutData< Vector< VolIndex > > &  a_list)

Referenced by getDomainBC().

◆ getRhsSetList()

LayoutData<Vector<VolIndex> >& EBAMRPoissonOp::getRhsSetList ( )
inline

References m_rhsSetList.

◆ getListValue()

const LayoutData<Vector<VolIndex> >& EBAMRPoissonOp::getListValue ( )
inline

◆ getFluxStencil()

static void EBAMRPoissonOp::getFluxStencil ( VoFStencil a_fluxStencil,
const FaceIndex a_face,
const EBISBox a_ebisBox,
const IntVectSet a_cfivs,
const RealVect a_dx,
bool  a_doFaceInterp 
)
static

Referenced by getListValue().

◆ getFaceCenteredFluxStencil()

static void EBAMRPoissonOp::getFaceCenteredFluxStencil ( VoFStencil a_fluxStencil,
const FaceIndex a_face,
const RealVect a_dx 
)
static

Referenced by getListValue().

◆ applyCFBCs()

void EBAMRPoissonOp::applyCFBCs ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > *const  a_phiCoarse,
bool  a_homogeneousCFBC,
bool  a_doOnlyRegularInterp = false 
)

Referenced by getListValue().

◆ getInvDiagRHS()

void EBAMRPoissonOp::getInvDiagRHS ( LevelData< EBCellFAB > &  a_lhs,
const LevelData< EBCellFAB > &  a_rhs 
)

This function computes: a_lhs = (1/diagonal)*a_rhs It is used to initialize the preconditioner, and by MFPoissonOp::levelJacobi. Consider using one of the level Gauss-Seidel methods instead of monkeying with this.

Referenced by getListValue().

◆ defineMGObjects()

void EBAMRPoissonOp::defineMGObjects ( const EBLevelGrid a_eblgCoarMG)
protected

◆ defineWithCoarser()

void EBAMRPoissonOp::defineWithCoarser ( const EBLevelGrid a_eblgCoar,
const int &  a_refToCoar 
)
protected

◆ defineWithFiner()

void EBAMRPoissonOp::defineWithFiner ( const EBLevelGrid a_eblgFine,
const int &  a_refToFine 
)
protected

◆ defineStencils()

void EBAMRPoissonOp::defineStencils ( )
protected

◆ defineEBCFStencils()

void EBAMRPoissonOp::defineEBCFStencils ( )
protected

◆ fast_incrementFRCoar()

void EBAMRPoissonOp::fast_incrementFRCoar ( const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi 
)
private

◆ fast_incrementFRFine()

void EBAMRPoissonOp::fast_incrementFRFine ( const LevelData< EBCellFAB > &  a_phiFine,
const LevelData< EBCellFAB > &  a_phi,
AMRLevelOp< LevelData< EBCellFAB > > *  a_finerOp 
)
private

◆ getFlux() [2/2]

void EBAMRPoissonOp::getFlux ( EBFaceFAB a_flux,
const EBCellFAB a_phi,
const Box a_ghostedBox,
const Box a_fabBox,
const ProblemDomain a_domainBox,
const EBISBox a_ebisBox,
const RealVect a_dx,
const int &  a_idir 
)
private

this one gets called by base level tga (called by the public getFlux)

◆ getFluxEBCF()

void EBAMRPoissonOp::getFluxEBCF ( EBFaceFAB a_flux,
const EBCellFAB a_phi,
const Box a_ghostedBox,
Vector< FaceIndex > &  a_faceitEBCF,
Vector< VoFStencil > &  a_ebcfsten,
const RealVect a_dx 
)
private

this one is internal (called by refluxing)

◆ getFluxRegO()

void EBAMRPoissonOp::getFluxRegO ( EBFaceFAB a_flux,
const EBCellFAB a_phi,
const Box a_ghostedBox,
const RealVect a_dx 
)
private

this one is internal (called by refluxing)

◆ getOpVoFStencil() [1/2]

void EBAMRPoissonOp::getOpVoFStencil ( VoFStencil a_stencil,
const EBISBox a_ebisbox,
const VolIndex a_vof 
)
private

◆ getOpVoFStencil() [2/2]

void EBAMRPoissonOp::getOpVoFStencil ( VoFStencil a_stencil,
const int &  a_dir,
const Vector< VolIndex > &  a_allMonotoneVoFs,
const EBISBox a_ebisbox,
const VolIndex a_vof,
const bool &  a_lowOrder 
)
private

◆ getOpFaceStencil()

void EBAMRPoissonOp::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 
)
private

◆ levelJacobi() [2/2]

void EBAMRPoissonOp::levelJacobi ( LevelData< EBCellFAB > &  a_phi,
const LevelData< EBCellFAB > &  a_rhs 
)
private

◆ applyHomogeneousCFBCs() [1/2]

void EBAMRPoissonOp::applyHomogeneousCFBCs ( LevelData< EBCellFAB > &  a_phi)
private

◆ applyHomogeneousCFBCs() [2/2]

void EBAMRPoissonOp::applyHomogeneousCFBCs ( EBCellFAB a_phi,
const DataIndex a_datInd,
int  a_idir,
Side::LoHiSide  a_hiorlo 
)
private

◆ getRadius()

Real EBAMRPoissonOp::getRadius ( const FaceIndex a_face,
const RealVect a_centroid 
)
private

◆ applyOpRegularAllDirs()

void EBAMRPoissonOp::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 
)
private

applyOp() on the regular cells for all directions opPhi comes in holding alpha*phi. this adds on beta*lapl phi

◆ applyDomainFlux()

void EBAMRPoissonOp::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 
)
private

◆ operator=()

void EBAMRPoissonOp::operator= ( const EBAMRPoissonOp a_opin)
inlineprivate

References MayDay::Error().

Member Data Documentation

◆ s_numComps

int EBAMRPoissonOp::s_numComps
static

◆ s_whichComp

int EBAMRPoissonOp::s_whichComp
static

◆ m_resThisLevel

LevelData<EBCellFAB> EBAMRPoissonOp::m_resThisLevel
protected

◆ s_turnOffBCs

bool EBAMRPoissonOp::s_turnOffBCs
staticprotected

◆ s_doEBEllipticLoadBalance

bool EBAMRPoissonOp::s_doEBEllipticLoadBalance
staticprotected

◆ s_areaFracWeighted

bool EBAMRPoissonOp::s_areaFracWeighted
staticprotected

◆ m_testRef

int EBAMRPoissonOp::m_testRef
protected

◆ m_ghostCellsPhi

const IntVect EBAMRPoissonOp::m_ghostCellsPhi
protected

◆ m_ghostCellsRHS

const IntVect EBAMRPoissonOp::m_ghostCellsRHS
protected

◆ m_quadCFIWithCoar

RefCountedPtr<EBQuadCFInterp> EBAMRPoissonOp::m_quadCFIWithCoar
protected

◆ m_eblg

EBLevelGrid EBAMRPoissonOp::m_eblg
protected

Referenced by getEBLG(), and getFlux().

◆ m_eblgFine

EBLevelGrid EBAMRPoissonOp::m_eblgFine
protected

◆ m_eblgCoar

EBLevelGrid EBAMRPoissonOp::m_eblgCoar
protected

◆ m_eblgCoarMG

EBLevelGrid EBAMRPoissonOp::m_eblgCoarMG
protected

Referenced by getEBLGCoarMG().

◆ m_eblgCoarsenedFine

EBLevelGrid EBAMRPoissonOp::m_eblgCoarsenedFine
protected

◆ m_domainBC

RefCountedPtr<BaseDomainBC> EBAMRPoissonOp::m_domainBC
protected

Referenced by getDomainBC().

◆ m_ebBC

RefCountedPtr<BaseEBBC> EBAMRPoissonOp::m_ebBC
protected

◆ m_rhsSetList

LayoutData<Vector<VolIndex> > EBAMRPoissonOp::m_rhsSetList
protected

Referenced by getListValue(), and getRhsSetList().

◆ m_dxFine

RealVect EBAMRPoissonOp::m_dxFine
protected

◆ m_dx

RealVect EBAMRPoissonOp::m_dx
protected

Referenced by dx(), and getFlux().

◆ m_dxCoar

RealVect EBAMRPoissonOp::m_dxCoar
protected

◆ m_invDx

RealVect EBAMRPoissonOp::m_invDx
protected

◆ m_invDx2

RealVect EBAMRPoissonOp::m_invDx2
protected

◆ m_dxScale

Real EBAMRPoissonOp::m_dxScale
protected

◆ m_alpha

Real EBAMRPoissonOp::m_alpha
protected

Referenced by getAlphaBeta().

◆ m_aCoef

Real EBAMRPoissonOp::m_aCoef
protected

◆ m_beta

Real EBAMRPoissonOp::m_beta
protected

Referenced by getAlphaBeta().

◆ m_bCoef

Real EBAMRPoissonOp::m_bCoef
protected

◆ s_time

Real EBAMRPoissonOp::s_time
staticprotected

Referenced by setOperatorTime().

◆ s_doLazyRelax

bool EBAMRPoissonOp::s_doLazyRelax
staticprotected

◆ s_doInconsistentRelax

bool EBAMRPoissonOp::s_doInconsistentRelax
staticprotected

◆ s_doTrimEdges

bool EBAMRPoissonOp::s_doTrimEdges
staticprotected

◆ s_doSetListValueResid

bool EBAMRPoissonOp::s_doSetListValueResid
staticprotected

◆ m_origin

RealVect EBAMRPoissonOp::m_origin
protected

◆ m_refToFine

int EBAMRPoissonOp::m_refToFine
protected

◆ m_refToCoar

int EBAMRPoissonOp::m_refToCoar
protected

◆ m_hasFine

bool EBAMRPoissonOp::m_hasFine
protected

◆ m_hasInterpAve

bool EBAMRPoissonOp::m_hasInterpAve
protected

◆ m_hasCoar

bool EBAMRPoissonOp::m_hasCoar
protected

◆ m_numPreCondIters

int EBAMRPoissonOp::m_numPreCondIters
protected

◆ m_relaxType

int EBAMRPoissonOp::m_relaxType
protected

◆ m_hasEBCF

bool EBAMRPoissonOp::m_hasEBCF
protected

◆ m_exchangeCopier

Copier EBAMRPoissonOp::m_exchangeCopier
protected

◆ m_ebAverage

EBMGAverage EBAMRPoissonOp::m_ebAverage
protected

◆ m_ebInterp

EBMGInterp EBAMRPoissonOp::m_ebInterp
protected

◆ m_opStencil

LayoutData<BaseIVFAB<VoFStencil> > EBAMRPoissonOp::m_opStencil
protected

Referenced by getVoFStencil().

◆ m_opEBStencil

LayoutData<RefCountedPtr<EBSTENCIL_T> > EBAMRPoissonOp::m_opEBStencil
protected

◆ m_opEBStencilInhomDomLo

LayoutData<RefCountedPtr<EBSTENCIL_T> > EBAMRPoissonOp::m_opEBStencilInhomDomLo[SpaceDim]
protected

◆ m_opEBStencilInhomDomHi

LayoutData<RefCountedPtr<EBSTENCIL_T> > EBAMRPoissonOp::m_opEBStencilInhomDomHi[SpaceDim]
protected

◆ m_colorEBStencil

LayoutData<RefCountedPtr<EBSTENCIL_T> > EBAMRPoissonOp::m_colorEBStencil[EBAMRPO_NUMSTEN]
protected

◆ m_colorEBStencilDomLo

LayoutData<RefCountedPtr<EBSTENCIL_T> > EBAMRPoissonOp::m_colorEBStencilDomLo[EBAMRPO_NUMSTEN][SpaceDim]
protected

◆ m_colorEBStencilDomHi

LayoutData<RefCountedPtr<EBSTENCIL_T> > EBAMRPoissonOp::m_colorEBStencilDomHi[EBAMRPO_NUMSTEN][SpaceDim]
protected

◆ m_invDiagEBStencil

LayoutData<RefCountedPtr<EBSTENCIL_T> > EBAMRPoissonOp::m_invDiagEBStencil
protected

◆ m_alphaDiagWeight

LayoutData<BaseIVFAB<Real> > EBAMRPoissonOp::m_alphaDiagWeight
protected

Referenced by getAlphaDiagWeight().

◆ m_betaDiagWeight

LayoutData<BaseIVFAB<Real> > EBAMRPoissonOp::m_betaDiagWeight
protected

◆ m_one

LayoutData<BaseIVFAB<Real> > EBAMRPoissonOp::m_one
protected

◆ m_vofItIrreg

LayoutData<VoFIterator > EBAMRPoissonOp::m_vofItIrreg
protected

◆ m_vofItIrregColor

LayoutData<VoFIterator > EBAMRPoissonOp::m_vofItIrregColor[EBAMRPO_NUMSTEN]
protected

◆ m_vofItIrregDomLo

LayoutData<VoFIterator > EBAMRPoissonOp::m_vofItIrregDomLo[SpaceDim]
protected

◆ m_vofItIrregDomHi

LayoutData<VoFIterator > EBAMRPoissonOp::m_vofItIrregDomHi[SpaceDim]
protected

◆ m_vofItIrregColorDomLo

LayoutData<VoFIterator > EBAMRPoissonOp::m_vofItIrregColorDomLo[EBAMRPO_NUMSTEN][SpaceDim]
protected

◆ m_vofItIrregColorDomHi

LayoutData<VoFIterator > EBAMRPoissonOp::m_vofItIrregColorDomHi[EBAMRPO_NUMSTEN][SpaceDim]
protected

◆ m_cacheInhomDomBCLo

Vector<Vector<RefCountedPtr<LayoutData<EBCellFAB> > > > EBAMRPoissonOp::m_cacheInhomDomBCLo
protected

◆ m_cacheInhomDomBCHi

Vector<Vector<RefCountedPtr<LayoutData<EBCellFAB> > > > EBAMRPoissonOp::m_cacheInhomDomBCHi
protected

◆ m_loCFIVS

LayoutData<CFIVS> EBAMRPoissonOp::m_loCFIVS[SpaceDim]
protected

◆ m_hiCFIVS

LayoutData<CFIVS> EBAMRPoissonOp::m_hiCFIVS[SpaceDim]
protected

◆ m_fastFR

EBFastFR EBAMRPoissonOp::m_fastFR
protected

◆ m_faceitCoar

LayoutData< Vector<FaceIndex> > EBAMRPoissonOp::m_faceitCoar[2 *SpaceDim]
protected

◆ m_stencilCoar

LayoutData< Vector<VoFStencil> > EBAMRPoissonOp::m_stencilCoar[2 *SpaceDim]
protected

◆ m_hasMGObjects

bool EBAMRPoissonOp::m_hasMGObjects
protected

◆ m_layoutChanged

bool EBAMRPoissonOp::m_layoutChanged
protected

◆ m_colors

Vector<IntVect> EBAMRPoissonOp::m_colors
protected

◆ m_ebAverageMG

EBMGAverage EBAMRPoissonOp::m_ebAverageMG
protected

◆ m_ebInterpMG

EBMGInterp EBAMRPoissonOp::m_ebInterpMG
protected

◆ m_dblCoarMG

DisjointBoxLayout EBAMRPoissonOp::m_dblCoarMG
protected

◆ m_ebislCoarMG

EBISLayout EBAMRPoissonOp::m_ebislCoarMG
protected

◆ m_domainCoarMG

ProblemDomain EBAMRPoissonOp::m_domainCoarMG
protected

The documentation for this class was generated from the following file: