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

eigensolver/inexactFabric.hh
Go to the documentation of this file.
00001 // fabric for eigensolver InexactInv
00002 
00003 #ifndef inexactFabric_hh
00004 #define inexactFabric_hh
00005 
00006 #include <memory>
00007 #include "inexactInv.hh"
00008 #include "solverFabric.hh"
00009 
00010 namespace eigensolver {
00011 
00012   // ****************************************************** InexactInvFabric **
00013 
00020   class InexactInvFabric : public SolverFabric<Real> {
00021   public:
00024     InexactInvFabric(const concepts::Vector<Real>& EFguess,
00025          const Real innerTol = 0.5, const uint innerMax = 100,
00026          const Real outerTol = 1e-6, const uint outerMax = 100) :
00027       solver_(0), EFguess_(EFguess), innerTol_(innerTol), outerTol_(outerTol),
00028       innerMax_(innerMax), outerMax_(outerMax) {}
00029     virtual ~InexactInvFabric();
00030     virtual InexactInv<Real>& operator()(concepts::Operator<Real,Real>& stiff,
00031            concepts::Operator<Real,Real>& mass);
00032   protected:
00033     virtual std::ostream& info(std::ostream& os) const;
00034   private:
00035     std::auto_ptr<InexactInv<Real> > solver_;
00036 
00037     concepts::Vector<Real> EFguess_;
00038     Real innerTol_, outerTol_;
00039     uint innerMax_, outerMax_;
00040 
00041     InexactInvFabric(const InexactInvFabric&);
00042   };
00043 
00044 } // namespace eigensolver
00045 
00046 #endif // inexactFabric_hh

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