Chombo + EB + MF
3.2
|
Multifluid poisson operator – computes (alpha + div(Beta Grad)) More...
#include <MFPoissonOp.H>
Classes | |
class | StencilIndex |
class | StencilIndexComparator |
Public Member Functions | |
MFPoissonOp () | |
Default constructor. More... | |
virtual | ~MFPoissonOp () |
destructor More... | |
void | setJump (const Real &gD, const Real &gN) |
set the jump conditions at the multifluid interface More... | |
void | setJump (const RealVect &a_gD, const RealVect &a_gN) |
void | setJump (const Vector< RefCountedPtr< BaseBCValue > > &a_phiValVect, const Vector< RefCountedPtr< BaseBCValue > > &a_flxValVect) |
void | setVal (LevelData< MFCellFAB > &a_phi, const Vector< Real > a_values) const |
EBAMRPoissonOp * | ebOp (int phase) |
Real | totalBoundaryFlux (int a_phase, const LevelData< MFCellFAB > &a_phi, Real a_factor=1.0, bool a_divideByTotalArea=true) |
void | getBoundaryValues (LevelData< MFCellFAB > &a_phi, LevelData< MFCellFAB > &a_dPhi_dN, Real a_invalidVal=1.2345678e90) |
Real | exactBoundaryFlux (int a_phase, RefCountedPtr< BaseBCValue > a_flxVal, RealVect &a_origin, const Real &a_time) |
void | dumpStencilMatrix () |
void | dumpReferenceStencilMatrix () |
ProblemDomain | getDomain () |
void | getFlux (MFFluxFAB &a_flux, const LevelData< MFCellFAB > &a_data, const Box &a_grid, const DataIndex &a_dit, Real a_scale) |
LinearOp functions | |
void | define (const MFIndexSpace &a_mfis, int a_ncomp, const DisjointBoxLayout &a_grids, const DisjointBoxLayout &a_gridsCoarMG, const bool &a_hasMGObjects, const bool &a_layoutChanged, const DisjointBoxLayout &a_gridsFiner, const DisjointBoxLayout &a_gridsCoarser, const RealVect &a_dxLevel, int a_refRatio, int a_refRatioFiner, const ProblemDomain &a_domain, const Vector< RefCountedPtr< BaseDomainBC > > &a_bc, const IntVect &a_ghostPhi, const IntVect &a_ghostRHS, bool hasCoarser, bool hasFiner, const Vector< Real > &a_alpha, const Vector< Real > &a_beta) |
full define function for AMRLevelOp with both coarser and finer levels More... | |
virtual void | setAlphaAndBeta (const Real &a_alpha, const Real &a_beta) |
virtual void | diagonalScale (LevelData< MFCellFAB > &a_rhs) |
(TGA) set diagonal scale of the operator More... | |
virtual void | divideByIdentityCoef (LevelData< MFCellFAB > &a_rhs) |
TGA –no op in this case. More... | |
virtual void | applyOpNoBoundary (LevelData< MFCellFAB > &a_opPhi, const LevelData< MFCellFAB > &a_phi) |
virtual void | setTime (Real a_time) |
virtual void | residual (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_rhs, bool a_homogeneous=false) |
virtual void | preCond (LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_residual) |
Apply the preconditioner. More... | |
virtual void | applyOp (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_phi, DataIterator &a_dit, bool a_homogeneous=false) |
virtual void | applyOp (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_phi, bool a_homogeneous=false) |
virtual void | create (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs) |
create a clone of this MFPoissonOp More... | |
virtual void | createCoarsened (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs, const int &a_refRat) |
virtual void | assign (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs) |
virtual Real | dotProduct (const LevelData< MFCellFAB > &a_1, const LevelData< MFCellFAB > &a_2) |
virtual void | incr (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_x, Real a_scale) |
virtual void | axby (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_x, const LevelData< MFCellFAB > &a_y, Real a, Real b) |
virtual void | scale (LevelData< MFCellFAB > &a_lhs, const Real &a_scale) |
virtual Real | norm (const LevelData< MFCellFAB > &a_x, int a_ord) |
virtual void | setToZero (LevelData< MFCellFAB > &a_x) |
MGLevelOp functions | |
virtual void | relax (LevelData< MFCellFAB > &a_e, const LevelData< MFCellFAB > &a_residual, int iterations) |
virtual void | createCoarser (LevelData< MFCellFAB > &a_coarse, const LevelData< MFCellFAB > &a_fine, bool ghosted) |
virtual void | restrictResidual (LevelData< MFCellFAB > &a_resCoarse, LevelData< MFCellFAB > &a_phiFine, const LevelData< MFCellFAB > &a_rhsFine) |
virtual void | prolongIncrement (LevelData< MFCellFAB > &a_phiThisLevel, const LevelData< MFCellFAB > &a_correctCoarse) |
AMRLevelOp functions | |
virtual int | refToCoarser () |
virtual void | AMRResidual (LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_phiFine, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_phiCoarse, const LevelData< MFCellFAB > &a_rhs, bool a_homogeneousBC, AMRLevelOp< LevelData< MFCellFAB > > *a_finerOp) |
virtual void | AMRResidualNC (LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_phiFine, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_rhs, bool a_homogeneousBC, AMRLevelOp< LevelData< MFCellFAB > > *a_finerOp) |
virtual void | AMRResidualNF (LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_phiCoarse, const LevelData< MFCellFAB > &a_rhs, bool a_homogeneousBC) |
virtual void | AMROperator (LevelData< MFCellFAB > &a_LofPhi, const LevelData< MFCellFAB > &a_phiFine, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_phiCoarse, bool a_homogeneousBC, AMRLevelOp< LevelData< MFCellFAB > > *a_finerOp) |
virtual void | AMROperatorNC (LevelData< MFCellFAB > &a_LofPhi, const LevelData< MFCellFAB > &a_phiFine, const LevelData< MFCellFAB > &a_phi, bool a_homogeneousBC, AMRLevelOp< LevelData< MFCellFAB > > *a_finerOp) |
virtual void | AMROperatorNF (LevelData< MFCellFAB > &a_LofPhi, const LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_phiCoarse, bool a_homogeneousBC) |
virtual void | AMRRestrict (LevelData< MFCellFAB > &a_resCoarse, const LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_coarseCorrection, bool a_skip_res) |
virtual void | AMRProlong (LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_coarseCorrection) |
virtual void | AMRUpdateResidual (LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_coarseCorrection) |
virtual Real | AMRNorm (const LevelData< MFCellFAB > &a_coarseResid, const LevelData< MFCellFAB > &a_fineResid, const int &a_refRat, const int &a_ord) |
Public Member Functions inherited from TGAHelmOp< LevelData< MFCellFAB > > | |
TGAHelmOp () | |
TGAHelmOp (bool a_isTimeDependent) | |
virtual | ~TGAHelmOp () |
Destructor. More... | |
virtual void | diagonalScale (LevelData< MFCellFAB > &a_rhs, bool a_kappaWeighted) |
virtual void | kappaScale (LevelData< MFCellFAB > &a_rhs) |
for eb only. kappa weight the rhs but do not multiply by the identity coefficient More... | |
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< MFCellFAB > & | identityCoef () |
Allows access to the identity coefficient data for the operator. More... | |
Public Member Functions inherited from AMRLevelOp< LevelData< MFCellFAB > > | |
virtual void | dumpAMR (Vector< LevelData< MFCellFAB > * > &a_data, string name) |
virtual void | dumpLevel (LevelData< MFCellFAB > &a_data, string name) |
AMRLevelOp () | |
Constructor. More... | |
virtual void | dumpStuff (Vector< LevelData< MFCellFAB > * > data, string filename) |
virtual | ~AMRLevelOp () |
Destructor. More... | |
virtual void | outputLevel (LevelData< MFCellFAB > &a_rhs, string &a_name) |
virtual void | outputAMR (Vector< LevelData< MFCellFAB > * > &a_rhs, string &a_name) |
virtual void | buildCopier (Copier &a_copier, const LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs) |
virtual void | assignCopier (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs, const Copier &a_copier) |
virtual void | zeroCovered (LevelData< MFCellFAB > &a_lhs, LevelData< MFCellFAB > &a_rhs, const Copier &a_copier) |
virtual Real | localMaxNorm (const LevelData< MFCellFAB > &a_phi) |
virtual void | AMRProlongS (LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_coarseCorrection, LevelData< MFCellFAB > &a_temp, const Copier &a_copier) |
virtual void | AMRProlongS_2 (LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_coarseCorrection, LevelData< MFCellFAB > &a_temp, const Copier &a_copier, const Copier &a_cornerCopier, const AMRLevelOp< LevelData< FArrayBox > > *a_crsOp) |
virtual void | AMRRestrictS (LevelData< MFCellFAB > &a_resCoarse, const LevelData< MFCellFAB > &a_residual, const LevelData< MFCellFAB > &a_correction, const LevelData< MFCellFAB > &a_coarseCorrection, LevelData< MFCellFAB > &scratch, bool a_skip_res=false) |
virtual unsigned int | orderOfAccuracy (void) const |
virtual void | enforceCFConsistency (LevelData< MFCellFAB > &a_coarseCorrection, const LevelData< MFCellFAB > &a_correction) |
This routine is for operators with orderOfAccuracy()>2. More... | |
Public Member Functions inherited from MGLevelOp< LevelData< MFCellFAB > > | |
MGLevelOp () | |
Constructor. More... | |
virtual | ~MGLevelOp () |
Destructor. More... | |
virtual void | relaxNF (LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > *a_phiCoarse, const LevelData< MFCellFAB > &a_rhs, int a_iterations) |
specialized no-fine relax function, useful for full-multigrid schemes, defaults to regular relax More... | |
virtual void | restrictResidual (LevelData< MFCellFAB > &a_resCoarse, LevelData< MFCellFAB > &a_phiFine, const LevelData< MFCellFAB > *a_phiCoarse, const LevelData< MFCellFAB > &a_rhsFine, bool homogeneous) |
full-multigrid version of restrictResidual, useful for FAS-type schemes. Defaults to standard restriction More... | |
virtual void | restrictR (LevelData< MFCellFAB > &a_phiCoarse, const LevelData< MFCellFAB > &a_phiFine) |
simple restriction function More... | |
void | addObserver (MGLevelOpObserver< LevelData< MFCellFAB > > *a_observer) |
virtual void | applyOpMg (LevelData< MFCellFAB > &a_lhs, LevelData< MFCellFAB > &a_phi, LevelData< MFCellFAB > *a_phiCoarse, bool a_homogeneous) |
Apply an operator. More... | |
virtual void | residualNF (LevelData< MFCellFAB > &a_lhs, LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > *a_phiCoarse, const LevelData< MFCellFAB > &a_rhs, bool a_homogeneous=false) |
void | removeObserver (MGLevelOpObserver< LevelData< MFCellFAB > > *a_observer) |
void | addCoarserObserver (MGLevelOp< LevelData< MFCellFAB > > *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< MFCellFAB > > &a_operator, int a_coarseningFactor) |
int | numObservers () const |
Returns the number of objects observing this operator. More... | |
Public Member Functions inherited from LinearOp< LevelData< MFCellFAB > > | |
virtual | ~LinearOp () |
virtual void | clear (LevelData< MFCellFAB > &a_lhs) |
virtual void | assignLocal (LevelData< MFCellFAB > &a_lhs, const LevelData< MFCellFAB > &a_rhs) |
virtual void | mDotProduct (const LevelData< MFCellFAB > &a_1, const int a_sz, const LevelData< MFCellFAB > a_2[], Real a_mdots[]) |
virtual Real | dx () const |
virtual void | write (const LevelData< MFCellFAB > *a, const char *filename) |
Public Member Functions inherited from MGLevelOpObserver< LevelData< MFCellFAB > > | |
MGLevelOpObserver () | |
Base level Constructor. Called by all subclasses. More... | |
virtual | ~MGLevelOpObserver () |
Destructor. More... | |
virtual void | operatorChanged (const MGLevelOp< LevelData< MFCellFAB > > &a_operator) |
void | setObservee (MGLevelOp< LevelData< MFCellFAB > > *a_observee) |
void | clearObservee () |
Public Attributes | |
int | m_relax |
Vector< IntVect > | m_colors |
Protected Member Functions | |
void | computeBoundaryN (const LevelData< MFCellFAB > &a_phi, bool a_homogeneous) |
void | levelJacobi (LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_rhs) |
void | levelGSRB (LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_rhs) |
void | levelMulticolorGS (LevelData< MFCellFAB > &a_phi, const LevelData< MFCellFAB > &a_rhs) |
Real | kappaNorm (Real &a_volume, const LevelData< MFCellFAB > &a_data, int a_p) const |
Protected Attributes | |
Vector< Real > | m_beta |
Vector< Real > | m_bCoef |
Vector< Real > | m_alpha |
Vector< Real > | m_aCoef |
RealVect | m_dx |
RealVect | m_dxCrse |
ProblemDomain | m_domain |
Vector< EBAMRPoissonOp * > | m_ebops |
Vector< LevelData< EBCellFAB > *> | m_alias |
LevelDataOps< MFCellFAB > | m_ops |
LevelData< MFCellFAB > | m_tmp |
LevelData< MFCellFAB > | m_weights |
LevelData< BaseIVFAB< Real > > | m_boundaryD [2] |
LevelData< BaseIVFAB< Real > > | m_boundaryN [2] |
InterfaceJump | m_jump |
int | m_refToCoarser |
int | m_refToFiner |
int | m_phases |
int | m_ncomp |
IntVect | m_ghostPhi |
IntVect | m_ghostRHS |
Multifluid poisson operator – computes (alpha + div(Beta Grad))
|
inline |
Default constructor.
References define(), diagonalScale(), setAlphaAndBeta(), and ~MFPoissonOp().
|
virtual |
destructor
Referenced by MFPoissonOp().
void MFPoissonOp::define | ( | const MFIndexSpace & | a_mfis, |
int | a_ncomp, | ||
const DisjointBoxLayout & | a_grids, | ||
const DisjointBoxLayout & | a_gridsCoarMG, | ||
const bool & | a_hasMGObjects, | ||
const bool & | a_layoutChanged, | ||
const DisjointBoxLayout & | a_gridsFiner, | ||
const DisjointBoxLayout & | a_gridsCoarser, | ||
const RealVect & | a_dxLevel, | ||
int | a_refRatio, | ||
int | a_refRatioFiner, | ||
const ProblemDomain & | a_domain, | ||
const Vector< RefCountedPtr< BaseDomainBC > > & | a_bc, | ||
const IntVect & | a_ghostPhi, | ||
const IntVect & | a_ghostRHS, | ||
bool | hasCoarser, | ||
bool | hasFiner, | ||
const Vector< Real > & | a_alpha, | ||
const Vector< Real > & | a_beta | ||
) |
full define function for AMRLevelOp with both coarser and finer levels
Referenced by MFPoissonOp().
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< MFCellFAB > >.
Referenced by MFPoissonOp().
(TGA) set diagonal scale of the operator
Reimplemented from TGAHelmOp< LevelData< MFCellFAB > >.
Referenced by MFPoissonOp().
TGA –no op in this case.
Implements TGAHelmOp< LevelData< MFCellFAB > >.
References applyOp(), applyOpNoBoundary(), assign(), axby(), create(), createCoarsened(), createCoarser(), dotProduct(), incr(), norm(), preCond(), prolongIncrement(), relax(), residual(), restrictResidual(), scale(), setTime(), and setToZero().
|
virtual |
(TGA) apply operator without any boundary or coarse-fine boundary conditions and no finer level
Implements TGAHelmOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
virtual |
Sets the time-dependent state of the operator. The default implementation does nothing and is appropriate for time-independent operators.
a_time | The time to be used to update the time-dependent operator. |
Reimplemented from TGAHelmOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
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< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
virtual |
Apply the preconditioner.
Implements LinearOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
virtual |
Referenced by divideByIdentityCoef().
|
virtual |
In the context of solving L(phi) = rhs, set a_lhs = L(a_phi). If a_homogeneous is true, evaluate the operator using homogeneous boundary conditions.
Implements LinearOp< LevelData< MFCellFAB > >.
|
virtual |
create a clone of this MFPoissonOp
Implements LinearOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
virtual |
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
virtual |
Set a_lhs equal to a_rhs.
Implements LinearOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
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< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
virtual |
Increment by scaled amount (a_lhs += a_scale*a_x).
Implements LinearOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
virtual |
Set input to a scaled sum (a_lhs = a_a*a_x + a_b*a_y).
Implements LinearOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
Multiply the input by a given scale (a_lhs *= a_scale).
Implements LinearOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
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< MFCellFAB > >.
Referenced by divideByIdentityCoef().
Set a_lhs to zero.
Implements LinearOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
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< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
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< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
virtual |
calculate restricted residual a_resCoarse[2h] = I[h->2h] (rhsFine[h] - L[h](phiFine[h])
Implements MGLevelOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
virtual |
correct the fine solution based on coarse correction a_phiThisLevel += I[2h->h](a_correctCoarse)
Implements MGLevelOp< LevelData< MFCellFAB > >.
Referenced by divideByIdentityCoef().
|
inlinevirtual |
returns 1 when there are no coarser AMRLevelOp objects
Implements AMRLevelOp< LevelData< MFCellFAB > >.
References AMRNorm(), AMROperator(), AMROperatorNC(), AMROperatorNF(), AMRProlong(), AMRResidual(), AMRResidualNC(), AMRResidualNF(), AMRRestrict(), AMRUpdateResidual(), m_refToCoarser, setJump(), and setVal().
|
virtual |
a_residual = a_rhs - L(a_phi, a_phiFine, a_phiCoarse)
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
|
virtual |
residual assuming no more coarser AMR levels
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
|
virtual |
a_residual = a_rhs - L(a_phi, a_phiCoarse)
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
|
virtual |
apply AMR operator, including coarse-fine matching conditions
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
|
virtual |
AMR operator assuming no more coarser AMR levels
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
|
virtual |
AMR operator assuming no finer level
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
|
virtual |
a_resCoarse = I[h-2h]( a_residual - L(a_correction, a_coarseCorrection)) it is assumed that a_resCoarse has already been filled in with the coarse version of AMRResidualNF and that this operation is free to overwrite in the overlap regions.
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
|
virtual |
a_correction += I[h->h](a_coarseCorrection)
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
|
virtual |
a_residual = a_residual - L(a_correction, a_coarseCorrection)
Implements AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
|
virtual |
compute norm over all cells on coarse not covered by finer
Reimplemented from AMRLevelOp< LevelData< MFCellFAB > >.
Referenced by refToCoarser().
set the jump conditions at the multifluid interface
Referenced by refToCoarser().
void MFPoissonOp::setJump | ( | const Vector< RefCountedPtr< BaseBCValue > > & | a_phiValVect, |
const Vector< RefCountedPtr< BaseBCValue > > & | a_flxValVect | ||
) |
version where we want to specify the interface jumps through analytic function
Referenced by refToCoarser().
|
inline |
References exactBoundaryFlux(), getBoundaryValues(), m_ebops, and totalBoundaryFlux().
Real MFPoissonOp::totalBoundaryFlux | ( | int | a_phase, |
const LevelData< MFCellFAB > & | a_phi, | ||
Real | a_factor = 1.0 , |
||
bool | a_divideByTotalArea = true |
||
) |
return total flux across all irregular faces in a_phase
Referenced by ebOp().
void MFPoissonOp::getBoundaryValues | ( | LevelData< MFCellFAB > & | a_phi, |
LevelData< MFCellFAB > & | a_dPhi_dN, | ||
Real | a_invalidVal = 1.2345678e90 |
||
) |
Referenced by ebOp().
Real MFPoissonOp::exactBoundaryFlux | ( | int | a_phase, |
RefCountedPtr< BaseBCValue > | a_flxVal, | ||
RealVect & | a_origin, | ||
const Real & | a_time | ||
) |
Referenced by ebOp().
void MFPoissonOp::dumpStencilMatrix | ( | ) |
Referenced by MFPoissonOp::StencilIndexComparator::operator()().
void MFPoissonOp::dumpReferenceStencilMatrix | ( | ) |
Referenced by MFPoissonOp::StencilIndexComparator::operator()().
|
inline |
void MFPoissonOp::getFlux | ( | MFFluxFAB & | a_flux, |
const LevelData< MFCellFAB > & | a_data, | ||
const Box & | a_grid, | ||
const DataIndex & | a_dit, | ||
Real | a_scale | ||
) |
return fluxes at cell boundaries. at present only does regular faces.
Referenced by getDomain().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
int MFPoissonOp::m_relax |
|
protected |
|
protected |
|
protected |
Referenced by getDomain().
|
protected |
Referenced by ebOp().
|
protected |
|
protected |
|
protected |
Referenced by refToCoarser().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |