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

HelmholtzOp Class Reference

Helmholtz operator class. More...

#include <HelmholtzOp.H>

Inheritance diagram for HelmholtzOp:

Inheritance graph
[legend]
Collaboration diagram for HelmholtzOp:

Collaboration graph
[legend]
List of all members.

Public Methods

void setHelmCoeff (Real helmcoeff_a)
void scaleHelmCoeff (Real a_scale)
void setAlpha (Real a_alpha)
void scaleAlpha (Real a_scale)
 Function to scale the coefficient alpha.

void scaleBeta (Real a_scale)
LevelOpnew_levelop () const
void define (const DisjointBoxLayout &Ba, const DisjointBoxLayout *base_ba, Real DxLevel, int refratio, const Box &domf, bool a_homogeneousOnly=false, int a_ncomp=1)
void define (const DisjointBoxLayout &Ba, const DisjointBoxLayout *base_ba, Real DxLevel, int refratio, const ProblemDomain &domf, bool a_homogeneousOnly=false, int a_ncomp=1)
void define (const LevelOp *opfine, int refratio)
 HelmholtzOp ()
 ~HelmholtzOp ()
void smooth (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > &rhs)
virtual void levelPreconditioner (LevelData< FArrayBox > &a_phihat, const LevelData< FArrayBox > &a_rhshat)
void applyOpI (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > *phiCoarse, LevelData< FArrayBox > &LOfPhi)
void applyOpIcfHphys (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > *phiCoarse, LevelData< FArrayBox > &LOfPhi)
void applyOpH (LevelData< FArrayBox > &phi, LevelData< FArrayBox > &LOfPhi)
void applyOpHcfIphys (LevelData< FArrayBox > &phi, LevelData< FArrayBox > &LOfPhi)
void CFInterp (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > &phiCoarse)
void homogeneousCFInterp (LevelData< FArrayBox > &phi)
void setDomainGhostBC (const DomainGhostBC &a_dombcin)
void setBottomSmoother (const BaseBottomSmoother &a_bottomSmoother)
void homogeneousCFInterp (LevelData< FArrayBox > &phif, const DataIndex &a_datIndex, int idir, Side::LoHiSide hiorlo)
void bottomSmoother (LevelData< FArrayBox > &phi, const LevelData< FArrayBox > &rhs)
bool isDefined () const
void getFlux (FArrayBox &flux, const FArrayBox &data, const DataIndex &a_datInd, int dir)

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
BaseBottomSmootherm_bottom_smoother_ptr
bool m_isDefined
bool m_isBCDefined
bool m_ihcfiEnabled
bool m_hcoeffDefined
LayoutData< CFIVSm_loCFIVS [SpaceDim]
LayoutData< CFIVSm_hiCFIVS [SpaceDim]
Real m_helmCoeff
Real m_alphaCoeff

Private Methods

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

Detailed Description

Helmholtz operator class.

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


Constructor & Destructor Documentation

HelmholtzOp::HelmholtzOp  
 

HelmholtzOp::~HelmholtzOp  
 


Member Function Documentation

void HelmholtzOp::applyOpH LevelData< FArrayBox > &    phi,
LevelData< FArrayBox > &    LOfPhi
[virtual]
 

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

Implements LevelOp.

void HelmholtzOp::applyOpHcfIphys LevelData< FArrayBox > &    phi,
LevelData< FArrayBox > &    LOfPhi
[virtual]
 

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

Implements LevelOp.

void HelmholtzOp::applyOpI LevelData< FArrayBox > &    phi,
const LevelData< FArrayBox > *    phiCoarse,
LevelData< FArrayBox > &    LOfPhi
[virtual]
 

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

Implements LevelOp.

void HelmholtzOp::applyOpIcfHphys LevelData< FArrayBox > &    phi,
const LevelData< FArrayBox > *    phiCoarse,
LevelData< FArrayBox > &    LOfPhi
[virtual]
 

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

Implements LevelOp.

void HelmholtzOp::bottomSmoother LevelData< FArrayBox > &    phi,
const LevelData< FArrayBox > &    rhs
[virtual]
 

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

Implements LevelOp.

