|
CppNoddy
0.92
|
A linear Nth-order generalised eigensystem class. More...
#include <DenseLinearEigenSystem.h>
Public Member Functions | |
| DenseLinearEigenSystem (DenseMatrix< _Type > *Aptr, DenseMatrix< _Type > *Bptr) | |
| Constructor for a linear system object. More... | |
| ~DenseLinearEigenSystem () | |
| Destructor for a linear system object. More... | |
| void | eigensolve () |
| Solve the matrix linear eigensystem. More... | |
| void | tag_eigenvalues_right (const int &val) |
| Tag those eigenvalues that are to the right of a specified point. More... | |
| void | tag_eigenvalues_left (const int &val) |
| Tag those eigenvalues that are to the left of a specified point. More... | |
| void | tag_eigenvalues_upper (const int &val) |
| Tag those eigenvalues that are in the upper half-plane above a specified point. More... | |
| void | tag_eigenvalues_lower (const int &val) |
| Tag those eigenvalues that are in the lower half-plane below a specified point. More... | |
| void | tag_eigenvalues_disc (const int &val, const double &radius) |
| Tag those eigenvalues that are within a disc centred at a point in the complex plane. More... | |
| DenseVector< D_complex > | get_tagged_eigenvalues () const |
| Get the the tagged eigenvalues. More... | |
| DenseMatrix< D_complex > | get_tagged_eigenvectors () const |
| Get the the tagged eigenvectors. More... | |
Public Member Functions inherited from CppNoddy::LinearEigenSystem_base | |
| LinearEigenSystem_base () | |
| Constructor for a linear system object. More... | |
| virtual | ~LinearEigenSystem_base () |
| Destructor for a linear system object. More... | |
| virtual void | eigensolve () |
| Solve the matrix linear eigensystem. More... | |
| void | set_calc_eigenvectors (bool flag) |
| Compute the eigenvectors in any eigenvalue computation. More... | |
| void | set_shift (const D_complex &z) |
| Set the shift value to be used in tagging. More... | |
| D_complex | get_shift () const |
| Get the shift value associated with this class (used for tagging) and eigenvalue tagging. More... | |
| virtual void | tag_eigenvalues_right (const int &val) |
| Tag those eigenvalues that are to the right of a specified shft point. More... | |
| virtual void | tag_eigenvalues_left (const int &val) |
| Tag those eigenvalues that are to the left of a specified point. More... | |
| virtual void | tag_eigenvalues_upper (const int &val) |
| Tag those eigenvalues that are in the upper half-plane above a specified point. More... | |
| virtual void | tag_eigenvalues_lower (const int &val) |
| Tag those eigenvalues that are in the lower half-plane below a specified point. More... | |
| virtual void | tag_eigenvalues_disc (const int &val, const double &radius) |
| Tag those eigenvalues that are within a disc centred at a point in the complex plane. More... | |
| virtual void | tag_eigenvalues_all () |
| Tag all the eigenvalues returned from the ARPACK routine. More... | |
| virtual void | clear_all_tags () |
| virtual DenseVector< D_complex > | get_tagged_eigenvalues () const |
| Get the the tagged eigenvalues. More... | |
| virtual DenseMatrix< D_complex > | get_tagged_eigenvectors () const |
| Get the the tagged eigenvectors. More... | |
Additional Inherited Members | |
Protected Types inherited from CppNoddy::LinearEigenSystem_base | |
| typedef std::set< unsigned, std::less< unsigned > >::iterator | iter |
| typedef std::set< unsigned, std::less< unsigned > >::const_iterator | citer |
Protected Attributes inherited from CppNoddy::LinearEigenSystem_base | |
| DenseVector< D_complex > | m_all_eigenvalues |
| storage for eigenvectors and eigenvalues More... | |
| DenseMatrix< D_complex > | m_all_eigenvectors |
| std::set< unsigned, std::less< unsigned > > | m_tagged_indices |
| a set of tagged eigenvalue indices More... | |
| D_complex | m_shift |
| The complex shift value. More... | |
| bool | m_calc_eigenvectors |
| calculate the eigenvectors in any eigenvalue computation More... | |
A linear Nth-order generalised eigensystem class.
Here we can construct a linear eigenproblem in the form
![\[ A_{NxN} \,{\underline x}_i = \lambda_i\, B_{NxN}\, {\underline x}_i \]](form_1.png)
for dense double/complex matrices 

