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

RegPoissonOp Class Reference

one-sided differencing version of poisson operator More...

#include <RegPoissonOp.H>

Inheritance diagram for RegPoissonOp:

Inheritance graph
[legend]
Collaboration diagram for RegPoissonOp:

Collaboration graph
[legend]
List of all members.

Public Methods

 RegPoissonOp ()
 ~RegPoissonOp ()
virtual RegPoissonOp * newOp () const
virtual 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 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
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

one-sided differencing version of poisson operator

this class contains stuff to solve div (grad phi) = rhs


Constructor & Destructor Documentation

RegPoissonOp::RegPoissonOp  
 

RegPoissonOp::~RegPoissonOp  
 


Member Function Documentation

void RegPoissonOp::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 RegPoissonOp::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 RegPoissonOp::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 RegPoissonOp::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 RegPoissonOp::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 RegPoissonOp::CFInterp LevelData< FArrayBox > &    a_phif,
const LevelData< FArrayBox > &    a_phic
[virtual]
 

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

Implements GenLevelOp< FArrayBox >.

void RegPoissonOp::clearMemory   [private]
 

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

Full define function. define from finer levelop.

Implements RegLevelOp.

void RegPoissonOp::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 RegPoissonOp::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 RegPoissonOp::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 RegPoissonOp::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 RegPoissonOp::homogeneousCFInterp LevelData< FArrayBox > &    a_phif [virtual]
 

homogeneous coarse/fine interpolation operator

Implements GenLevelOp< FArrayBox >.

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

virtual bool RegPoissonOp::isDefined   const [virtual]
 

Implements RegLevelOp.

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

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

virtual RegPoissonOp* RegPoissonOp::newOp   const [virtual]
 

virtual constructor workaround

Implements RegLevelOp.

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

void RegPoissonOp::setDefaultValues   [private]
 

void RegPoissonOp::setDomainGhostBC const RegDomainGhostBC   a_dombcin
 

void RegPoissonOp::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

DisjointBoxLayout RegPoissonOp::m_baseBA [protected]
 

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

ProblemDomain RegPoissonOp::m_domain [protected]
 

RegDomainGhostBC RegPoissonOp::m_domghostbc [protected]
 

Real RegPoissonOp::m_dxCrse [protected]
 

Real RegPoissonOp::m_dxLevel [protected]
 

Copier RegPoissonOp::m_exchangeCopier [protected]
 

DisjointBoxLayout RegPoissonOp::m_grids [protected]
 

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

bool RegPoissonOp::m_ihcfiEnabled [protected]
 

bool RegPoissonOp::m_isBCDefined [protected]
 

bool RegPoissonOp::m_isDefined [protected]
 

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

int RegPoissonOp::m_ncomp [protected]
 

QuadCFInterp RegPoissonOp::m_quadCFI [protected]
 

int RegPoissonOp::m_refRatio [protected]
 


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