00001
00002
00003
00004
00005 #ifndef PLAYA_ILUFACTORIZABLEOP_HPP
00006 #define PLAYA_ILUFACTORIZABLEOP_HPP
00007
00008 #include "PlayaDefs.hpp"
00009
00010
00011 namespace Playa
00012 {
00013 template <class Scalar> class Preconditioner;
00014
00015
00016 enum LeftOrRight {Left, Right};
00017
00018
00019
00020
00021
00022 template <class Scalar>
00023 class ILUFactorizableOp
00024 {
00025 public:
00026
00027 virtual ~ILUFactorizableOp(){;}
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 virtual void getILUKPreconditioner(int fillLevels,
00045 int overlapFill,
00046 double relaxationValue,
00047 double relativeThreshold,
00048 double absoluteThreshold,
00049 LeftOrRight leftOrRight,
00050 Preconditioner<Scalar>& rtn) const=0;
00051
00052
00053
00054 private:
00055 };
00056 }
00057
00058
00059 #endif