Chombo + EB
3.0
|
#include <EBConductivityOp.H>
Public Member Functions | |
virtual void | dumpAMR (Vector< LevelData< EBCellFAB > *> &a_data, string name) |
for debugging More... | |
virtual void | dumpLevel (LevelData< EBCellFAB > &a_data, string name) |
for debugging More... | |
EBConductivityOp (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblg, const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgCoarMG, const RefCountedPtr< EBQuadCFInterp > &a_quadCFI, const RefCountedPtr< ConductivityBaseDomainBC > &a_domainBC, const RefCountedPtr< ConductivityBaseEBBC > &a_ebBC, const Real &a_dx, const Real &a_dxCoar, 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 Real &a_alpha, const Real &a_beta, const RefCountedPtr< LevelData< EBCellFAB > > &a_acoef, const RefCountedPtr< LevelData< EBFluxFAB > > &a_bcoef, const RefCountedPtr< LevelData< BaseIVFAB< Real > > > &a_bcoIrreg, const IntVect &a_ghostCellsPhi, const IntVect &a_ghostCellsRHS, const int &a_relaxType) | |
EBConductivityOp (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblg, const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgCoarMG, const RefCountedPtr< EBQuadCFInterp > &a_quadCFI, const RefCountedPtr< ConductivityBaseDomainBC > &a_domainBC, const RefCountedPtr< ConductivityBaseEBBC > &a_ebBC, const Real &a_dx, const Real &a_dxCoar, 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 Real &a_alpha, const Real &a_beta, const RefCountedPtr< LevelData< EBCellFAB > > &a_acoef0, const RefCountedPtr< LevelData< EBCellFAB > > &a_acoef1, const RefCountedPtr< LevelData< EBCellFAB > > &a_acoef, const RefCountedPtr< LevelData< EBFluxFAB > > &a_bcoef, const RefCountedPtr< LevelData< BaseIVFAB< Real > > > &a_bcoIrreg, const IntVect &a_ghostCellsPhi, const IntVect &a_ghostCellsRHS, const int &a_relaxType) | |
~EBConductivityOp () | |
Destructor. More... | |
Real | getSafety () |
void | resetACoefficient (RefCountedPtr< LevelData< EBCellFAB > > &a_acoef) |
virtual void | kappaScale (LevelData< EBCellFAB > &a_rhs) |
for eb only. kappa weight the rhs but do not multiply by the identity coefficient More... | |
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) |
void | setAlphaAndBeta (const Real &a_alpha, const Real &a_beta) |
void | diagonalScale (LevelData< EBCellFAB > &a_rhs, bool a_kappaWeighted) |
void | divideByIdentityCoef (LevelData< EBCellFAB > &a_rhs) |
void | fillGrad (const LevelData< EBCellFAB > &a_phi) |
These functions are part of the LevelTGA interface...... More... | |
void | getFlux (EBFluxFAB &a_flux, const LevelData< EBCellFAB > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale) |
void | getFlux (EBFaceFAB &a_fluxCentroid, const EBCellFAB &a_phi, const Box &a_ghostedBox, const Box &a_fabBox, const ProblemDomain &a_domain, const EBISBox &a_ebisBox, const Real &a_dx, const DataIndex &a_datInd, const int &a_idir) |
void | setTime (Real a_oldTime, Real a_mu, Real a_dt) |
void | finerOperatorChanged (const MGLevelOp< LevelData< EBCellFAB > > &a_operator, int a_coarseningFactor) |
virtual void | residual (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_rhs, bool a_homogeneousPhysBC=false) |
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, bool a_homogeneousPhysBC) |
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) |
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 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 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 | relaxGauSai (LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations) |
virtual void | relaxPoiJac (LevelData< EBCellFAB > &a_e, const LevelData< EBCellFAB > &a_residual, int a_iterations) |
virtual void | relaxGSRBFast (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) |
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 | reflux (LevelData< EBCellFAB > &a_residual, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp) |
void | gsrbColor (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > &a_lph, const LevelData< EBCellFAB > &a_rhs, const IntVect &a_color) |
void | getDivFStencil (VoFStencil &a_vofStencil, const VolIndex &a_vof, const DataIndex &a_dit) |
void | getFluxStencil (VoFStencil &a_fluxStencil, const FaceIndex &a_face, const DataIndex &a_dit) |
void | getFaceCenteredFluxStencil (VoFStencil &a_fluxStencil, const FaceIndex &a_face, const DataIndex &a_dit) |
void | incrOpRegularDir (EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const int &a_dir, const DataIndex &a_datInd) |
void | applyOpIrregular (EBCellFAB &a_lhs, const EBCellFAB &a_phi, const bool &a_homogeneous, const DataIndex &a_datInd) |
const EBLevelGrid & | getEBLG () const |
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_time) |
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 | 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) |
virtual void | zeroCovered (LevelData< EBCellFAB > &a_lhs, LevelData< EBCellFAB > &a_rhs, const Copier &a_copier) |
virtual Real | localMaxNorm (const LevelData< EBCellFAB > &a_phi) |
virtual void | AMRProlongS (LevelData< EBCellFAB > &a_correction, const LevelData< EBCellFAB > &a_coarseCorrection, LevelData< EBCellFAB > &a_temp, const Copier &a_copier) |
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) |
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... | |
void | addObserver (MGLevelOpObserver< LevelData< EBCellFAB > > *a_observer) |
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... | |
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 | assignLocal (LevelData< EBCellFAB > &a_lhs, const LevelData< EBCellFAB > &a_rhs) |
virtual void | mDotProduct (const LevelData< EBCellFAB > &a_1, const int a_sz, const LevelData< EBCellFAB > a_2[], Real a_mdots[]) |
virtual Real | dx () const |
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 () |
Protected Member Functions | |
void | incrOpRegularAllDirs (Box *a_loBox, Box *a_hiBox, int *a_hasLo, int *a_hasHi, Box &a_curDblBox, Box &a_curPhiBox, int a_nComps, BaseFab< Real > &a_curOpPhiFAB, const BaseFab< Real > &a_curPhiFAB, bool a_homogeneousPhysBC, const DataIndex &a_dit) |
void | 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) |
void | GSColorAllIrregular (EBCellFAB &a_phi, const EBCellFAB &a_rhs, const int &a_icolor, const DataIndex &a_dit) |
void | dumpFABPoint (const EBCellFAB &a_fab, const DataIndex &a_dit, const string &a_blab) |
void | dumpLevelPoint (const LevelData< EBCellFAB > &a_res, const string &a_blab) |
void | calculateAlphaWeight () |
void | defineStencils () |
void | defineColorStencils (Box a_ideBoxLo[SpaceDim], Box a_ideBoxHi[SpaceDim]) |
void | defineEBCFStencils () |
void | getFluxEBCF (EBFaceFAB &a_flux, const EBCellFAB &a_phi, const Box &a_ghostedBox, Vector< FaceIndex > &a_faceitEBCF, Vector< VoFStencil > &a_stenEBCF) |
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) |
void | calculateRelaxationCoefficient () |
Static Protected Attributes | |
static bool | s_turnOffBCs |
static IntVect | s_ivDebug |
Private Member Functions | |
void | incrementFRCoar (EBFastFR &a_fluxReg, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi) |
void | incrementFRFine (EBFastFR &a_fluxReg, const LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phi, AMRLevelOp< LevelData< EBCellFAB > > *a_finerOp) |
void | getFlux (FArrayBox &a_flux, const FArrayBox &a_phi, const Box &a_faceBox, const int &a_idir, const Real &a_dx, const DataIndex &a_datInd) |
void | applyCFBCs (LevelData< EBCellFAB > &a_phi, const LevelData< EBCellFAB > *const a_phiCoarse, bool a_homogeneousCFBC) |
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) |
EBConductivityOp () | |
Default constructor. Creates an undefined conductivity operator. More... | |
EBConductivityOp (const EBConductivityOp &a_opin) | |
void | operator= (const EBConductivityOp &a_opin) |
This class implements an operator that solves the equation (alpha a + beta div (b grad) )phi = rhs using the AMRLevelOp interface.
EBConductivityOp::EBConductivityOp | ( | const EBLevelGrid & | a_eblgFine, |
const EBLevelGrid & | a_eblg, | ||
const EBLevelGrid & | a_eblgCoar, | ||
const EBLevelGrid & | a_eblgCoarMG, | ||
const RefCountedPtr< EBQuadCFInterp > & | a_quadCFI, | ||
const RefCountedPtr< ConductivityBaseDomainBC > & | a_domainBC, | ||
const RefCountedPtr< ConductivityBaseEBBC > & | a_ebBC, | ||
const Real & | a_dx, | ||
const Real & | a_dxCoar, | ||
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 Real & | a_alpha, | ||
const Real & | a_beta, | ||
const RefCountedPtr< LevelData< EBCellFAB > > & | a_acoef, | ||
const RefCountedPtr< LevelData< EBFluxFAB > > & | a_bcoef, | ||
const RefCountedPtr< LevelData< BaseIVFAB< Real > > > & | a_bcoIrreg, | ||
const IntVect & | a_ghostCellsPhi, | ||
const IntVect & | a_ghostCellsRHS, | ||
const int & | a_relaxType | ||
) |
Constructs a conductivity operator using the given data. This constructor is for time-independent a and b coefficients. If you are approaching this operator from this interface, consider backing away and using EBConductivityOpFactory to generate these objects. Really. 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.
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_acoef | coefficent of identity |
a_bcoef | coefficient of gradient. |
a_ghostCellsPhi | Number of ghost cells in phi, correction |
a_ghostCellsRhs | Number of ghost cells in RHS, residual, lphi |
EBConductivityOp::EBConductivityOp | ( | const EBLevelGrid & | a_eblgFine, |
const EBLevelGrid & | a_eblg, | ||
const EBLevelGrid & | a_eblgCoar, | ||
const EBLevelGrid & | a_eblgCoarMG, | ||
const RefCountedPtr< EBQuadCFInterp > & | a_quadCFI, | ||
const RefCountedPtr< ConductivityBaseDomainBC > & | a_domainBC, | ||
const RefCountedPtr< ConductivityBaseEBBC > & | a_ebBC, | ||
const Real & | a_dx, | ||
const Real & | a_dxCoar, | ||
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 Real & | a_alpha, | ||
const Real & | a_beta, | ||
const RefCountedPtr< LevelData< EBCellFAB > > & | a_acoef0, | ||
const RefCountedPtr< LevelData< EBCellFAB > > & | a_acoef1, | ||
const RefCountedPtr< LevelData< EBCellFAB > > & | a_acoef, | ||
const RefCountedPtr< LevelData< EBFluxFAB > > & | a_bcoef, | ||
const RefCountedPtr< LevelData< BaseIVFAB< Real > > > & | a_bcoIrreg, | ||
const IntVect & | a_ghostCellsPhi, | ||
const IntVect & | a_ghostCellsRHS, | ||
const int & | a_relaxType | ||
) |
Constructs a conductivity operator using the given data. This constructor is for a time-dependent a coefficient and a time-independent b coefficient. 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.
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_acoef0 | Beginning-of-step identity coefficient. |
a_acoef1 | End-of-step identity coefficient. |
a_acoef | Time-interpolated identity coefficient. |
a_bcoef | coefficient of gradient. |
a_ghostCellsPhi | Number of ghost cells in phi, correction |
a_ghostCellsRhs | Number of ghost cells in RHS, residual, lphi |
EBConductivityOp::~EBConductivityOp | ( | ) |
Destructor.
Referenced by dumpLevel().
|
private |
Default constructor. Creates an undefined conductivity operator.
Referenced by dumpLevel().
|
inlineprivate |
References MayDay::Error().
|
inlinevirtual |
for debugging
Reimplemented from AMRLevelOp< LevelData< EBCellFAB > >.
References AMRNorm(), AMROperator(), AMROperatorNC(), AMROperatorNF(), AMRProlong(), AMRResidual(), AMRResidualNC(), AMRResidualNF(), AMRRestrict(), AMRUpdateResidual(), applyOp(), applyOpIrregular(), applyOpNoBoundary(), assign(), axby(), create(), createCoarsened(), createCoarser(), diagonalScale(), divideByIdentityCoef(), dotProduct(), EBConductivityOp(), fillGrad(), finerOperatorChanged(), getDivFStencil(), getFaceCenteredFluxStencil(), getFlux(), getFluxStencil(), getSafety(), gsrbColor(), incr(), incrOpRegularDir(), kappaScale(), norm(), preCond(), prolongIncrement(), reflux(), refToCoarser(), refToFiner(), relax(), relaxGauSai(), relaxGSRBFast(), relaxPoiJac(), resetACoefficient(), residual(), restrictResidual(), scale(), setAlphaAndBeta(), setTime(), setToZero(), setVal(), writeEBLevelname(), and ~EBConductivityOp().
Real EBConductivityOp::getSafety | ( | ) |
Referenced by dumpLevel().
void EBConductivityOp::resetACoefficient | ( | RefCountedPtr< LevelData< EBCellFAB > > & | a_acoef | ) |
This sets the data storage for the a coefficient to a different object. Use this only if you know what you're doing.
a_acoef | The new object that stores the a coefficient. |
Referenced by dumpLevel().
for eb only. kappa weight the rhs but do not multiply by the identity coefficient
Reimplemented from TGAHelmOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
a_residual = a_rhs - L(a_phiFine, a_phi) no coaser AMR level
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
apply AMR operator no coaser AMR level
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
Sets the scaling constants in the Helmholtz equation.
a_alpha | The scaling constant that multiplies the identity term. |
a_beta | The scaling constant that multiplies the derivative term. |
Implements TGAHelmOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
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.
a_rhs | The right hand side of the equation to be scaled. |
a_kappaWeighted | If 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().
Divides the right hand side of the Helmholtz equation by the identity coefficient rho(x) in the equation rho(x) dphi/dt = L(phi).
a_rhs | The right hand side of the equation to be scaled. |
Implements TGAHelmOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
These functions are part of the LevelTGA interface......
Implements LevelTGAHelmOp< LevelData< EBCellFAB >, EBFluxFAB >.
Referenced by dumpLevel().
|
virtual |
Implements LevelTGAHelmOp< LevelData< EBCellFAB >, EBFluxFAB >.
Referenced by dumpLevel().
void EBConductivityOp::getFlux | ( | EBFaceFAB & | a_fluxCentroid, |
const EBCellFAB & | a_phi, | ||
const Box & | a_ghostedBox, | ||
const Box & | a_fabBox, | ||
const ProblemDomain & | a_domain, | ||
const EBISBox & | a_ebisBox, | ||
const Real & | a_dx, | ||
const DataIndex & | a_datInd, | ||
const int & | a_idir | ||
) |
Sets the time-dependent state of the operator. This version of setTime allows one to linearly interpolate coefficients across an integration step, since it accepts arguments that define where in the step it is to be updated. The default implementation calls setTime(a_oldTime + a_mu * a_dt).
a_oldTime | The time at the beginning of the current step. |
a_mu | The fraction of the current step that has elapsed. |
a_dt | The size of the current step. |
Reimplemented from TGAHelmOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
This is called on multigrid operators when their AMR operators are altered.
Reimplemented from MGLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
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 dumpLevel().
|
virtual |
Given the current state of the residual the correction, apply your preconditioner to a_cor.
Implements LinearOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
This function assumes that coarse-fine boundary condtions have been dealt with.
Referenced by dumpLevel().
|
virtual |
virtual function called by LevelTGA
Implements TGAHelmOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
this is the linearop function. CFBC is set to homogeneous. phic is null
Implements LinearOp< LevelData< EBCellFAB > >.
|
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 dumpLevel().
|
virtual |
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
Reimplemented from AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
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 dumpLevel().
|
virtual |
Increment by scaled amount (a_lhs += a_scale*a_x).
Implements LinearOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
Set input to a scaled sum (a_lhs = a_a*a_x + a_b*a_y).
Implements LinearOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
Multiply the input by a given scale (a_lhs *= a_scale).
Implements LinearOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
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 dumpLevel().
|
virtual |
Referenced by dumpLevel().
|
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 dumpLevel().
|
virtual |
Use your relaxtion 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 dumpLevel().
|
virtual |
Referenced by dumpLevel().
|
virtual |
Referenced by dumpLevel().
|
virtual |
Referenced by dumpLevel().
|
virtual |
Calculate restricted residual: a_resCoarse[2h] = I[h->2h] (a_rhsFine[h] - L[h](a_phiFine[h]))
Implements MGLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
Correct the fine solution based on coarse correction: a_phiThisLevel += I[2h->h] (a_correctCoarse)
Implements MGLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
Refinement ratio between this level and coarser level. Returns 1 when there are no coarser AMRLevelOp objects
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
Refinement ratio between this level and coarser level. Returns 1 when there are no coarser AMRLevelOp objects
Referenced by dumpLevel().
|
virtual |
a_residual = a_rhs - L(a_phi, a_phiFine, a_phiCoarse)
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
a_residual = a_rhs - L(a_phi, a_phiCoarse)
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
a_residual = a_rhs - L(a_phi, a_phiFine, a_phiCoarse)
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
a_residual = a_rhs - L(a_phi, a_phiCoarse)
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
a_resCoarse = I[h-2h] (a_residual - L(a_correction, a_coarseCorrection))
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
a_correction += I[2h->h](a_coarseCorrection)
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
|
virtual |
a_residual = a_residual - L(a_correction, a_coarseCorrection)
Implements AMRLevelOp< LevelData< EBCellFAB > >.
Referenced by dumpLevel().
void EBConductivityOp::reflux | ( | LevelData< EBCellFAB > & | a_residual, |
const LevelData< EBCellFAB > & | a_phiFine, | ||
const LevelData< EBCellFAB > & | a_phi, | ||
AMRLevelOp< LevelData< EBCellFAB > > * | a_finerOp | ||
) |
Referenced by dumpLevel().
void EBConductivityOp::gsrbColor | ( | LevelData< EBCellFAB > & | a_phi, |
const LevelData< EBCellFAB > & | a_lph, | ||
const LevelData< EBCellFAB > & | a_rhs, | ||
const IntVect & | a_color | ||
) |
Referenced by dumpLevel().
void EBConductivityOp::getDivFStencil | ( | VoFStencil & | a_vofStencil, |
const VolIndex & | a_vof, | ||
const DataIndex & | a_dit | ||
) |
Referenced by dumpLevel().
void EBConductivityOp::getFluxStencil | ( | VoFStencil & | a_fluxStencil, |
const FaceIndex & | a_face, | ||
const DataIndex & | a_dit | ||
) |
Referenced by dumpLevel().
void EBConductivityOp::getFaceCenteredFluxStencil | ( | VoFStencil & | a_fluxStencil, |
const FaceIndex & | a_face, | ||
const DataIndex & | a_dit | ||
) |
Referenced by dumpLevel().
void EBConductivityOp::incrOpRegularDir | ( | EBCellFAB & | a_lhs, |
const EBCellFAB & | a_phi, | ||
const bool & | a_homogeneous, | ||
const int & | a_dir, | ||
const DataIndex & | a_datInd | ||
) |
Referenced by dumpLevel().
void EBConductivityOp::applyOpIrregular | ( | EBCellFAB & | a_lhs, |
const EBCellFAB & | a_phi, | ||
const bool & | a_homogeneous, | ||
const DataIndex & | a_datInd | ||
) |
Referenced by dumpLevel().
|
inline |
References applyDomainFlux(), GSColorAllIrregular(), incrOpRegularAllDirs(), and m_eblg.
|
protected |
Referenced by getEBLG().
|
protected |
Referenced by getEBLG().
|
protected |
Referenced by getEBLG().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inlineprivate |
References MayDay::Error().
|
staticprotected |
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by getEBLG().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
"Current" (time-interpolated) value of the a coefficient. For a time-independent a coefficient, this is where the coefficient lives.
|
protected |
The a coefficient at the beginning of the time step. This is NULL if the conductivity operator is time independent.
|
protected |
The a coefficient at the end of the time step. This is NULL if the conductivity operator is time independent.
|
protected |
"Current" (time-interpolated) value of the b coefficient. For a time-independent a coefficient, this is where the coefficient lives.
|
protected |
"Current" (time-interpolated) value of the b coefficient on irregular cells.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |