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

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

Fabric class for ARPACK eigenvalue solver for a constrained problem. More...

#include <arpackFabric.hh>

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

List of all members.

Public Member Functions

 ArPackFabric (int kmax=1, Real tol=0.0, const int maxiter=300, enum ArPackSymm::which target=ArPackSymm::SM, enum ArPackSymm::modus mode=ArPackSymm::REGINV, const Real sigma=0.0, const concepts::Vector< Real > *start=0)
 Constructor.
virtual ArPackSymmoperator() (concepts::Operator< Real > &stiff, concepts::Operator< Real > &mass)
 Creates an eigenvalue solver which solves the abstract eigenvalue problem defined by stiff and mass.
virtual ~ArPackFabric ()

Protected Member Functions

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

Private Member Functions

 ArPackFabric (const ArPackFabric &)
void bucklingMode_ (concepts::Operator< Real > &stiff, concepts::Operator< Real > &mass)
void cayleyMode_ (concepts::Operator< Real > &stiff, concepts::Operator< Real > &mass)
void normalMode_ (concepts::Operator< Real > &stiff, concepts::Operator< Real > &mass)
void reginvMode_ (concepts::Operator< Real > &stiff, concepts::Operator< Real > &mass)
void shiftinvMode_ (concepts::Operator< Real > &stiff, concepts::Operator< Real > &mass)

Private Attributes

std::auto_ptr
< concepts::Operator< Real > > 
B_
int kmax_
 Number of eigenpairs to be computed.
int maxiter_
 Maximum number of Arnoldi iterations allowed.
enum ArPackSymm::modus mode_
 Mode in which ARPACK should be used.
std::auto_ptr
< concepts::Operator< Real > > 
OP_
const Real sigma_
 Shift for the shift-invert, Buckling or Cayley mode.
std::auto_ptr< ArPackSymmsolver_
const concepts::Vector< Real > * start_
 Starting vector, if not given ARPACK invents one.
enum ArPackSymm::which target_
 What sort of eigenvalues to compute.
std::auto_ptr
< concepts::Operator< Real > > 
tmp1_
std::auto_ptr
< concepts::Operator< Real > > 
tmp2_
Real tol_
 Convergence tolerance for the eigenpairs.

Detailed Description

Fabric class for ARPACK eigenvalue solver for a constrained problem.

Author:
Philipp Frauenfelder, 2002
Test:

test::GolubExample

test::GolubExampleSum

test::MaxwellTransmissionEVP

Examples:

hpFEM3d-EV.cc.

Definition at line 21 of file arpackFabric.hh.


Constructor & Destructor Documentation

eigensolver::ArPackFabric::ArPackFabric ( int  kmax = 1,
Real  tol = 0.0,
const int  maxiter = 300,
enum ArPackSymm::which  target = ArPackSymm::SM,
enum ArPackSymm::modus  mode = ArPackSymm::REGINV,
const Real  sigma = 0.0,
const concepts::Vector< Real > *  start = 0 
) [inline]

Constructor.

Parameters:
kmaxNumber of eigenpairs to be computed
tolConvergence tolerance for the eigenpairs. The default value 0.0 is replaced by DLAMCH('EPS') from LAPACK.
maxiterMaximum number of Arnoldi iterations allowed
targetWhat sort of eigenvalues to compute
modeMode in which ARPACK should be used
sigmaShift for the shift-invert, Buckling or Cayley mode
startStarting vector, if not given ARPACK invents one

Definition at line 33 of file arpackFabric.hh.

virtual eigensolver::ArPackFabric::~ArPackFabric ( ) [virtual]
eigensolver::ArPackFabric::ArPackFabric ( const ArPackFabric ) [private]

Member Function Documentation

void eigensolver::ArPackFabric::bucklingMode_ ( concepts::Operator< Real > &  stiff,
concepts::Operator< Real > &  mass 
) [private]
void eigensolver::ArPackFabric::cayleyMode_ ( concepts::Operator< Real > &  stiff,
concepts::Operator< Real > &  mass 
) [private]
virtual std::ostream& eigensolver::ArPackFabric::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

void eigensolver::ArPackFabric::normalMode_ ( concepts::Operator< Real > &  stiff,
concepts::Operator< Real > &  mass 
) [private]
virtual ArPackSymm& eigensolver::ArPackFabric::operator() ( concepts::Operator< Real > &  stiff,
concepts::Operator< Real > &  mass 
) [virtual]

Creates an eigenvalue solver which solves the abstract eigenvalue problem defined by stiff and mass.

This fabric should only by used once as subsequent uses would invalidate older solvers.

Returns:
Pointer to eigenvalue solver

Implements eigensolver::SolverFabric< Real >.

void eigensolver::ArPackFabric::reginvMode_ ( concepts::Operator< Real > &  stiff,
concepts::Operator< Real > &  mass 
) [private]
void eigensolver::ArPackFabric::shiftinvMode_ ( concepts::Operator< Real > &  stiff,
concepts::Operator< Real > &  mass 
) [private]

Member Data Documentation

std::auto_ptr<concepts::Operator<Real> > eigensolver::ArPackFabric::B_ [private]

Definition at line 48 of file arpackFabric.hh.

Number of eigenpairs to be computed.

Definition at line 50 of file arpackFabric.hh.

Maximum number of Arnoldi iterations allowed.

Definition at line 52 of file arpackFabric.hh.

Mode in which ARPACK should be used.

Definition at line 58 of file arpackFabric.hh.

std::auto_ptr<concepts::Operator<Real> > eigensolver::ArPackFabric::OP_ [private]

Definition at line 48 of file arpackFabric.hh.

const Real eigensolver::ArPackFabric::sigma_ [private]

Shift for the shift-invert, Buckling or Cayley mode.

Definition at line 60 of file arpackFabric.hh.

Definition at line 47 of file arpackFabric.hh.

Starting vector, if not given ARPACK invents one.

Definition at line 62 of file arpackFabric.hh.

What sort of eigenvalues to compute.

Definition at line 56 of file arpackFabric.hh.

std::auto_ptr<concepts::Operator<Real> > eigensolver::ArPackFabric::tmp1_ [private]

Definition at line 48 of file arpackFabric.hh.

std::auto_ptr<concepts::Operator<Real> > eigensolver::ArPackFabric::tmp2_ [private]

Definition at line 48 of file arpackFabric.hh.

Convergence tolerance for the eigenpairs.

Definition at line 54 of file arpackFabric.hh.


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

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