4#ifndef LINEAREIGENSYSTEM_BASE_H
5#define LINEAREIGENSYSTEM_BASE_H
23 < unsigned, std::less<unsigned> >::iterator
iter;
25 < unsigned, std::less<unsigned> >::const_iterator
citer;
A matrix class that constructs a DENSE matrix as a row major std::vector of DenseVectors.
An DenseVector class – a dense vector object.
A linear Nth-order generalised eigensystem base class.
virtual DenseMatrix< D_complex > get_tagged_eigenvectors() const
Get the the tagged eigenvectors.
std::set< unsigned, std::less< unsigned > >::const_iterator citer
virtual void tag_eigenvalues_right(const int &val)
Tag those eigenvalues that are to the right of a specified shft point.
virtual void tag_eigenvalues_all()
Tag all the eigenvalues returned from the ARPACK routine.
virtual void tag_eigenvalues_lower(const int &val)
Tag those eigenvalues that are in the lower half-plane below a specified point.
D_complex m_shift
The complex shift value.
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.
std::set< unsigned, std::less< unsigned > >::iterator iter
DenseVector< D_complex > m_all_eigenvalues
storage for eigenvectors and eigenvalues
virtual void tag_eigenvalues_left(const int &val)
Tag those eigenvalues that are to the left of a specified point.
std::set< unsigned, std::less< unsigned > > m_tagged_indices
a set of tagged eigenvalue indices
virtual void eigensolve()
Solve the matrix linear eigensystem.
D_complex get_shift() const
Get the shift value associated with this class (used for tagging) and eigenvalue tagging.
bool m_calc_eigenvectors
calculate the eigenvectors in any eigenvalue computation
virtual ~LinearEigenSystem_base()
Destructor for a linear system object.
LinearEigenSystem_base()
Constructor for a linear system object.
virtual void clear_all_tags()
void set_shift(const D_complex &z)
Set the shift value to be used in tagging.
void set_calc_eigenvectors(bool flag)
Compute the eigenvectors in any eigenvalue computation.
DenseMatrix< D_complex > m_all_eigenvectors
virtual DenseVector< D_complex > get_tagged_eigenvalues() const
Get the the tagged eigenvalues.
virtual void tag_eigenvalues_upper(const int &val)
Tag those eigenvalues that are in the upper half-plane above a specified point.
A collection of OO numerical routines aimed at simple (typical) applied problems in continuum mechani...
std::complex< double > D_complex
A complex double precision number using std::complex.