Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
eigensolver::Constrained Class Reference

Solves a generalized eigenvalue problem subject to linear, homogeneous constraints. More...

#include <constrained.hh>

Inheritance diagram for eigensolver::Constrained:
Inheritance graph
[legend]
Collaboration diagram for eigensolver::Constrained:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Constrained (concepts::Operator< Real > &A, concepts::Operator< Real > &M, const concepts::SparseMatrix< Real > &C, SolverFabric< Real > &solver)
 Constructor.
virtual uint converged () const
 Returns the number of converged eigen pairs.
virtual const concepts::Array
< concepts::Vector< Real > * > & 
getEF ()
virtual const concepts::Array
< Real > & 
getEV ()
 Returns an array with the eigen values.
virtual uint iterations () const
 Returns the number of iterations.
virtual ~Constrained ()

Protected Member Functions

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

Private Member Functions

void compute_ ()
 The real compute routine.

Private Attributes

concepts::Operator< Real > & A_
 Stiffness matrix.
const concepts::SparseMatrix
< Real > & 
C_
 Matrix of constraints. $ C^\top \vec x = g = 0 $ is enforced.
bool computed_
 If false, the code will have to compute, otherwise not.
concepts::Array< Real > eigenvectors_
 Storage space for eigenvectors.
concepts::Array
< concepts::Vector< Real > * > 
ev_
 References into storage for eigenvectors.
concepts::TrivExtendRestrict
< Real > * 
ext
uint it_
 Statistics.
uint k_conv_
uint kmax_
 Maximal number of eigenvalues which can be computed.
concepts::Array< Real > lambda_
 Storage space for eigenvalues.
concepts::Operator< Real > & M_
 Mass matrix.
concepts::Permutation< Real > * Pr
std::auto_ptr
< concepts::Compose< Real > > 
PrQgt
std::auto_ptr
< concepts::Permutation< Real > > 
Prt
sparseqr::GivensRotations< Real > * Qg
std::auto_ptr
< concepts::Compose< Real > > 
QgPrt
std::auto_ptr
< concepts::Compose< Real > > 
QgPrtext
sparseqr::GivensRotations< Real > * Qgt
concepts::TrivExtendRestrict
< Real > * 
restr
std::auto_ptr
< concepts::Compose< Real > > 
restrPrQgt
std::auto_ptr
< concepts::Compose< Real > > 
restrPrQgtA
std::auto_ptr
< concepts::Compose< Real > > 
restrPrQgtAQgPrtext
std::auto_ptr
< concepts::Compose< Real > > 
restrPrQgtM
std::auto_ptr
< concepts::Compose< Real > > 
restrPrQgtMQgPrtext
SolverFabric< Real > & solver_
 Fabric for the eigenvalue solver.

Detailed Description

Solves a generalized eigenvalue problem subject to linear, homogeneous constraints.

This class solve a generalized eigenvalue problem of the form

\[ A \vec x = \lambda M \vec x \]

subject to the constraints $ C^\top \vec x = g = 0 $ where $ C \in R^{n \times m} $ and $ A, M \in R^{n \times n} $. This is important for solving eigenvalue problems with essential boundary conditions like $ \vec u \times \vec n = 0 $.

For the case $ g = 0 $, this is described in [1 section 12.6, 2]. For the much more complicated case of $ g \neq 0 $, see [3, 4]. The first case should be sufficient for most applications.

See also:
[1] Gene H. Golub and Charles F. van Loan, Matrix Computations, The Johns Hopkins University Press, 1983.
[2] Gene H. Golub, Some Modified Matrix Eigenvalue Problems, SIAM Review, 15 (1973), No. 2, 318--334.
[3] Walter Gander, Gene H. Golub and Urs von Matt, A Constrained Eigenvalue Problem, in Numerical Linear Algebra, Digital Signal Processing and Parallel Algorithms, Gene H. Golub and P. Van Dooren (eds.), NATO ASI Series, Vol. F70, 1991, 677--686.
[4] Walter Gander, Gene H. Golub and Urs von Matt, A Constrained Eigenvalue Problem, Linear Algebra and Its Applications, 114/115 (1989), 815--839.
Test:
test::ConstrainedEVP
Author:
Philipp Frauenfelder, 2002

