PlayaICCFactorizableOp.hpp
Go to the documentation of this file.
00001 /* @HEADER@ */
00002 //   
00003  /* @HEADER@ */
00004 
00005 #ifndef PLAYA_ICCFACTORIZABLEOP_HPP
00006 #define PLAYA_ICCFACTORIZABLEOP_HPP
00007 
00008 #include "PlayaDefs.hpp"
00009 
00010 
00011 namespace Playa
00012 {
00013 template <class Scalar> class Preconditioner;
00014 
00015 /** 
00016  * Base interface for operators for which incomplete Cholesky factorizations
00017  * can be obtained. 
00018  */
00019 template <class Scalar>
00020 class ICCFactorizableOp
00021 {
00022 public:
00023   /** Virtual dtor */
00024   virtual ~ICCFactorizableOp(){;}
00025 
00026 
00027   /** \name incomplete factorization preconditioning interface */
00028   //@{
00029   /** create an incomplete factorization. 
00030    * @param fillLevels number of levels of fill on the local processor
00031    * @param overlapFill number of levels of fill on remote processors
00032    * @param relaxationValue fraction of dropped values to be added to the
00033    * diagonal
00034    * @param relativeThreshold relative diagonal perutrbation
00035    * @param absoluteThreshold absolute diagonal perturbation
00036    * @param rtn newly created preconditioner, returned 
00037    * by reference argument.
00038    */
00039   virtual void getICCPreconditioner(int fillLevels,
00040     int overlapFill,
00041     double relaxationValue,
00042     double relativeThreshold,
00043     double absoluteThreshold,
00044     Preconditioner<Scalar>& rtn) const=0;
00045   //@}
00046      
00047       
00048 private:
00049 };
00050 }
00051 
00052 
00053 #endif

Site Contact