Solves a generalized eigenvalue problem subject to linear, homogeneous constraints. More...
#include <constrained.hh>


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. 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. | |
Solves a generalized eigenvalue problem subject to linear, homogeneous constraints.
This class solve a generalized eigenvalue problem of the form
subject to the constraints
where
and
. This is important for solving eigenvalue problems with essential boundary conditions like
.
For the case
, this is described in [1 section 12.6, 2]. For the much more complicated case of
, see [3, 4]. The first case should be sufficient for most applications.
Definition at line 51 of file constrained.hh.
| eigensolver::Constrained::Constrained | ( | concepts::Operator< Real > & | A, |
| concepts::Operator< Real > & | M, | ||
| const concepts::SparseMatrix< Real > & | C, | ||
| SolverFabric< Real > & | solver | ||
| ) | [inline] |
Constructor.
| A | Matrix |
| M | Matrix |
| C | Matrix of constraints |
| solver | Fabric for the eigenvalue solver |
Definition at line 59 of file constrained.hh.
| virtual eigensolver::Constrained::~Constrained | ( | ) | [virtual] |
| void eigensolver::Constrained::compute_ | ( | ) | [private] |
| 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] |
Implements eigensolver::EigenSolver< Real >.
| virtual const concepts::Array<Real>& eigensolver::Constrained::getEV | ( | ) | [virtual] |
Returns an array with the eigen values.
(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.
concepts::Operator<Real>& eigensolver::Constrained::A_ [private] |
Stiffness matrix.
Definition at line 86 of file constrained.hh.
const concepts::SparseMatrix<Real>& eigensolver::Constrained::C_ [private] |
Matrix of constraints.
is enforced.
Definition at line 90 of file constrained.hh.
bool eigensolver::Constrained::computed_ [private] |
If false, the code will have to compute, otherwise not.
Definition at line 83 of file constrained.hh.
concepts::Array<Real> eigensolver::Constrained::eigenvectors_ [private] |
Storage space for eigenvectors.
Definition at line 95 of file constrained.hh.
concepts::Array<concepts::Vector<Real>*> eigensolver::Constrained::ev_ [private] |
References into storage for eigenvectors.
Definition at line 97 of file constrained.hh.
concepts::TrivExtendRestrict<Real>* eigensolver::Constrained::ext [private] |
Definition at line 105 of file constrained.hh.
uint eigensolver::Constrained::it_ [private] |
Statistics.
Definition at line 111 of file constrained.hh.
uint eigensolver::Constrained::k_conv_ [private] |
Definition at line 111 of file constrained.hh.
uint eigensolver::Constrained::kmax_ [private] |
Maximal number of eigenvalues which can be computed.
Definition at line 100 of file constrained.hh.
concepts::Array<Real> eigensolver::Constrained::lambda_ [private] |
Storage space for eigenvalues.
Definition at line 93 of file constrained.hh.
concepts::Operator<Real>& eigensolver::Constrained::M_ [private] |
Mass matrix.
Definition at line 88 of file constrained.hh.
concepts::Permutation<Real>* eigensolver::Constrained::Pr [private] |
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.
sparseqr::GivensRotations<Real> * eigensolver::Constrained::Qg [private] |
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.
sparseqr::GivensRotations<Real>* eigensolver::Constrained::Qgt [private] |
Definition at line 104 of file constrained.hh.
concepts::TrivExtendRestrict<Real> * eigensolver::Constrained::restr [private] |
Definition at line 105 of file constrained.hh.
std::auto_ptr<concepts::Compose<Real> > eigensolver::Constrained::restrPrQgt [private] |
Definition at line 106 of file constrained.hh.
std::auto_ptr<concepts::Compose<Real> > eigensolver::Constrained::restrPrQgtA [private] |
Definition at line 106 of file constrained.hh.
std::auto_ptr<concepts::Compose<Real> > eigensolver::Constrained::restrPrQgtAQgPrtext [private] |
Definition at line 106 of file constrained.hh.
std::auto_ptr<concepts::Compose<Real> > eigensolver::Constrained::restrPrQgtM [private] |
Definition at line 106 of file constrained.hh.
std::auto_ptr<concepts::Compose<Real> > eigensolver::Constrained::restrPrQgtMQgPrtext [private] |
Definition at line 106 of file constrained.hh.
SolverFabric<Real>& eigensolver::Constrained::solver_ [private] |
Fabric for the eigenvalue solver.
Definition at line 76 of file constrained.hh.