Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

GenLevelOp< T > Class Template Reference

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

#include <GenLevelOp.H>

Inheritance diagram for GenLevelOp< T >:

Inheritance graph
[legend]
Collaboration diagram for GenLevelOp< T >:

Collaboration graph
[legend]
List of all members.

Public Methods

 GenLevelOp ()
virtual ~GenLevelOp ()
virtual GenLevelOp * newOp () const=0
virtual void setToZero (LevelData< T > &a_one)
 a_one = 0

virtual void copy (LevelData< T > &a_one, const LevelData< T > &a_two)
 a_one = a_two

virtual void scalarMul (LevelData< T > &a_one, const Real a_scalar)
 a_one = a_scalar * a_one

virtual void negate (LevelData< T > &a_one)
 a_one = -a_one

virtual void sum (LevelData< T > &a_one, const LevelData< T > &a_two)
 a_one = a_one + a_two

virtual void diff (LevelData< T > &a_one, const LevelData< T > &a_two)
 a_one = a_one - a_two

virtual Real dotProduct (const LevelData< T > &a_one, const LevelData< T > &a_two)
 Return dot product of "a_one" and "a_two".

virtual Real norm (const LevelData< T > &a_one, const int a_power)
 Return "a_power"-norm of "a_one".

virtual void defineOpData (LevelData< T > &a_data)
 Define data so that the operator can be applied to it.

virtual void defineData (LevelData< T > &a_data)
 Define data which won't have the operator applied to it.

virtual void levelPreconditioner (LevelData< T > &a_phihat, const LevelData< T > &a_rhshat)=0
virtual void CFInterp (LevelData< T > &a_phif, const LevelData< T > &a_phic)=0
virtual void homogeneousCFInterp (LevelData< T > &a_phif)=0
virtual void homogeneousCFInterp (LevelData< T > &a_phif, const DataIndex &a_datInd, int a_idir, Side::LoHiSide a_hiorlo)=0

Detailed Description

template<class T>
class GenLevelOp< T >

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

GenLevelOp<T> is a pure base class to encapsulate level operations API for elliptic solvers. All elliptic operators used by AMRSolver inherit the GenLevelOp<T> interface.


Constructor & Destructor Documentation

template<class T>
GenLevelOp< T >::GenLevelOp   [inline]
 

template<class T>
virtual GenLevelOp< T >::~GenLevelOp   [inline, virtual]
 


Member Function Documentation

template<class T>
virtual void GenLevelOp< T >::CFInterp LevelData< T > &    a_phif,
const LevelData< T > &    a_phic
[pure virtual]
 

Coarse / Fine interpolation operator. Fill ghost cells of phi

Implemented in EBPoissonOp, RegHelmholtzOp, and RegPoissonOp.

template<class T>
void GenLevelOp< T >::copy LevelData< T > &    a_one,
const LevelData< T > &    a_two
[virtual]
 

a_one = a_two

Copy a_two to a_one, a_one = a_two

template<class T>
void GenLevelOp< T >::defineData LevelData< T > &    a_data [virtual]
 

Define data which won't have the operator applied to it.

Define data which won't have the operator applied to it

template<class T>
void GenLevelOp< T >::defineOpData LevelData< T > &    a_data [virtual]
 

Define data so that the operator can be applied to it.

Define data so that the operator can be applied to it

template<class T>
void GenLevelOp< T >::diff LevelData< T > &    a_one,
const LevelData< T > &    a_two
[virtual]
 

a_one = a_one - a_two

Subtract a_two from a_one and store in a_one, a_one = a_one - a_two

template<class T>
Real GenLevelOp< T >::dotProduct const LevelData< T > &    a_one,
const LevelData< T > &    a_two
[virtual]
 

Return dot product of "a_one" and "a_two".

Return dot product of "a_one" and "a_two"

template<class T>
virtual void GenLevelOp< T >::homogeneousCFInterp LevelData< T > &    a_phif,
const DataIndex   a_datInd,
int    a_idir,
Side::LoHiSide    a_hiorlo
[pure virtual]
 

does homogeneous coarse/fine interpolation for one grid

Implemented in EBPoissonOp, RegHelmholtzOp, and RegPoissonOp.

template<class T>
virtual void GenLevelOp< T >::homogeneousCFInterp LevelData< T > &    a_phif [pure virtual]
 

homogeneous coarse/fine interpolation operator

Implemented in EBPoissonOp, RegHelmholtzOp, and RegPoissonOp.

template<class T>
virtual void GenLevelOp< T >::levelPreconditioner LevelData< T > &    a_phihat,
const LevelData< T > &    a_rhshat
[pure virtual]
 

apply preconditioning to the solution on this level. Given rhshat, returns phihat from M(phihat) = rhshat

Implemented in EBPoissonOp, RegHelmholtzOp, and RegPoissonOp.

template<class T>
void GenLevelOp< T >::negate LevelData< T > &    a_one [virtual]
 

a_one = -a_one

Negate a_one, a_one = -a_one

template<class T>
virtual GenLevelOp* GenLevelOp< T >::newOp   const [pure virtual]
 

this gets around the "no virtual constructor" rule

Implements GenAMRLevelMGOp< LevelData< T > >.

Implemented in EBLevelOp, EBPoissonOp, RegHelmholtzOp, RegLevelOp, and RegPoissonOp.

template<class T>
Real GenLevelOp< T >::norm const LevelData< T > &    a_one,
const int    a_power
[virtual]
 

Return "a_power"-norm of "a_one".

Return "a_power"-norm of "a_one"

template<class T>
void GenLevelOp< T >::scalarMul LevelData< T > &    a_one,
const Real    a_scalar
[virtual]
 

a_one = a_scalar * a_one

Multiply a_one by the scalar, a_scalar, a_one = a_scalar * a_one

template<class T>
void GenLevelOp< T >::setToZero LevelData< T > &    a_one [virtual]
 

a_one = 0

Set all a_one to zero, a_one = 0

template<class T>
void GenLevelOp< T >::sum LevelData< T > &    a_one,
const LevelData< T > &    a_two
[virtual]
 

a_one = a_one + a_two

Add a_two to a_one and store in a_one, a_one = a_one + a_two


The documentation for this class was generated from the following files:
Generated on Wed Apr 16 14:35:20 2003 for EBChombo by doxygen1.2.16