Definition at line 51 of file constrained.hh.


Constructor & Destructor Documentation

eigensolver::Constrained::Constrained ( concepts::Operator< Real > &  A,
concepts::Operator< Real > &  M,
const concepts::SparseMatrix< Real > &  C,
SolverFabric< Real > &  solver 
) [inline]

Constructor.

Parameters:
AMatrix
MMatrix
CMatrix of constraints
solverFabric for the eigenvalue solver

Definition at line 59 of file constrained.hh.

virtual eigensolver::Constrained::~Constrained ( ) [virtual]

Member Function Documentation

void eigensolver::Constrained::compute_ ( ) [private]

The real compute routine.

Fills lambda_ and ev_

See also:
computed_
virtual uint eigensolver::Constrained::converged ( ) const [inline, virtual]

Returns the number of converged eigen pairs.

Implements eigensolver::EigenSolver< Real >.

Definition at line 71 of file constrained.hh.

virtual const concepts::Array<concepts::Vector<Real>*>& eigensolver::Constrained::getEF ( ) [virtual]
virtual const concepts::Array<Real>& eigensolver::Constrained::getEV ( ) [virtual]

Returns an array with the eigen values.

Deprecated:
: this interface requires that the returned array must be hold as a member variable of the class.

(use std::auto_pointer or similar)

Implements eigensolver::EigenSolver< Real >.

virtual std::ostream& eigensolver::Constrained::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Reimplemented from eigensolver::EigenSolver< Real >.

virtual uint eigensolver::Constrained::iterations ( ) const [inline, virtual]

Returns the number of iterations.

Implements eigensolver::EigenSolver< Real >.

Definition at line 70 of file constrained.hh.


Member Data Documentation

Stiffness matrix.

Definition at line 86 of file constrained.hh.

Matrix of constraints. $ C^\top \vec x = g = 0 $ is enforced.

Definition at line 90 of file constrained.hh.

If false, the code will have to compute, otherwise not.

Definition at line 83 of file constrained.hh.

Storage space for eigenvectors.

Definition at line 95 of file constrained.hh.

References into storage for eigenvectors.

Definition at line 97 of file constrained.hh.

Definition at line 105 of file constrained.hh.

Statistics.

Definition at line 111 of file constrained.hh.

Definition at line 111 of file constrained.hh.

Maximal number of eigenvalues which can be computed.

Definition at line 100 of file constrained.hh.

Storage space for eigenvalues.

Definition at line 93 of file constrained.hh.

Mass matrix.

Definition at line 88 of file constrained.hh.

Definition at line 102 of file constrained.hh.

std::auto_ptr<concepts::Compose<Real> > eigensolver::Constrained::PrQgt [private]

Definition at line 106 of file constrained.hh.

std::auto_ptr<concepts::Permutation<Real> > eigensolver::Constrained::Prt [private]

Definition at line 103 of file constrained.hh.

Definition at line 104 of file constrained.hh.

std::auto_ptr<concepts::Compose<Real> > eigensolver::Constrained::QgPrt [private]

Definition at line 106 of file constrained.hh.

std::auto_ptr<concepts::Compose<Real> > eigensolver::Constrained::QgPrtext [private]

Definition at line 106 of file constrained.hh.

Definition at line 104 of file constrained.hh.

Definition at line 105 of file constrained.hh.

Definition at line 106 of file constrained.hh.

Definition at line 106 of file constrained.hh.

Definition at line 106 of file constrained.hh.

Definition at line 106 of file constrained.hh.

Definition at line 106 of file constrained.hh.

Fabric for the eigenvalue solver.

Definition at line 76 of file constrained.hh.


The documentation for this class was generated from the following file:

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)