class LevelOp

Pure base class to encapsulate level operations API for elliptic solvers.

Inheritance:

LevelOp


public members:

constructors, destructors, defines
virtual void CFInterp( LevelData< FArrayBox >& a_phi, const LevelData< FArrayBox >& a_phiCoarse )
virtual void homogeneousCFInterp(LevelData< FArrayBox >& a_phi)
LevelOp()
virtual LevelOp * new_levelop() const
virtual bool isDefined() const
virtual void define( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const Box& domf, bool homogeneousOnly, int ncomp = 1)
virtual void define( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const ProblemDomain & domf, bool homogeneousOnly, int ncomp = 1)
virtual void define( const LevelOp * opfine, int reftofine)
virtual ~LevelOp()
virtual void smooth( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& rhs )
virtual void levelPreconditioner( LevelData< FArrayBox >& a_phihat, const LevelData< FArrayBox >& a_rhshat )
virtual void applyOpI( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >* phiCoarse, LevelData< FArrayBox >& LOfPhi )
virtual void applyOpIcfHphys( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >* phiCoarse, LevelData< FArrayBox >& LOfPhi )
virtual void applyOpHcfIphys( LevelData< FArrayBox >& phi, LevelData< FArrayBox >& LOfPhi )
virtual void applyOpH( LevelData< FArrayBox >& phi, LevelData< FArrayBox >& LOfPhi )
virtual void bottomSmoother( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& rhs)
virtual void getFlux( FArrayBox & flux, const FArrayBox & data, const DataIndex& a_datInd, int dir)

Documentation

LevelOp is a pure base class to encapsulate level operations API for elliptic solvers. All elliptic operators used by AMRSolver inherit the LevelOp interface.
virtual void CFInterp ( LevelData< FArrayBox >& a_phi, const LevelData< FArrayBox >& a_phiCoarse )
Coarse / Fine interpolation operator. Fill ghost cells of phi

virtual void homogeneousCFInterp (LevelData< FArrayBox >& a_phi)
homogeneous coarse/fine interpolation operator

virtual LevelOp * new_levelop () const
this gets around the "no virtual constructor" rule

virtual void define ( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const Box& domf, bool homogeneousOnly, int ncomp = 1)
Full define function. makes all coarse-fine information and sets internal variables

virtual void define ( const DisjointBoxLayout & Ba, const DisjointBoxLayout * base_ba, Real DxLevel, int refratio, const ProblemDomain & domf, bool homogeneousOnly, int ncomp = 1)
Full define function. makes all coarse-fine information and sets internal variables

virtual void define ( const LevelOp * opfine, int reftofine)
Full define function. define from finer levelop. reftofine is the refinement ratio to get from *this opfine

virtual void smooth ( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& 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

virtual void applyOpI ( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >* phiCoarse, LevelData< FArrayBox >& LOfPhi )
Evaluate Operator, inhomogeneous C/F boundary conditions. inhomogeneous phys boundary conditions. *

virtual void applyOpIcfHphys ( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >* phiCoarse, LevelData< FArrayBox >& LOfPhi )
Evaluate Operator, inhomogeneous C/F boundary conditions. homogeneous phys boundary conditions. *

virtual void applyOpHcfIphys ( LevelData< FArrayBox >& phi, LevelData< FArrayBox >& LOfPhi )
Evaluate Operator, homogeneous C/F boundary conditions. inhomogeneous phys boundary conditions.

virtual void applyOpH ( LevelData< FArrayBox >& phi, LevelData< FArrayBox >& LOfPhi )
Evaluate Operator, homogeneous C/F boundary conditions. homogeneous phys boundary conditions.

virtual void bottomSmoother ( LevelData< FArrayBox >& phi, const LevelData< FArrayBox >& rhs)
smoother at bottom level

virtual void getFlux ( FArrayBox & flux, const FArrayBox & data, const DataIndex& a_datInd, int 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.