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 Member Functions

 PoissonOp ()
 Default constructor.

 ~PoissonOp ()
 Destructor.

virtual LevelOp * new_levelop () const
 Virtual constructor workaround.

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
BaseBottomSmoother * m_bottomSmootherPtr
bool m_isDefined
bool m_isBCDefined
bool m_ihcfiEnabled
LayoutData< CFIVS > m_loCFIVS [SpaceDim]
LayoutData< CFIVS > m_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.

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 Jun 2 13:58:58 2004 for Chombo&INSwithParticles by doxygen 1.3.2