void HelmholtzOp::CFInterp LevelData< FArrayBox > &    phi,
const LevelData< FArrayBox > &    phiCoarse
[virtual]
 

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

Implements LevelOp.

void HelmholtzOp::clearMemory   [private]
 

void HelmholtzOp::define const LevelOp   opfine,
int    refratio
[virtual]
 

Full define function. define from finer levelop.

Implements LevelOp.

void HelmholtzOp::define const DisjointBoxLayout   Ba,
const DisjointBoxLayout   base_ba,
Real    DxLevel,
int    refratio,
const ProblemDomain   domf,
bool    a_homogeneousOnly = false,
int    a_ncomp = 1
[virtual]
 

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

Implements LevelOp.

void HelmholtzOp::define const DisjointBoxLayout   Ba,
const DisjointBoxLayout   base_ba,
Real    DxLevel,
int    refratio,
const Box   domf,
bool    a_homogeneousOnly = false,
int    a_ncomp = 1
[virtual]
 

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

Implements LevelOp.

void HelmholtzOp::getFlux FArrayBox   flux,
const FArrayBox   data,
const DataIndex   a_datInd,
int    dir
[virtual]
 

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.

Implements LevelOp.

void HelmholtzOp::homogeneousCFInterp LevelData< FArrayBox > &    phif,
const DataIndex   a_datIndex,
int    idir,
Side::LoHiSide    hiorlo
 

does homogeneous coarse/fine interpolation

void HelmholtzOp::homogeneousCFInterp LevelData< FArrayBox > &    phi [virtual]
 

homogeneous coarse/fine interpolation operator

Implements LevelOp.

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

bool HelmholtzOp::isDefined   const [virtual]
 

Implements LevelOp.

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

virtual void HelmholtzOp::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 LevelOp.

LevelOp* HelmholtzOp::new_levelop   const [virtual]
 

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

Implements LevelOp.

void HelmholtzOp::scaleAlpha Real    a_scale [virtual]
 

Function to scale the coefficient alpha.

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

Implements BaseHelmholtzOp.

void HelmholtzOp::scaleBeta Real    a_scale [virtual]
 

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

Implements BaseHelmholtzOp.

void HelmholtzOp::scaleHelmCoeff Real    a_scale
 

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

void HelmholtzOp::setAlpha Real    a_alpha
 

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

void HelmholtzOp::setBottomSmoother const BaseBottomSmoother   a_bottomSmoother
 

void HelmholtzOp::setDefaultValues   [private]
 

void HelmholtzOp::setDomainGhostBC const DomainGhostBC   a_dombcin [virtual]
 

set (or reset) the physical boundary conditions

Implements BaseHelmholtzOp.

void HelmholtzOp::setHelmCoeff Real    helmcoeff_a
 

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

void HelmholtzOp::smooth LevelData< FArrayBox > &    phi,
const LevelData< FArrayBox > &    rhs
[virtual]
 

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

Implements LevelOp.


Member Data Documentation

Real HelmholtzOp::m_alphaCoeff [protected]
 

DisjointBoxLayout HelmholtzOp::m_baseBA [protected]
 

BaseBottomSmoother* HelmholtzOp::m_bottom_smoother_ptr [protected]
 

ProblemDomain HelmholtzOp::m_domain [protected]
 

DomainGhostBC HelmholtzOp::m_domghostbc [protected]
 

Real HelmholtzOp::m_dxCrse [protected]
 

Real HelmholtzOp::m_dxLevel [protected]
 

Copier HelmholtzOp::m_exchangeCopier [protected]
 

DisjointBoxLayout HelmholtzOp::m_grids [protected]
 

bool HelmholtzOp::m_hcoeffDefined [protected]
 

Real HelmholtzOp::m_helmCoeff [protected]
 

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

bool HelmholtzOp::m_ihcfiEnabled [protected]
 

bool HelmholtzOp::m_isBCDefined [protected]
 

bool HelmholtzOp::m_isDefined [protected]
 

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

int HelmholtzOp::m_ncomp [protected]
 

QuadCFInterp HelmholtzOp::m_quadCFI [protected]
 

int HelmholtzOp::m_refRatio [protected]
 


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