Go to the documentation of this file.00001
00002
00003
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
00034
00035 virtual void apply(
00036 Teuchos::ETransp applyType,
00037 const Vector<double>& in,
00038 Vector<double> out) const ;
00039
00040
00041
00042
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