ARPACKsymm.hh

Go to the documentation of this file.
1 
6 #ifndef ArPackSymmdsymm_hh
7 #define ArPackSymmdsymm_hh
8 
9 #include <cfloat>
10 #include "eigens.hh"
11 
12 namespace concepts {
13  // forward declaration
14  template<typename F>
15  class Operator;
16 } // namespace concepts
17 
18 namespace eigensolver {
19 
20 using concepts::Real;
21 
22  // **************************************************************** ArPackSymm **
23 
65  class ArPackSymm : public EigenSolver<Real> {
66  public:
70  enum which { LA, SA, LM, SM, BE };
87  enum modus { NORMAL = 1, REGINV = 2, SHIFTINV = 3, BUCKLING = 4,
88  CAYLEY = 5 };
124  const int kmax = 1, const Real tol = 0.0,
125  const int maxiter = 300,
126  enum which target = SM, enum modus mode = REGINV,
127  const Real sigma = 0.0,
128  const concepts::Vector<Real>* start = 0);
129  virtual ~ArPackSymm();
130  virtual const concepts::Array<Real>& getEV();
132  virtual uint iterations() const { return (uint)iter_; }
133  virtual uint converged() const { return (uint)k_conv_; }
134  protected:
135  virtual std::ostream& info(std::ostream& os) const;
136  private:
144  int kmax_;
146  int maxiter_;
157  enum which target_;
159  enum modus mode_;
161  const Real sigma_;
164  bool computed_;
165  void compute_();
166  };
167 
168 } // namespace eigensolver
169 
170 #endif // ArPackSymm_hh
concepts::Operator< Real > & B_
Operator B as descirbed in modus.
Definition: ARPACKsymm.hh:142
Interafce for eigenvalue solvers.
Definition: eigens.hh:23
virtual uint iterations() const
Definition: ARPACKsymm.hh:132
int maxiter_
Maximum number of Arnoldi iterations allowed.
Definition: ARPACKsymm.hh:146
which
Specify which of the Ritz values of OP (described in modus) to compute.
Definition: ARPACKsymm.hh:70
Real tol_
Convergence tolerance for the eigenpairs.
Definition: ARPACKsymm.hh:148
virtual const concepts::Array< concepts::Vector< Real > * > & getEF()
const concepts::Vector< Real > * start_
Starting vector, if not given ArPackSymm invents one.
Definition: ARPACKsymm.hh:163
concepts::Array< Real > eigenvectors_
Storage space for eigenvectors.
Definition: ARPACKsymm.hh:153
Eigenvalue solver using ArPack, the routine dsaupd.
Definition: ARPACKsymm.hh:65
virtual const concepts::Array< Real > & getEV()
Returns an array with the eigen values.
concepts::Operator< Real > & A_
Stiffness matrix.
Definition: ARPACKsymm.hh:140
concepts::Operator< Real > & OP_
Operator OP as described in modus.
Definition: ARPACKsymm.hh:138
int kmax_
Number of eigenpairs to be computed.
Definition: ARPACKsymm.hh:144
enum which target_
Sort of eigenvalues to compute.
Definition: ARPACKsymm.hh:157
concepts::Array< Real > eigenvalues_
Storage space for eigenvalues.
Definition: ARPACKsymm.hh:151
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
ArPackSymm(concepts::Operator< Real > &OP, concepts::Operator< Real > &A, concepts::Operator< Real > &B, const int kmax=1, const Real tol=0.0, const int maxiter=300, enum which target=SM, enum modus mode=REGINV, const Real sigma=0.0, const concepts::Vector< Real > *start=0)
Constructor.
virtual uint converged() const
Definition: ARPACKsymm.hh:133
concepts::Array< concepts::Vector< Real > * > ev_
References into storage for eigenvectors.
Definition: ARPACKsymm.hh:155
const Real sigma_
Shift for the shift-invert, Buckling or Cayley mode.
Definition: ARPACKsymm.hh:161
enum modus mode_
Mode in which ArPackSymm should be used.
Definition: ARPACKsymm.hh:159
Eigenvalue solvers.
Definition: ARPACK.hh:19
double Real
Type normally used for a floating point number.
Definition: typedefs.hh:36
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
modus
Specify mode of ArPackSymm which should be used to compute the Ritz values of OP.
Definition: ARPACKsymm.hh:87
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich