Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

vectorial/cgUzawa.hh
Go to the documentation of this file.
00001 #ifndef cgUzawa_hh
00002 #define cgUzawa_hh
00003 
00004 #include <string>
00005 
00006 #include "basics/typedefs.hh"
00007 #include "operator/compositions.hh"
00008 #include "vectorial/vectorial.hh"
00009 
00010 namespace vectorial {
00011 
00012   using concepts::Real;
00013 
00014   // *************************************************************** CGUzawa **
00015 
00049   class CGUzawa : public concepts::Operator<Real> {
00050   public:
00062     CGUzawa(concepts::Operator<Real>& A, concepts::Operator<Real>& B,
00063             concepts::Operator<Real>& Bt, concepts::Operator<Real>& C,
00064             concepts::Operator<Real>& Ai, 
00065             Real maxeps, int maxit = 0, uint relres = false);
00066 
00067     virtual void operator()(const concepts::Function<Real>& fncY,
00068                             concepts::Function<Real>& fncX);
00069     void operator()(const concepts::Vector<Real>& fncY,
00070                     concepts::Vector<Real>& fncX);
00071 
00075     uint iterations() const { return it_; }
00076 
00080     Real epsilon() const { return eps_; }
00081   protected:
00082     std::ostream& info(std::ostream& os) const;
00083   private:
00085     uint bdim_[2];
00087     concepts::Operator<Real>& A_;
00089     concepts::Operator<Real>& B_;
00091     concepts::Operator<Real>& Bt_;
00093     concepts::Operator<Real>& C_;
00095     concepts::Operator<Real>& Ai_;
00097     Real maxeps_;
00099     uint maxit_;
00101     Real eps_;
00103     uint it_;
00105     bool relres_;
00106   };
00107 
00108 } // namespace vectorial
00109 
00110 #endif // cgUzawa_hh

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)