Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

RegHelmholtzOp Class Reference

RegHelmholtz operator class. More...

#include <RegHelmholtzOp.H>

Inheritance diagram for RegHelmholtzOp:

Inheritance graph
[legend]
Collaboration diagram for RegHelmholtzOp:

Collaboration graph
[legend]
List of all members.

Public Methods

 RegHelmholtzOp ()
 ~RegHelmholtzOp ()
RegHelmholtzOp * newOp () const
bool isDefined () const
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)
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)
void define (const RegLevelOp *a_opfinePtr, int a_refToFine)
void setHelmCoeff (Real a_helmcoeff)
void scaleHelmCoeff (Real a_scale)
void setAlpha (Real a_alpha)
void scaleAlpha (Real a_scale)
void scaleBeta (Real a_scale)
void smooth (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
virtual void levelPreconditioner (LevelData< FArrayBox > &a_phihat, const LevelData< FArrayBox > &a_rhshat)
void applyOpI (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phicPtr, LevelData< FArrayBox > &a_LOfPhi)
void applyOpHcfIphys (LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_LOfPhi)
void applyOpIcfHphys (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phicPtr, LevelData< FArrayBox > &a_LOfPhi)
void applyOpH (LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_LOfPhi)
void setBottomSmoother (const GenBaseBottomSmoother< LevelData< FArrayBox > > &a_bottomSmoother)
void bottomSmoother (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
void CFInterp (LevelData< FArrayBox > &a_phif, const LevelData< FArrayBox > &a_phic)
void homogeneousCFInterp (LevelData< FArrayBox > &a_phif)
void homogeneousCFInterp (LevelData< FArrayBox > &a_phif, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
void setDomainGhostBC (const RegDomainGhostBC &a_dombcin)
void getFlux (FArrayBox &a_fineFlux, const FArrayBox &a_data, const DataIndex &a_datInd, int a_dir)

Protected Attributes

RegDomainGhostBC 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
GenBaseBottomSmoother< LevelData<
FArrayBox > > * 
m_bottomSmootherPtr
bool m_isDefined
bool m_isBCDefined
bool m_ihcfiEnabled
bool m_hcoeffDefined
Real m_helmCoeff
Real m_alphaCoeff
LayoutData< RegCFIVSm_loCFIVS [SpaceDim]
LayoutData< RegCFIVSm_hiCFIVS [SpaceDim]

Private Methods

void levelGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
void interpOnIVSHomo (LevelData< FArrayBox > &a_phif, const DataIndex &a_datInd, const int a_idir, const Side::LoHiSide a_hiorlo, const IntVectSet &a_interpIVS)
void clearMemory ()
void setDefaultValues ()

Detailed Description

RegHelmholtz operator class.

operator to solve equation (ie (I+alpha*laplacian)phi = rho)


Constructor & Destructor Documentation

RegHelmholtzOp::RegHelmholtzOp  
 

RegHelmholtzOp::~RegHelmholtzOp  
 


Member Function Documentation

void RegHelmholtzOp::applyOpH LevelData< FArrayBox > &    a_phi,
LevelData< FArrayBox > &    a_LOfPhi
[virtual]
 

Evaluate Operator, homogeneous C/F boundary conditions and phys boundary conditions.

Implements GenAMRLevelMGOp< LevelData< FArrayBox > >.

void RegHelmholtzOp::applyOpHcfIphys LevelData< FArrayBox > &    a_phi,
LevelData< FArrayBox > &    a_LOfPhi
[virtual]
 

Evaluate Operator, homogeneous C/F boundary conditions. inhomogeneous domain boundary conditions

Implements GenAMRLevelMGOp< LevelData< FArrayBox > >.

void RegHelmholtzOp::applyOpI LevelData< FArrayBox > &    a_phi,
const LevelData< FArrayBox > *    a_phicPtr,
LevelData< FArrayBox > &    a_LOfPhi
[virtual]
 

Evaluate Operator, inhomogeneous C/F boundary conditions and phys boundary conditions.

Implements GenAMRLevelMGOp< LevelData< FArrayBox > >.

void RegHelmholtzOp::applyOpIcfHphys LevelData< FArrayBox > &    a_phi,
const LevelData< FArrayBox > *    a_phicPtr,
LevelData< FArrayBox > &    a_LOfPhi
[virtual]
 

Evaluate Operator, inhomogeneous C/F boundary conditions. homogeneous domain boundary conditions.

Implements GenAMRLevelMGOp< LevelData< FArrayBox > >.

void RegHelmholtzOp::bottomSmoother LevelData< FArrayBox > &    a_phi,
const LevelData< FArrayBox > &    a_rhs
 

This does a GSRB Pre/Conditioned BiCGStab on a level for the bottom solver.

void RegHelmholtzOp::CFInterp LevelData< FArrayBox > &    a_phif,
const LevelData< FArrayBox > &    a_phic
[virtual]
 

Coarse / Fine interpolation operator. fills ghost cells of phi.

Implements GenLevelOp< FArrayBox >.

void RegHelmholtzOp::clearMemory   [private]
 

void RegHelmholtzOp::define const RegLevelOp   a_opfinePtr,
int    a_refToFine
[virtual]
 

Full define function. define from finer levelop.

Implements RegLevelOp.

void RegHelmholtzOp::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
[virtual]
 

Full define function. makes all coarse-fine information and sets internal variables

Implements RegLevelOp.

void RegHelmholtzOp::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
[virtual]
 

Full define function. makes all coarse-fine information and sets internal variables

Implements RegLevelOp.

void RegHelmholtzOp::getFlux FArrayBox   a_fineFlux,
const FArrayBox   a_data,
const DataIndex   a_datInd,
int    a_dir
 

get flux( == 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.

void RegHelmholtzOp::homogeneousCFInterp LevelData< FArrayBox > &    a_phif,
const DataIndex   a_datInd,
int    a_idir,
Side::LoHiSide    a_hiorlo
[virtual]
 

does homogeneous coarse/fine interpolation for one grid

Implements GenLevelOp< FArrayBox >.

void RegHelmholtzOp::homogeneousCFInterp LevelData< FArrayBox > &    a_phif [virtual]
 

homogeneous coarse/fine interpolation operator

Implements GenLevelOp< FArrayBox >.

void RegHelmholtzOp::interpOnIVSHomo LevelData< FArrayBox > &    a_phif,
const DataIndex   a_datInd,
const int    a_idir,
const Side::LoHiSide    a_hiorlo,
const IntVectSet   a_interpIVS
[private]
 

bool RegHelmholtzOp::isDefined   const [virtual]
 

Implements RegLevelOp.

void RegHelmholtzOp::levelGSRB LevelData< FArrayBox > &    a_phi,
const LevelData< FArrayBox > &    a_rhs
[private]
 

virtual void RegHelmholtzOp::levelPreconditioner LevelData< FArrayBox > &    a_phihat,
const LevelData< FArrayBox > &    a_rhshat
[virtual]
 

apply preconditioning to the solution on this level. Given rhshat, returns phihat from M(phihat) = rhshat

Implements GenLevelOp< FArrayBox >.

RegHelmholtzOp* RegHelmholtzOp::newOp   const [virtual]
 

virtual constructor workaround coefficient and bcs must be defined before called.

Implements RegLevelOp.

void RegHelmholtzOp::scaleAlpha Real    a_scale
 

Scale the Helmholtz coefficient alpha in (alpha*I + beta*laplacian)phi.

void RegHelmholtzOp::scaleBeta Real    a_scale
 

Scale the Helmholtz coefficient beta in (alpha*I + beta*laplacian)phi

void RegHelmholtzOp::scaleHelmCoeff Real    a_scale
 

Scale the helmholtz coeficcient 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.

void RegHelmholtzOp::setAlpha Real    a_alpha
 

Set Helmholtz coefficient alpha in (alpha*I + beta*laplacian)phi = rho.

void RegHelmholtzOp::setBottomSmoother const GenBaseBottomSmoother< LevelData< FArrayBox > > &    a_bottomSmoother
 

void RegHelmholtzOp::setDefaultValues   [private]
 

void RegHelmholtzOp::setDomainGhostBC const RegDomainGhostBC   a_dombcin
 

void RegHelmholtzOp::setHelmCoeff Real    a_helmcoeff
 

Set helmholtz coefficient beta in (alpha*I + beta*laplacian)phi = rho.

void RegHelmholtzOp::smooth LevelData< FArrayBox > &    a_phi,
const LevelData< FArrayBox > &    a_rhs
 

Smoother. Assumes that problem has already been put in residual correction form, so that C/F boundary conditions are homogeneous.


Member Data Documentation

Real RegHelmholtzOp::m_alphaCoeff [protected]
 

DisjointBoxLayout RegHelmholtzOp::m_baseBA [protected]
 

GenBaseBottomSmoother<LevelData<FArrayBox> >* RegHelmholtzOp::m_bottomSmootherPtr [protected]
 

ProblemDomain RegHelmholtzOp::m_domain [protected]
 

RegDomainGhostBC RegHelmholtzOp::m_domghostbc [protected]
 

Real RegHelmholtzOp::m_dxCrse [protected]
 

Real RegHelmholtzOp::m_dxLevel [protected]
 

Copier RegHelmholtzOp::m_exchangeCopier [protected]
 

DisjointBoxLayout RegHelmholtzOp::m_grids [protected]
 

bool RegHelmholtzOp::m_hcoeffDefined [protected]
 

Real RegHelmholtzOp::m_helmCoeff [protected]
 

LayoutData<RegCFIVS> RegHelmholtzOp::m_hiCFIVS[SpaceDim] [protected]
 

bool RegHelmholtzOp::m_ihcfiEnabled [protected]
 

bool RegHelmholtzOp::m_isBCDefined [protected]
 

bool RegHelmholtzOp::m_isDefined [protected]
 

LayoutData<RegCFIVS> RegHelmholtzOp::m_loCFIVS[SpaceDim] [protected]
 

int RegHelmholtzOp::m_ncomp [protected]
 

QuadCFInterp RegHelmholtzOp::m_quadCFI [protected]
 

int RegHelmholtzOp::m_refRatio [protected]
 


The documentation for this class was generated from the following file:
Generated on Wed Apr 16 14:35:29 2003 for EBChombo by doxygen1.2.16