eigensolver::JdbSymFabric Class Referenceabstract

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

#include <jdbsymFabric.hh>

Inheritance diagram for eigensolver::JdbSymFabric:
eigensolver::SolverFabric< F > concepts::OutputOperator

Public Member Functions

 JdbSymFabric (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. More...
 
virtual EigenSolver< F > & operator() (concepts::Operator< F > &stiff, concepts::Operator< Real > &mass)=0
 Creates an eigenvalue solver which solves the abstract eigenvalue problem defined by stiff and mass. More...
 
virtual JdbSymoperator() (concepts::Operator< Real > &stiff, concepts::Operator< Real > &mass)
 
virtual ~JdbSymFabric ()
 

Protected Member Functions

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

Private Attributes

concepts::SolverFabric< Real > * fabric_
 
uint jdtype_
 
uint kmax_
 
uint maxit_
 
std::unique_ptr< JdbSymsolver_
 Real eigenvalue solver. More...
 
const concepts::Array< concepts::Vector< Real > * > * start_
 
Real tau_
 
Real tol_
 

Detailed Description

Fabric class for JdbSym eigenvalue solver for a constrained problem.

Author
Philipp Frauenfelder, 2002
Test:

test::GolubExample

test::GolubExampleSum

test::MaxwellTransmissionEVP

Definition at line 23 of file jdbsymFabric.hh.

Constructor & Destructor Documentation

◆ JdbSymFabric()

eigensolver::JdbSymFabric::JdbSymFabric ( 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 
)
inline

Constructor.

Parameters
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 $
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

Definition at line 39 of file jdbsymFabric.hh.

◆ ~JdbSymFabric()

virtual eigensolver::JdbSymFabric::~JdbSymFabric ( )
virtual

Member Function Documentation

◆ info()

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

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

◆ operator()() [1/2]

template<typename F >
virtual EigenSolver<F>& eigensolver::SolverFabric< F >::operator() ( concepts::Operator< F > &  stiff,
concepts::Operator< Real > &  mass 
)
pure virtualinherited

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

Implemented in eigensolver::ArPackFabric.

◆ operator()() [2/2]

virtual JdbSym& eigensolver::JdbSymFabric::operator() ( concepts::Operator< Real > &  stiff,
concepts::Operator< Real > &  mass 
)
virtual

Member Data Documentation

◆ fabric_

concepts::SolverFabric<Real>* eigensolver::JdbSymFabric::fabric_
private

Definition at line 55 of file jdbsymFabric.hh.

◆ jdtype_

uint eigensolver::JdbSymFabric::jdtype_
private

Definition at line 54 of file jdbsymFabric.hh.

◆ kmax_

uint eigensolver::JdbSymFabric::kmax_
private

Definition at line 54 of file jdbsymFabric.hh.

◆ maxit_

uint eigensolver::JdbSymFabric::maxit_
private

Definition at line 54 of file jdbsymFabric.hh.

◆ solver_

std::unique_ptr<JdbSym> eigensolver::JdbSymFabric::solver_
private

Real eigenvalue solver.

Definition at line 52 of file jdbsymFabric.hh.

◆ start_

const concepts::Array<concepts::Vector<Real>*>* eigensolver::JdbSymFabric::start_
private

Definition at line 56 of file jdbsymFabric.hh.

◆ tau_

Real eigensolver::JdbSymFabric::tau_
private

Definition at line 53 of file jdbsymFabric.hh.

◆ tol_

Real eigensolver::JdbSymFabric::tol_
private

Definition at line 53 of file jdbsymFabric.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