Definition at line 19 of file DenseLinearEigenSystem.h.
| CppNoddy::DenseLinearEigenSystem< _Type >::DenseLinearEigenSystem | ( | DenseMatrix< _Type > * | Aptr, |
| DenseMatrix< _Type > * | Bptr | ||
| ) |
Constructor for a linear system object.
| Aptr | A pointer to a typed A matrix |
| Bptr | A pointer to a typed B matrix |
Definition at line 17 of file DenseLinearEigenSystem.cpp.
| CppNoddy::DenseLinearEigenSystem< _Type >::~DenseLinearEigenSystem |
Destructor for a linear system object.
Definition at line 24 of file DenseLinearEigenSystem.cpp.
|
virtual |
Solve the matrix linear eigensystem.
Reimplemented from CppNoddy::LinearEigenSystem_base.
Definition at line 28 of file DenseLinearEigenSystem.cpp.
Referenced by CppNoddy::HST::Orr_Sommerfeld::global_evp(), CppNoddy::HST::Rayleigh< _Type >::global_evp(), and main().
|
virtual |
Get the the tagged eigenvalues.
All of the tagged eigenvalues are returned in a complex vector, with no ordering guaranteed.
Reimplemented from CppNoddy::LinearEigenSystem_base.
Definition at line 337 of file DenseLinearEigenSystem.cpp.
References p, and CppNoddy::DenseVector< _Type >::push_back().
Referenced by CppNoddy::HST::Orr_Sommerfeld::global_evp(), CppNoddy::HST::Rayleigh< _Type >::global_evp(), and main().
|
virtual |
Get the the tagged eigenvectors.
All of the eigenvectors associated with the tagged eigenvalues are returned, with the i-th eigenvector corresponding to the i-th eigenvalue as returned by the get_tagged_eigenvalues method. The i-th eigenvector is returned in row i of the complex dense matrix.
Reimplemented from CppNoddy::LinearEigenSystem_base.
Definition at line 359 of file DenseLinearEigenSystem.cpp.
References p.
Referenced by CppNoddy::HST::Rayleigh< _Type >::global_evp(), and main().
|
virtual |
Tag those eigenvalues that are within a disc centred at a point in the complex plane.
| val | Tags are added or removed for val +ve or -ve |
| radius | The radius of the disc to be considered |
Reimplemented from CppNoddy::LinearEigenSystem_base.
Definition at line 386 of file DenseLinearEigenSystem.cpp.
Referenced by CppNoddy::HST::Orr_Sommerfeld::global_evp(), CppNoddy::HST::Rayleigh< _Type >::global_evp(), and main().
|
virtual |
Tag those eigenvalues that are to the left of a specified point.
| val | Tags are added or removed for val +ve or -ve |
Reimplemented from CppNoddy::LinearEigenSystem_base.
Definition at line 423 of file DenseLinearEigenSystem.cpp.
|
virtual |
Tag those eigenvalues that are in the lower half-plane below a specified point.
| val | Tags are added or removed for val +ve or -ve |
Reimplemented from CppNoddy::LinearEigenSystem_base.
Definition at line 461 of file DenseLinearEigenSystem.cpp.
|
virtual |
Tag those eigenvalues that are to the right of a specified point.
| val | Tags are added or removed for val +ve or -ve |
Reimplemented from CppNoddy::LinearEigenSystem_base.
Definition at line 404 of file DenseLinearEigenSystem.cpp.
|
virtual |
Tag those eigenvalues that are in the upper half-plane above a specified point.
| val | Tags are added or removed for val +ve or -ve |
Reimplemented from CppNoddy::LinearEigenSystem_base.
Definition at line 442 of file DenseLinearEigenSystem.cpp.
Referenced by main().
1.9.5
© 2012
R.E. Hewitt