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

eigensolver/jdbsym.hh
Go to the documentation of this file.
00001 // jdbsym eigensolver
00002 
00003 #ifndef jdbsym_hh
00004 #define jdbsym_hh
00005 
00006 #include "eigens.hh"
00007 
00008 namespace concepts {
00009   // forward declaration
00010   template<typename F>
00011   class Operator;
00012   template<typename F>
00013   class SolverFabric;
00014 } // namespace concepts
00015 
00016 namespace eigensolver {
00017 
00018 using concepts::Real;
00019 
00020   // **************************************************************** JdbSym **
00021 
00045   class JdbSym : public EigenSolver<Real> {
00046   public:
00073     JdbSym(concepts::Operator<Real>& stiff, concepts::Operator<Real>& mass,
00074      Real tol, uint maxit = 150, Real tau = 0.0, uint jdtype = 1,
00075      uint kmax = 1, concepts::SolverFabric<Real>* fabric = 0,
00076      const concepts::Array<concepts::Vector<Real>*>* start = 0);
00077     virtual ~JdbSym();
00078     virtual const concepts::Array<Real>& getEV();
00079     virtual const concepts::Array<concepts::Vector<Real>*>& getEF();
00080     virtual uint iterations() const { return (uint)it_; }
00081     virtual uint converged() const { return (uint)k_conv_; }
00082   protected:
00083     virtual std::ostream& info(std::ostream& os) const;
00084   private:
00088     void compute_();
00090     bool computed_;
00092     concepts::Operator<Real>& stiff_;
00096     concepts::Operator<Real>& mass_;
00098     Real tol_;
00100     uint maxit_;
00102     Real tau_;
00104     const uint jdtype_;
00106     uint kmax_;
00108     int it_;
00110     int k_conv_;
00111 
00113     concepts::Array<Real> lambda_;
00115     concepts::Array<Real> eigenvectors_;
00117     concepts::Array<concepts::Vector<Real>*> ev_;
00118 
00120     uint stiffCounter_, massCounter_;
00121 
00122     concepts::SolverFabric<Real>* fabric_;
00123     const concepts::Array<concepts::Vector<Real>*>* start_;
00124 
00126     static int jdbsymLock_;
00127   };
00128 
00129 }
00130 
00131 #endif // jdbsym_hh

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