Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class 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 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.

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.

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 Oct 5 14:01:49 2005 for Chombo&AMRSelfGravity by  doxygen 1.4.1