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

PoissonOp Class Reference

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

#include <PoissonOp.H>

Inheritance diagram for PoissonOp:

Inheritance graph
[legend]
Collaboration diagram for PoissonOp:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual LevelOpnew_levelop () const
virtual bool isDefined () const
void define (const DisjointBoxLayout &Ba, const DisjointBoxLayout *base_ba, Real DxLevel, int refratio, const Box &domf, bool a_homogeneousOnly=false, int ncomp=1)
void define (const DisjointBoxLayout &Ba, const DisjointBoxLayout *base_ba, Real DxLevel, int refratio, const ProblemDomain &domf, bool a_homogeneousOnly=false, int ncomp=1)
void define (const LevelOp *opfine, int refratio)
 PoissonOp ()
 ~PoissonOp ()
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_phiCoarse, LevelData< FArrayBox > &a_LOfPhi)
void applyOpIcfHphys (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phiCoarse, LevelData< FArrayBox > &a_LOfPhi)
void applyOpH (LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_LOfPhi)
void CFInterp (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_phiCoarse)
void applyOpHcfIphys (LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_lOfPhi)
void homogeneousCFInterp (LevelData< FArrayBox > &a_phi)
void setDomainGhostBC (const DomainGhostBC &a_dombcin)
void setBottomSmoother (const BaseBottomSmoother &a_bottomSmoother)
void homogeneousCFInterp (LevelData< FArrayBox > &a_phif, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
void bottomSmoother (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
void getFlux (FArrayBox &flux, const FArrayBox &a_data, const DataIndex &a_datInd, int a_dir)

Protected Attributes

DomainGhostBC m_domghostbc
ProblemDomain m_domain
DisjointBoxLayout m_grids
Copier m_exchangeCopier
DisjointBoxLayout m_baseBA
int m_ncomp
int m_refRatio
Real m_dxLevel
Real m_dxCrse
QuadCFInterp m_quadCFI
BaseBottomSmootherm_bottom_smoother_ptr
bool m_isDefined
bool m_isBCDefined
bool m_ihcfiEnabled
LayoutData< CFIVSm_loCFIVS [SpaceDim]
LayoutData< CFIVSm_hiCFIVS [SpaceDim]

Private Methods

void levelGSRB (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
void interpOnIVS (LevelData< FArrayBox > &a_phif, const FArrayBox &a_phistar, const DataIndex &dFine, 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

PoissonOp::PoissonOp  
 

PoissonOp::~PoissonOp  
 


Member Function Documentation

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

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

Implements LevelOp.

void PoissonOp::applyOpHcfIphys LevelData< FArrayBox > &    a_phi,
LevelData< FArrayBox > &    a_lOfPhi
[virtual]
 

Evaluate Operator, homogeneous C/F boundary conditions. with inhomogeneous physical boundary conditions

Implements LevelOp.

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

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

Implements LevelOp.

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

Evaluate Operator, inhomogeneous C/F boundary conditions. with homogeneous physical boundary conditions

Implements LevelOp.

void PoissonOp::bottomSmoother LevelData< FArrayBox > &    a_phi,
const LevelData< FArrayBox > &    a_rhs
[virtual]
 

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

Implements LevelOp.

void PoissonOp::CFInterp LevelData< FArrayBox > &    a_phi,
const LevelData< FArrayBox > &    a_phiCoarse
[virtual]
 

Coarse / Fine interpolation operator.

Implements LevelOp.

void PoissonOp::clearMemory   [private]
 

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

Full define function. define from finer levelop.

Implements LevelOp.

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

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

Implements LevelOp.

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

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

Implements LevelOp.

void PoissonOp::getFlux FArrayBox   flux,
const FArrayBox   a_data,
const DataIndex   a_datInd,
int    a_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 PoissonOp::homogeneousCFInterp LevelData< FArrayBox > &    a_phif,
const DataIndex   a_datInd,
int    a_idir,
Side::LoHiSide    a_hiorlo
 

does homogeneous coarse/fine interpolation

void PoissonOp::homogeneousCFInterp LevelData< FArrayBox > &    a_phi [virtual]
 

homogeneous coarse/fine interpolation operator

Implements LevelOp.

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

virtual bool PoissonOp::isDefined   const [virtual]
 

Implements LevelOp.

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

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

virtual LevelOp* PoissonOp::new_levelop   const [virtual]
 

virtual constructor workaround

Implements LevelOp.

void PoissonOp::setBottomSmoother const BaseBottomSmoother   a_bottomSmoother
 

void PoissonOp::setDefaultValues   [private]
 

void PoissonOp::setDomainGhostBC const DomainGhostBC   a_dombcin
 

void PoissonOp::smooth LevelData< FArrayBox > &    a_phi,
const LevelData< FArrayBox > &    a_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

DisjointBoxLayout PoissonOp::m_baseBA [protected]
 

BaseBottomSmoother* PoissonOp::m_bottom_smoother_ptr [protected]
 

ProblemDomain PoissonOp::m_domain [protected]
 

DomainGhostBC PoissonOp::m_domghostbc [protected]
 

Real PoissonOp::m_dxCrse [protected]
 

Real PoissonOp::m_dxLevel [protected]
 

Copier PoissonOp::m_exchangeCopier [protected]
 

DisjointBoxLayout PoissonOp::m_grids [protected]
 

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

bool PoissonOp::m_ihcfiEnabled [protected]
 

bool PoissonOp::m_isBCDefined [protected]
 

bool PoissonOp::m_isDefined [protected]
 

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

int PoissonOp::m_ncomp [protected]
 

QuadCFInterp PoissonOp::m_quadCFI [protected]
 

int PoissonOp::m_refRatio [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Jul 2 10:44:15 2002 for Chombo by doxygen1.2.16