class PoissonOp : public LevelOp
one-sided differencing version of poisson operator
Inheritance:
public members:
-
-
virtual LevelOp * new_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 members:
-
BaseBottomSmoother * m_bottom_smoother_ptr
-
Documentation
this class contains stuff to solve div (grad phi) = rhs
- virtual LevelOp * new_levelop () const
-
virtual constructor workaround
- void define ( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const Box& domf, bool a_homogeneousOnly=false, int ncomp = 1)
-
Full define function. makes all coarse-fine
information and sets internal variables
- void define ( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const ProblemDomain & domf, bool a_homogeneousOnly=false, int ncomp = 1)
-
Full define function. makes all coarse-fine
information and sets internal variables
- void define ( const LevelOp * opfine, int refratio)
-
Full define function. define
from finer levelop.
- void 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.
- virtual void levelPreconditioner ( LevelData< FArrayBox >& a_phihat, const LevelData< FArrayBox >& a_rhshat )
- apply preconditioning to the solution on this level.
Given rhshat, returns phihat from M(phihat) = rhshat
- void applyOpI ( LevelData< FArrayBox >& a_phi, const LevelData< FArrayBox >* a_phiCoarse, LevelData< FArrayBox >& a_LOfPhi)
-
Evaluate Operator, inhomogeneous C/F boundary conditions.
and inhomogeneous phys boundary conditions
- void applyOpIcfHphys ( LevelData< FArrayBox >& a_phi, const LevelData< FArrayBox >* a_phiCoarse, LevelData< FArrayBox >& a_LOfPhi)
-
Evaluate Operator, inhomogeneous C/F boundary conditions.
with homogeneous physical boundary conditions
- void applyOpH ( LevelData< FArrayBox >& a_phi, LevelData< FArrayBox >& a_LOfPhi)
-
Evaluate Operator, homogeneous C/F boundary conditions.
and homogeneous physical boundary conditions
- void CFInterp (LevelData< FArrayBox >& a_phi, const LevelData< FArrayBox >& a_phiCoarse )
-
Coarse / Fine interpolation operator.
- void applyOpHcfIphys ( LevelData< FArrayBox >& a_phi, LevelData< FArrayBox >& a_lOfPhi)
-
Evaluate Operator, homogeneous C/F boundary conditions.
with inhomogeneous physical boundary conditions
- void homogeneousCFInterp (LevelData< FArrayBox >& a_phi)
-
homogeneous coarse/fine interpolation operator
- 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 does a GSRB Pre/Conditioned BiCGStab on a level
for the bottom solver.
- void getFlux ( FArrayBox & flux, 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.
this class has no child classes.
alphabetic index hierarchy of classes
Chombo
Copyright Notice
This software is copyright (C) by the Lawrence Berkeley
National Laboratory. Permission is granted to reproduce
this software for non-commercial purposes provided that
this notice is left intact.
It is acknowledged that the U.S. Government has rights to
this software under Contract DE-AC03-765F00098 between
the U.S. Department of Energy and the University of
California.
This software is provided as a professional and academic
contribution for joint exchange. Thus it is experimental,
is provided ``as is'', with no warranties of any kind
whatsoever, no support, no promise of updates, or printed
documentation. By using this software, you acknowledge
that the Lawrence Berkeley National Laboratory and
Regents of the University of California shall have no
liability with respect to the infringement of other
copyrights by any part of this software.