eigensolver::EasyArPackppSymGen Class Reference

Tool to easily solve general eigenvalue problems for symmetric matrices. More...

#include <easyArpackpp.hh>

Inheritance diagram for eigensolver::EasyArPackppSymGen:
eigensolver::EasyArPackpp< concepts::Real >

Public Member Functions

 EasyArPackppSymGen (char invertType, concepts::SparseMatrix< concepts::Real > &A, concepts::SparseMatrix< concepts::Real > &B, int kmax, concepts::Real shift)
 Buckling mode constructor. More...
 
 EasyArPackppSymGen (concepts::SparseMatrix< concepts::Real > &A, concepts::SparseMatrix< concepts::Real > &B, int kmax, concepts::Real shift)
 Cayley mode constructor. More...
 
virtual ArPackppSymGengetSolver ()
 Getter for the generated solver. More...
 
virtual ~EasyArPackppSymGen ()
 Destructor that deletes the solver and the operator. More...
 

Protected Attributes

int dim_
 Dimension of the space. More...
 

Private Attributes

concepts::Operator< concepts::Real > * OP_
 stores the operator inv(A-shift*B) in shift and invert mode inv(B) otherwise More...
 
ArPackppSymGensolver_
 pointer to the builded solver More...
 

Detailed Description

Tool to easily solve general eigenvalue problems for symmetric matrices.

Examples
arpackppTutorial.cc.

Definition at line 270 of file easyArpackpp.hh.

Constructor & Destructor Documentation

◆ EasyArPackppSymGen() [1/2]

eigensolver::EasyArPackppSymGen::EasyArPackppSymGen ( concepts::SparseMatrix< concepts::Real > &  A,
concepts::SparseMatrix< concepts::Real > &  B,
int  kmax,
concepts::Real  shift 
)

Cayley mode constructor.

Builds an eigenvalue solver that solves the given eigenvalue problem using arpack++ with the shift and invert method.

Parameters
Amatrix of the left hand side; it has to be symmetric
Bmatrix of the right hand side; it has to be real, symmetric and positive semi-definite
kmaxnumber of eigenvalues that should be calculated
shiftreal number for which the kmax closest eigenvalues will be calculated
Warning
kmax has to be larger than or equal to 1 (otherwise it is set to this lower bound).
kmax has to be smaller than or equal to the dimension of the matrix -2 (otherwise it is set to this upper bound).
shift is not allowed to be 0.

◆ EasyArPackppSymGen() [2/2]

eigensolver::EasyArPackppSymGen::EasyArPackppSymGen ( char  invertType,
concepts::SparseMatrix< concepts::Real > &  A,
concepts::SparseMatrix< concepts::Real > &  B,
int  kmax,
concepts::Real  shift 
)

Buckling mode constructor.

Builds an eigenvalue solver that solves the given eigenvalue problem using arpack++ with the shift and invert method.

Parameters
invertType- Character ('B' or 'S') defining the mode
Asymmetric matrix of the left hand side; if (invert Type = 'B') it must be positive semi-definite
Bsymmetric matrix of the right hand side; if (invert Type = 'S') it must be positive semi-definite
kmaxnumber of eigenvalues that should be calculated
shiftreal number for which the kmax closest eigenvalues will be calculated
Warning
In buckling mode (invertType = 'B') shift is not allowed to be 0.
kmax has to be larger than or equal to 1 (otherwise it is set to this lower bound).
kmax has to be smaller than or equal to the dimension of the matrix -2 (otherwise it is set to this upper bound).

◆ ~EasyArPackppSymGen()

virtual eigensolver::EasyArPackppSymGen::~EasyArPackppSymGen ( )
virtual

Destructor that deletes the solver and the operator.

Member Function Documentation

◆ getSolver()

virtual ArPackppSymGen* eigensolver::EasyArPackppSymGen::getSolver ( )
virtual

Getter for the generated solver.

Implements eigensolver::EasyArPackpp< concepts::Real >.

Examples
arpackppTutorial.cc.

Member Data Documentation

◆ dim_

int eigensolver::EasyArPackpp< concepts::Real >::dim_
protectedinherited

Dimension of the space.

Definition at line 47 of file easyArpackpp.hh.

◆ OP_

concepts::Operator<concepts::Real>* eigensolver::EasyArPackppSymGen::OP_
private

stores the operator inv(A-shift*B) in shift and invert mode inv(B) otherwise

Definition at line 325 of file easyArpackpp.hh.

◆ solver_

ArPackppSymGen* eigensolver::EasyArPackppSymGen::solver_
private

pointer to the builded solver

Definition at line 327 of file easyArpackpp.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich