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

 PoissonOp ()
 Default constructor.

 ~PoissonOp ()
 Destructor.

virtual LevelOpnew_levelop () const
 Virtual constructor workaround.

void levelGSMC (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
virtual bool isDefined () const
 Has this object been defined?

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)
 Full define function. Define from finer levelop.

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 version).

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 > &a_phi, const LevelData< FArrayBox > *a_phicPtr, LevelData< FArrayBox > &a_lofPhi)
 Evaluate Operator, inhomogeneous boundary conditions.

void applyOpIcfHphys (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > *a_phicPtr, LevelData< FArrayBox > &a_lofPhi)
 Evaluate Operator, mixed boundary conditions.

void applyOpH (LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_lofPhi)
 Evaluate Operator using homogeneous boundary conditions.

void CFInterp (LevelData< FArrayBox > &a_phif, const LevelData< FArrayBox > &a_phic)
 Coarse / Fine interpolation operator.

void applyOpHcfIphys (LevelData< FArrayBox > &a_phi, LevelData< FArrayBox > &a_lOfPhi)
 Evaluate Operator.

void homogeneousCFInterp (LevelData< FArrayBox > &a_phif)
 Homogeneous coarse/fine interpolation operator.

void setDomainGhostBC (const DomainGhostBC &a_dombcin)
 Set physical boundary condition types.

void setBottomSmoother (const BaseBottomSmoother &a_bottomSmoother)
 Set the bottom smoother to use in solve.

void homogeneousCFInterp (LevelData< FArrayBox > &a_phif, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)
 Does homogeneous coarse/fine interpolation.

void bottomSmoother (LevelData< FArrayBox > &a_phi, const LevelData< FArrayBox > &a_rhs)
 This performs the smoothing at the bottom of a multigrid V-cycle.

void getFlux (FArrayBox &a_fineFlux, const FArrayBox &a_data, const DataIndex &a_datInd, int a_dir)
 Get flux on this level in the direction dir on the given Box.

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_ncomp
int m_refRatio
Real m_dxLevel
Real m_dxCrse
QuadCFInterp m_quadCFI
BaseBottomSmootherm_bottomSmootherPtr
bool m_isDefined
bool m_isBCDefined
bool m_ihcfiEnabled
LayoutData< CFIVSm_loCFIVS [SpaceDim]
LayoutData< CFIVSm_hiCFIVS [SpaceDim]

Detailed Description

one-sided differencing version of poisson operator

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


Constructor & Destructor Documentation

PoissonOp::PoissonOp  
 

Default constructor.

PoissonOp::~PoissonOp  
 

Destructor.


Member Function Documentation

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

Evaluate Operator using homogeneous boundary conditions.

Uses homogeneous form of both coarse-fine and physical boundary conditions.

Implements LevelOp.

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

Evaluate Operator.

Uses homogeneous form of C/F boundary conditions. with inhomogeneous physical boundary conditions

Implements LevelOp.

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

Evaluate Operator, inhomogeneous boundary conditions.

Uses inhomogeneous C/F boundary conditions. and inhomogeneous phys boundary conditions

Implements LevelOp.

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

Evaluate Operator, mixed boundary conditions.

Uses inhomogeneous form of C/F boundary conditions. and homogeneous physical boundary conditions

Implements LevelOp.

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

This performs the smoothing at the bottom of a multigrid V-cycle.

Implements LevelOp.

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

Coarse / Fine interpolation operator.

Implements LevelOp.

void PoissonOp::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 (Deprecated -- use ProblemDomain version).

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

Implements LevelOp.

void PoissonOp::define const LevelOp   a_opfine,
int    a_reftoFine
[virtual]
 

Full define function. Define from finer levelop.

Implements LevelOp.

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

void PoissonOp::getFlux FArrayBox   a_fineFlux,
const FArrayBox   a_data,
const DataIndex   a_datInd,
int    a_dir
[virtual]
 

Get flux on this level in the direction dir on the given Box.

The fluxes live on the cell faces with direction a_dir. Fluxes are computed for all interior edges of a_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_phif [virtual]
 

Homogeneous coarse/fine interpolation operator.

Implements LevelOp.

virtual bool PoissonOp::isDefined   const [virtual]
 

Has this object been defined?

Implements LevelOp.

Reimplemented in VelocityPoissonOp.

void PoissonOp::levelGSMC LevelData< FArrayBox > &    a_phi,
const LevelData< FArrayBox > &    a_rhs
 

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.

Reimplemented in VelocityPoissonOp.

void PoissonOp::setBottomSmoother const BaseBottomSmoother   a_bottomSmoother
 

Set the bottom smoother to use in solve.

virtual void PoissonOp::setConvergenceMetric Real    a_metric,
int    a_comp
[virtual]
 

pass-through to bottom smoother

Implements LevelOp.

void PoissonOp::setDomainGhostBC const DomainGhostBC   a_dombcin
 

Set physical boundary condition types.

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]
 

DisjointBoxLayout for next coarser level this is == NULL if there is no coarser level

BaseBottomSmoother* PoissonOp::m_bottomSmootherPtr [protected]
 

Bottom smoother object

ProblemDomain PoissonOp::m_domain [protected]
 

Domain of fine grid

DomainGhostBC PoissonOp::m_domghostbc [protected]
 

Boundary conditons

Real PoissonOp::m_dxCrse [protected]
 

Mesh spacing at next coarser level

Real PoissonOp::m_dxLevel [protected]
 

Mesh spacing at this level

Copier PoissonOp::m_exchangeCopier [protected]
 

Copier object that knows how to perform exchange operations on LevelData objects defined on m_grids

DisjointBoxLayout PoissonOp::m_grids [protected]
 

The grids at the current level

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

Coarse-fine stencils for homogeneous CFInterp

bool PoissonOp::m_ihcfiEnabled [protected]
 

Is inhomogeneous CF interpolation possible?

bool PoissonOp::m_isBCDefined [protected]
 

Has bc been defined?

bool PoissonOp::m_isDefined [protected]
 

Has full define function been called?

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

Coarse-fine stencils for homogeneous CFInterp

int PoissonOp::m_ncomp [protected]
 

Number of components

QuadCFInterp PoissonOp::m_quadCFI [protected]
 

int PoissonOp::m_refRatio [protected]
 

Refinement ratio between this and the next coarser level


The documentation for this class was generated from the following file:
Generated on Wed Jan 19 17:56:27 2005 for Chombo&INSwithParticles by doxygen1.2.16