Go to the documentation of this file.00001
00002
00003 #ifndef jdbsymFabric_hh
00004 #define jdbsymFabric_hh
00005
00006 #include <memory>
00007 #include "jdbsym.hh"
00008 #include "solverFabric.hh"
00009
00010 namespace eigensolver {
00011
00012
00013
00020 class JdbSymFabric : public SolverFabric<Real> {
00021 public:
00036 JdbSymFabric(Real tol, uint maxit = 150, Real tau = 0.0,
00037 uint jdtype = 1, uint kmax = 1,
00038 concepts::SolverFabric<Real>* fabric = 0,
00039 const concepts::Array<concepts::Vector<Real>*>* start = 0)
00040 : solver_(0), tol_(tol), tau_(tau), maxit_(maxit), jdtype_(jdtype)
00041 , kmax_(kmax), fabric_(fabric), start_(start) {}
00042 virtual ~JdbSymFabric();
00043 virtual JdbSym& operator()(concepts::Operator<Real>& stiff,
00044 concepts::Operator<Real>& mass);
00045 protected:
00046 virtual std::ostream& info(std::ostream& os) const;
00047 private:
00049 std::auto_ptr<JdbSym> solver_;
00050 Real tol_, tau_;
00051 uint maxit_, jdtype_, kmax_;
00052 concepts::SolverFabric<Real>* fabric_;
00053 const concepts::Array<concepts::Vector<Real>*>* start_;
00054 };
00055
00056 }
00057
00058 #endif // jdbsymFabric_hh