eigensolver::EasyArPackppGen< F, G, H > Class Template Reference
Tool to easily solve general eigenvalue problems. More...
#include <easyArpackpp.hh>
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]
|
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
-
A matrix of the left hand side B matrix of the right hand side kmax number of eigenvalues that should be calculated shift complex 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]
|
inline |
Regular mode constructor.
Builds an eigenvalue solver that solves the given eigenvalue problem using arpack++ with the regular method.
- Parameters
-
A matrix of the left hand side B matrix of the right hand side kmax number of eigenvalues that should be calculated (default 1) which defines 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()
|
inlinevirtual |
Destructor that deletes the solver and the operator.
Definition at line 244 of file easyArpackpp.hh.
Member Function Documentation
◆ 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_
|
protectedinherited |
Dimension of the space.
Definition at line 47 of file easyArpackpp.hh.
◆ 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_
|
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:
- eigensolver/easyArpackpp.hh