Eigenvalue solver using LaPack routine dgeev (Real) zgeev (Cmplx). More...

#include <SmallES.hh>

Inheritance diagram for eigensolver::SmallES< F >:
eigensolver::EigenSolver< Cmplx > concepts::OutputOperator

Public Member Functions

virtual uint converged () const
 Returns the number of converged eigenpairs: (not implemented) More...
 
virtual uint converged () const=0
 Returns the number of converged eigen pairs. More...
 
virtual const concepts::Array< concepts::Vector< F > * > & getEF ()
 Returns an array with the eigenfunctions. More...
 
virtual const concepts::Array< F > & getEV ()
 Returns an array with the real parts of the eigenvalues in the first kmax entries and the imaginary parts of the eigenvalues in the second kmax entries for real matrices and returns a complex array containing the eigenvalues for complex matrices. More...
 
virtual uint iterations () const
 Returns the number of iterations. More...
 
virtual uint iterations () const=0
 Returns the number of iterations. More...
 
 SmallES (concepts::Array< F > &A)
 Constructor. More...
 
template<class G >
 SmallES (concepts::DenseMatrix< G > &A)
 Constructor. More...
 
template<class G >
 SmallES (concepts::ElementMatrix< G > &A)
 Constructor. More...
 
template<class G >
 SmallES (concepts::Matrix< G > &A)
 Constructor. More...
 
virtual ~SmallES ()
 Destructor. More...
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream. More...
 

Private Member Functions

void compute_ ()
 Compute eigenpairs. More...
 

Private Attributes

concepts::Array< F > * A_
 Array A as described in modus. More...
 
bool computed_
 Eigenpairs computed? More...
 
concepts::Array< F > eigenvalues_
 Storage space for eigenvalues. More...
 
concepts::Array< concepts::Vector< F > * > eigenvectors_
 Storage for eigenvectors. More...
 
bool flag_
 

Detailed Description

template<typename F = Cmplx>
class eigensolver::SmallES< F >

Eigenvalue solver using LaPack routine dgeev (Real) zgeev (Cmplx).

This solver is intended to be applied to "small" general N by N matrices, e.g. for the eigenvalue computation in the DirPotIt routine. For Sparse matrices / big eigenvalue problems consider the ArPack routines. As input this solver takes: an array which represents the columnwise stored matrix: array(column 1, column 2,... column n), an ElementMatrix a Matrix IMPORTANT: If you use the real version of the algorithm, the eigenvalues are stored as an array of real values: array(Re(ev_1),...,Re(ev_n), Im(ev_1),..,Im(ev_n)). However, you can use a complex version for EementMatrix<Real> and Matrix<Real>.

Authors
: Peter Kauf, 2005 Vsevolod Shashkov, 2017

Definition at line 38 of file SmallES.hh.

Constructor & Destructor Documentation

◆ SmallES() [1/4]

template<typename F = Cmplx>
eigensolver::SmallES< F >::SmallES ( concepts::Array< F > &  A)

Constructor.

Parameters
AArray A is the matrix of which the eigenpairs have to be computed.

◆ SmallES() [2/4]

template<typename F = Cmplx>
template<class G >
eigensolver::SmallES< F >::SmallES ( concepts::Matrix< G > &  A)

Constructor.

Parameters
AMatrix A is the matrix of which the eigenpairs have to be computed.

◆ SmallES() [3/4]

template<typename F = Cmplx>
template<class G >
eigensolver::SmallES< F >::SmallES ( concepts::ElementMatrix< G > &  A)

Constructor.

Parameters
AElementMatrix A is the matrix of which the eigenpairs have to be computed.

◆ SmallES() [4/4]

template<typename F = Cmplx>
template<class G >
eigensolver::SmallES< F >::SmallES ( concepts::DenseMatrix< G > &  A)
inline

Constructor.

Parameters
ADenseMatrix A is the matrix of which the eigenpairs have to be computed.

Definition at line 66 of file SmallES.hh.

◆ ~SmallES()

template<typename F = Cmplx>
virtual eigensolver::SmallES< F >::~SmallES ( )
virtual

Destructor.

Member Function Documentation

◆ compute_()

template<typename F = Cmplx>
void eigensolver::SmallES< F >::compute_ ( )
private

Compute eigenpairs.

◆ converged() [1/2]

template<typename F = Cmplx>
virtual uint eigensolver::SmallES< F >::converged ( ) const
inlinevirtual

Returns the number of converged eigenpairs: (not implemented)

Definition at line 85 of file SmallES.hh.

◆ converged() [2/2]

virtual uint eigensolver::EigenSolver< Cmplx >::converged ( ) const
pure virtualinherited

Returns the number of converged eigen pairs.

◆ getEF()

template<typename F = Cmplx>
virtual const concepts::Array<concepts::Vector<F>*>& eigensolver::SmallES< F >::getEF ( )
virtual

Returns an array with the eigenfunctions.

Implements eigensolver::EigenSolver< Cmplx >.

◆ getEV()

template<typename F = Cmplx>
virtual const concepts::Array<F>& eigensolver::SmallES< F >::getEV ( )
virtual

Returns an array with the real parts of the eigenvalues in the first kmax entries and the imaginary parts of the eigenvalues in the second kmax entries for real matrices and returns a complex array containing the eigenvalues for complex matrices.

The last entry in both cases is the optimal size of the work array.

Implements eigensolver::EigenSolver< Cmplx >.

◆ info()

template<typename F = Cmplx>
virtual std::ostream& eigensolver::SmallES< F >::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from eigensolver::EigenSolver< Cmplx >.

◆ iterations() [1/2]

template<typename F = Cmplx>
virtual uint eigensolver::SmallES< F >::iterations ( ) const
inlinevirtual

Returns the number of iterations.

Definition at line 83 of file SmallES.hh.

◆ iterations() [2/2]

virtual uint eigensolver::EigenSolver< Cmplx >::iterations ( ) const
pure virtualinherited

Returns the number of iterations.

Member Data Documentation

◆ A_

template<typename F = Cmplx>
concepts::Array<F>* eigensolver::SmallES< F >::A_
private

Array A as described in modus.

Definition at line 91 of file SmallES.hh.

◆ computed_

template<typename F = Cmplx>
bool eigensolver::SmallES< F >::computed_
private

Eigenpairs computed?

Definition at line 97 of file SmallES.hh.

◆ eigenvalues_

template<typename F = Cmplx>
concepts::Array<F> eigensolver::SmallES< F >::eigenvalues_
private

Storage space for eigenvalues.

Definition at line 93 of file SmallES.hh.

◆ eigenvectors_

template<typename F = Cmplx>
concepts::Array<concepts::Vector<F>*> eigensolver::SmallES< F >::eigenvectors_
private

Storage for eigenvectors.

Definition at line 95 of file SmallES.hh.

◆ flag_

template<typename F = Cmplx>
bool eigensolver::SmallES< F >::flag_
private

Definition at line 89 of file SmallES.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