Class documentation of Concepts

Loading...
Searching...
No Matches

#include <jdbsym.hh>

Inheritance diagram for eigensolver::JdbSym:
eigensolver::EigenSolver< Real > concepts::OutputOperator

Public Member Functions

 JdbSym (concepts::Operator< Real > &stiff, concepts::Operator< Real > &mass, Real tol, uint maxit=150, Real tau=0.0, uint jdtype=1, uint kmax=1, concepts::SolverFabric< Real > *fabric=0, const concepts::Array< concepts::Vector< Real > * > *start=0)
 
virtual const concepts::Array< Real > & getEV ()
 
virtual const concepts::Array< concepts::Vector< Real > * > & getEF ()
 
virtual uint iterations () const
 Returns the number of iterations.
 
virtual uint converged () const
 Returns the number of converged eigen pairs.
 

Protected Member Functions

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

Detailed Description

Eigenvalue solver using JDBSYM.

JDBSYM is an implementation of the Jacobi-Davidson method optimized for symmetric eigenvalue problems. It solves eigenproblems of the form $ A x = \lambda x $ and $ A x = \lambda B x $ with or without preconditioning, where A is symmetric and B is symmetric positive definite. The implementation supports blocking.

See also
Roman Geus and Oscar Chinellato, JDBSYM 0.14, 2000.
Roman Geus. The Jacobi-Davidson algorithm for solving large sparse symmetric eigenvalue problems with application to the design of accelerator cavities. PhD thesis 14734, Swiss Federal Institute of Technology Zurich, 2002.
Test:

test::GolubExample

test::GolubExampleSum

test::MaxwellTransmissionEVP

Author
Norbert Fernandes, 2002

Definition at line 48 of file jdbsym.hh.

Constructor & Destructor Documentation

◆ JdbSym()

eigensolver::JdbSym::JdbSym ( concepts::Operator< Real > &  stiff,
concepts::Operator< Real > &  mass,
Real  tol,
uint  maxit = 150,
Real  tau = 0.0,
uint  jdtype = 1,
uint  kmax = 1,
concepts::SolverFabric< Real > *  fabric = 0,
const concepts::Array< concepts::Vector< Real > * > *  start = 0 
)

Constructor. Initializes the JdbSym class. As parameter it takes the few most important variables that are needed for the Jacobi-Davidson algorithm. The rest of the parameters are given as default and work in most cases. The class then solves the problem $ A x = \lambda B x $ where A, B are the stiffness and the mass matrices respectively.

The computation is only perfomed if getEV or getEF is called.

Parameters
stiffStiffness matrix A
massMass matrix B
fabricSolver fabric for a linear solver (preconditioner for the shifted stiffness matrix)
tolConvergence tolerance for the eigenpairs. For a pair $ (\lambda, u) $ convergence is defined by $ \| A u - \lambda B u \| < tol $
maxitMaximal number of iterations
tauTarget value of Jacobi-Davidson algorithm. The code will find the kmax eigenvalues closest to tau.
jdtypeType of solver required. An older solver and a newer solver are possible to use.
kmaxNumber of eigenpairs to be computed
startStarting vectors. Used to build the initial search subspace

Member Function Documentation

◆ converged()

virtual uint eigensolver::JdbSym::converged ( ) const
inlinevirtual

Returns the number of converged eigen pairs.

Implements eigensolver::EigenSolver< Real >.

Definition at line 84 of file jdbsym.hh.

◆ getEF()

virtual const concepts::Array< concepts::Vector< Real > * > & eigensolver::JdbSym::getEF ( )
virtual

◆ getEV()

virtual const concepts::Array< Real > & eigensolver::JdbSym::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 >.

◆ info()

virtual std::ostream & eigensolver::JdbSym::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from eigensolver::EigenSolver< Real >.

◆ iterations()

virtual uint eigensolver::JdbSym::iterations ( ) const
inlinevirtual

Returns the number of iterations.

Implements eigensolver::EigenSolver< Real >.

Definition at line 83 of file jdbsym.hh.


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