PlayaIfpackICCOperator.hpp
Go to the documentation of this file.
00001 /* @HEADER@ */
00002 //   
00003  /* @HEADER@ */
00004 
00005 #ifndef PLAYA_IFPACKICCOPERATOR_HPP
00006 #define PLAYA_IFPACKICCOPERATOR_HPP
00007 
00008 
00009 #include "PlayaEpetraMatrix.hpp"
00010 #include "PlayaLinearOpWithSpacesDecl.hpp"
00011 #include "Ifpack_ICT.h"
00012 
00013 
00014 namespace Playa
00015 {
00016 /**
00017  *
00018  */
00019 class IfpackICCOperator : 
00020   public LinearOpWithSpaces<double>,
00021   public Printable
00022 {
00023 public:
00024   /** */
00025   IfpackICCOperator(const EpetraMatrix* A,
00026     int fillLevels,
00027     int overlapFill,
00028     double relaxationValue,
00029     double relativeThreshold,
00030     double absoluteThreshold);
00031 
00032   /** 
00033    * Apply the operator. 
00034    */
00035   virtual void apply(
00036     Teuchos::ETransp applyType,
00037     const Vector<double>& in,
00038     Vector<double> out) const ;
00039     
00040       /** \name Diagnostic output */
00041   //@{
00042   /** Print the matrix */
00043   virtual void print(std::ostream& os) const ;
00044   //@}
00045 
00046   /** */
00047   std::ostream& describe(
00048     std::ostream                         &out
00049     ,const Teuchos::EVerbosityLevel      verbLevel
00050     ,const std::string                   leadingIndent
00051     , const std::string                   indentSpacer
00052     ) const 
00053     {
00054       out << leadingIndent << indentSpacer << this->description() << std::endl;
00055       return out;
00056     }
00057   /** */
00058   std::string description() const ;
00059   //@}
00060 
00061 
00062 
00063 private:
00064   RCP<Ifpack_ICT> precond_;
00065 
00066 };
00067 
00068 
00069 }
00070 
00071 #endif 

Site Contact