#include <HelmholtzOp.H>
Inheritance diagram for HelmholtzOp:
Public Member Functions | |
void | setHelmCoeff (Real a_helmcoeff) |
Set helmholtz coefficient beta in (alpha*I +beta*laplacian)phi = rho. | |
void | scaleHelmCoeff (Real a_scale) |
Scale the helmholtz coefficient beta in (alpha*I + beta*laplacian)phi. | |
void | setAlpha (Real a_alpha) |
Set helmholtz coefficient alpha in (alpha*I +beta*laplacian)phi = rho. | |
void | scaleAlpha (Real a_scale) |
Function to scale the coefficient alpha. | |
void | scaleBeta (Real a_scale) |
Scale the helmholtz coefficient beta in (alpha*I + beta*laplacian)phi. | |
LevelOp * | new_levelop () const |
Virtual constructor workaround. | |
void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseBAPtr, Real a_dxLevel, int a_refRatio, const Box &a_domain, bool a_homogeneousOnly=false, int a_ncomp=1) |
Full define function (Deprecated -- use ProblemDomain). | |
void | define (const DisjointBoxLayout &a_grids, const DisjointBoxLayout *a_baseBAPtr, Real a_dxLevel, int a_refRatio, const ProblemDomain &a_domain, bool a_homogeneousOnly=false, int a_ncomp=1) |
Full define function. | |
void | define (const LevelOp *a_opfine, int a_refToFine) |
Define from finer levelop. | |
HelmholtzOp () | |
Default constructor. | |
~HelmholtzOp () | |
Destructor. | |
void | smooth (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs) |
Smoother. | |
virtual void | levelPreconditioner (LevelData< FArrayBox > &a_phihat, const LevelData< FArrayBox > &a_rhshat) |
Apply preconditioning to the solution on this level. | |
void | applyOpI (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > *phiCoarse, LevelData< FArrayBox > &LOfPhi) |
Evaluate Operator with inhomogeneous BCs. | |
void | applyOpIcfHphys (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > *phiCoarse, LevelData< FArrayBox > &LOfPhi) |
Evaluate operator. | |
void | applyOpH (LevelData< FArrayBox > &phi, LevelData< FArrayBox > &LOfPhi) |
Evaluate operator with homogeneous boundary conditions. | |
void | applyOpHcfIphys (LevelData< FArrayBox > &phi, LevelData< FArrayBox > &LOfPhi) |
Evaluate Operator. | |
void | CFInterp (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > &phiCoarse) |
Coarse / Fine interpolation operator. fills ghost cells of phi. | |
void | homogeneousCFInterp (LevelData< FArrayBox > &phi) |
homogeneous coarse/fine interpolation operator | |
void | setDomainGhostBC (const DomainGhostBC &a_dombcin) |
Sets the physical boundary conditions for the operator. | |
void | setBottomSmoother (const BaseBottomSmoother &a_bottomSmoother) |
Sets the bottom smoother which will be used. | |
void | homogeneousCFInterp (LevelData< FArrayBox > &phif, const DataIndex &a_datIndex, int idir, Side::LoHiSide hiorlo) |
does homogeneous coarse/fine interpolation | |
void | bottomSmoother (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > &rhs) |
This sends the problem to the bottom smoother. | |
bool | isDefined () const |
Has full define function been called? | |
void | getFlux (FArrayBox &flux, const FArrayBox &data, const DataIndex &a_datInd, int dir) |
Fills flux with the flux at this level. | |
virtual void | setConvergenceMetric (Real a_metric, int a_comp) |
pass-through to bottom smoother | |
Protected Attributes | |
DomainGhostBC | m_domghostbc |
ProblemDomain | m_domain |
DisjointBoxLayout | m_grids |
Copier | m_exchangeCopier |
DisjointBoxLayout | m_baseBA |
int | m_refRatio |
Real | m_dxLevel |
Real | m_dxCrse |
int | m_ncomp |
QuadCFInterp | m_quadCFI |
BaseBottomSmoother * | m_bottomSmootherPtr |
bool | m_isDefined |
bool | m_isBCDefined |
bool | m_ihcfiEnabled |
bool | m_hcoeffDefined |
LayoutData< CFIVS > | m_loCFIVS [SpaceDim] |
LayoutData< CFIVS > | m_hiCFIVS [SpaceDim] |
Real | m_helmCoeff |
Real | m_alphaCoeff |
Operator to solve Helmholtz equation (ie (alpha*I+beta*laplacian)phi = rho)
|
Default constructor.
|
|
Destructor.
|
|
Evaluate operator with homogeneous boundary conditions. Uses homogeneous form of both C/F boundary conditions and phys boundary conditions. Implements LevelOp. |
|
Evaluate Operator. Uses homogeneous C/F boundary conditions. inhomogeneous domain boundary conditions Implements LevelOp. |
|
Evaluate Operator with inhomogeneous BCs. Uses inhomogeneous form of both C/F boundary conditions and phys boundary conditions. Implements LevelOp. |
|
Evaluate operator. Uses inhomogeneous C/F boundary conditions. homogeneous domain boundary conditions. Implements LevelOp. |
|
This sends the problem to the bottom smoother.
Implements LevelOp. |
|
Coarse / Fine interpolation operator. fills ghost cells of phi.
Implements LevelOp. |
|
Define from finer levelop.
Implements LevelOp. |
|
Full define function. Makes all coarse-fine information and sets internal variables
Implements LevelOp. |
|
Full define function (Deprecated -- use ProblemDomain). Makes all coarse-fine information and sets internal variables Implements LevelOp. |
|
Fills flux with the flux at this level. The fluxes live on the cell faces with direction dir. Fluxes are computed for all interior edges of data. The flux fab is resized inside the routine. Implements LevelOp. |
|
does homogeneous coarse/fine interpolation
|
|
homogeneous coarse/fine interpolation operator
Implements LevelOp. |
|
Has full define function been called?
Implements LevelOp. |
|
Apply preconditioning to the solution on this level. Given rhshat, returns phihat from M(phihat) = rhshat Implements LevelOp. |
|
Virtual constructor workaround. Coefficient and bcs must be defined before called. Implements LevelOp. |
|
Function to scale the coefficient alpha. Scale the helmholtz coefficient alpha in (alpha*I + beta*laplacian)phi. Implements BaseHelmholtzOp. |
|
Scale the helmholtz coefficient beta in (alpha*I + beta*laplacian)phi.
Implements BaseHelmholtzOp. |
|
Scale the helmholtz coefficient beta in (alpha*I + beta*laplacian)phi. beta := a_scale*beta. This function exists for backward compatibility with the old helmholtzOp. in reality, this just calls scaleBeta |
|
Set helmholtz coefficient alpha in (alpha*I +beta*laplacian)phi = rho.
|
|
Sets the bottom smoother which will be used. Default is BiCGStabSmoother |
|
pass-through to bottom smoother
Implements LevelOp. |
|
Sets the physical boundary conditions for the operator.
Implements BaseHelmholtzOp. |
|
Set helmholtz coefficient beta in (alpha*I +beta*laplacian)phi = rho.
|
|
Smoother. Assumes that problem has already been put in residual correction form, so that C/F boundary conditions are homogeneous. Implements LevelOp. |
|
The alpha in (alpha*I +beta*laplacian)phi = rho |
|
DisjointBoxLayout for next coarser level this is == NULL if there is no coarser level |
|
Bottom smoother object |
|
Domain of fine grid |
|
Boundary conditons |
|
Mesh spacing at the next coarser level |
|
Mesh spacing at this level |
|
Copier object that knows how to perform exchange operations on LevelData objects defined on m_grids |
|
The grids at the current level |
|
Is the helmholtz coefficient defined? |
|
The beta in (alpha*I+beta*laplacian)phi = rho |
|
Intvectset for coarse-fine interpolation |
|
Is inhomogeneous CF interpolation possible? |
|
Has the boundary condition been set? |
|
Has full define function been called? |
|
Intvectset for coarse-fine interpolation |
|
Number of components |
|
Coarse-fine information between this level and the next coarser level |
|
Refinement ratio between this and the next coarser level |