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... | |
![]() | |
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 | |
![]() | |
typedef std::set< unsigned, std::less< unsigned > >::iterator | iter |
typedef std::set< unsigned, std::less< unsigned > >::const_iterator | citer |
![]() | |
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
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().
© 2012
R.E. Hewitt