eigensolver::EasyArPackppGen< F, G, H > Class Template Reference

Tool to easily solve general eigenvalue problems. More...

#include <easyArpackpp.hh>

Inheritance diagram for eigensolver::EasyArPackppGen< F, G, H >:
eigensolver::EasyArPackpp< concepts::Cmplx >

Public Member Functions

 EasyArPackppGen (concepts::SparseMatrix< F > &A, concepts::SparseMatrix< concepts::Real > &B, int kmax, G shift)
 Shift and invert mode constructor. More...
 
 EasyArPackppGen (concepts::SparseMatrix< F > &A, concepts::SparseMatrix< concepts::Real > &B, int kmax=1, char *which=(char *) "LM")
 Regular mode constructor. More...
 
virtual ArPackppGen< H, F, concepts::Real > * getSolver ()
 Getter for the generated solver. More...
 
virtual ~EasyArPackppGen ()
 Destructor that deletes the solver and the operator. More...
 

Protected Attributes

int dim_
 Dimension of the space. More...
 

Private Attributes

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

Detailed Description

template<class F, class G = concepts::Real, class H = typename eigensolver::OperatorType<F, G>::type>
class eigensolver::EasyArPackppGen< F, G, H >

Tool to easily solve general eigenvalue problems.

Examples
arpackppTutorial.cc, and hpFEM3d-EV.cc.

Definition at line 151 of file easyArpackpp.hh.

Constructor & Destructor Documentation

◆ EasyArPackppGen() [1/2]

template<class F , class G = concepts::Real, class H = typename eigensolver::OperatorType<F, G>::type>
eigensolver::EasyArPackppGen< F, G, H >::EasyArPackppGen ( concepts::SparseMatrix< F > &  A,
concepts::SparseMatrix< concepts::Real > &  B,
int  kmax,
shift 
)
inline

Shift and invert 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
Bmatrix of the right hand side
kmaxnumber of eigenvalues that should be calculated
shiftcomplex or real number for which the kmax closest eigenvalues will be calculated
Warning
B has to be real, symmetric and positive definite
A - shift B has to be invertible
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).

Definition at line 166 of file easyArpackpp.hh.

◆ EasyArPackppGen() [2/2]

template<class F , class G = concepts::Real, class H = typename eigensolver::OperatorType<F, G>::type>
eigensolver::EasyArPackppGen< F, G, H >::EasyArPackppGen ( concepts::SparseMatrix< F > &  A,
concepts::SparseMatrix< concepts::Real > &  B,
int  kmax = 1,
char *  which = (char*) "LM" 
)
inline

Regular mode constructor.

Builds an eigenvalue solver that solves the given eigenvalue problem using arpack++ with the regular method.

Parameters
Amatrix of the left hand side
Bmatrix of the right hand side
kmaxnumber of eigenvalues that should be calculated (default 1)
whichdefines which eigenvalue should be calculated (default "LM")
Warning
B has to be real, symmetric and positive definite
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).

Definition at line 203 of file easyArpackpp.hh.

◆ ~EasyArPackppGen()

template<class F , class G = concepts::Real, class H = typename eigensolver::OperatorType<F, G>::type>
virtual eigensolver::EasyArPackppGen< F, G, H >::~EasyArPackppGen ( )
inlinevirtual

Destructor that deletes the solver and the operator.

Definition at line 244 of file easyArpackpp.hh.

Member Function Documentation

◆ getSolver()

template<class F , class G = concepts::Real, class H = typename eigensolver::OperatorType<F, G>::type>
virtual ArPackppGen<H, F, concepts::Real>* eigensolver::EasyArPackppGen< F, G, H >::getSolver ( )
inlinevirtual

Getter for the generated solver.

Returns an eigensolver of the type ArPackGen that calculates the desired eigenvalues and eigenfunctions respectively.

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

Definition at line 257 of file easyArpackpp.hh.

Member Data Documentation

◆ dim_

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

Dimension of the space.

Definition at line 47 of file easyArpackpp.hh.

◆ OP_

template<class F , class G = concepts::Real, class H = typename eigensolver::OperatorType<F, G>::type>
concepts::Operator<H>* eigensolver::EasyArPackppGen< F, G, H >::OP_
private

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

Definition at line 264 of file easyArpackpp.hh.

◆ solver_

template<class F , class G = concepts::Real, class H = typename eigensolver::OperatorType<F, G>::type>
ArPackppGen<H, F, concepts::Real>* eigensolver::EasyArPackppGen< F, G, H >::solver_
private

pointer to the builded solver

Definition at line 266 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