Class documentation of Concepts

Loading...
Searching...
No Matches
arpackFabric.hh
Go to the documentation of this file.
1
6#ifndef arpackFabric_hh
7#define arpackFabric_hh
8
9#include <memory>
11#include "ARPACKsymm.hh"
12#include "solverFabric.hh"
13
14namespace eigensolver {
15
16 // ********************************************************** ArPackFabric **
17
24 class ArPackFabric : public SolverFabric<Real> {
25 public:
36 ArPackFabric(int kmax = 1, Real tol = 0.0, const int maxiter = 300,
37 enum ArPackSymm::which target = ArPackSymm::SM,
38 enum ArPackSymm::modus mode = ArPackSymm::REGINV,
39 const Real sigma = 0.0,
40 const concepts::Vector<Real>* start = 0) :
41 solver_(nullptr), OP_(nullptr), B_(nullptr), tmp1_(nullptr), tmp2_(nullptr), kmax_(kmax),
42 maxiter_(maxiter), tol_(tol), target_(target), mode_(mode),
43 sigma_(sigma), start_(start) {}
44 virtual ~ArPackFabric();
45 virtual ArPackSymm& operator()(concepts::Operator<Real>& stiff,
47 protected:
48 virtual std::ostream& info(std::ostream& os) const;
49 private:
50 std::unique_ptr<ArPackSymm> solver_;
51 std::unique_ptr<concepts::Operator<Real> > OP_, B_, tmp1_, tmp2_;
53 int kmax_;
55 int maxiter_;
57 Real tol_;
59 enum ArPackSymm::which target_;
61 enum ArPackSymm::modus mode_;
63 const Real sigma_;
65 const concepts::Vector<Real>* start_;
67
68 void normalMode_(concepts::Operator<Real>& stiff,
70 void reginvMode_(concepts::Operator<Real>& stiff,
72 void shiftinvMode_(concepts::Operator<Real>& stiff,
74 void bucklingMode_(concepts::Operator<Real>& stiff,
76 void cayleyMode_(concepts::Operator<Real>& stiff,
78 };
79
80} // namespace eigensolver
81
82#endif // arpackFabric_hh
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
ArPackFabric(int kmax=1, Real tol=0.0, const int maxiter=300, enum ArPackSymm::which target=ArPackSymm::SM, enum ArPackSymm::modus mode=ArPackSymm::REGINV, const Real sigma=0.0, const concepts::Vector< Real > *start=0)