ROL
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
ROL::Lanczos< Real > Class Template Reference

Interface for computing the Lanczos vectors and approximate solutions to symmetric indefinite linear systems. More...

#include <ROL_Lanczos.hpp>

Public Types

enum  FLAG_ITERATE : unsigned {
  FLAG_ITERATE::ITERATE_SUCCESS = 0, FLAG_ITERATE::ITERATE_SMALL_BETA, FLAG_ITERATE::ITERATE_MAX_REACHED, FLAG_ITERATE::ITERATE_ORTHO_TOL,
  FLAG_ITERATE::ITERATE_LAST
}
 
enum  FLAG_SOLVE : unsigned { FLAG_SOLVE::SOLVE_SUCCESS = 0, FLAG_SOLVE::SOLVE_ILLEGAL_VALUE, FLAG_SOLVE::SOLVE_SINGULAR_U, FLAG_SOLVE::SOLVE_LAST }
 

Public Member Functions

 Lanczos (ROL::ParameterList &PL)
 
void initialize (const V &b)
 
void initialize (const V &x0, const V &b, const LO &A, Real &tol)
 
void reset (const V &b)
 
void reset (const V &x0, const V &b, const LO &A, Real &tol)
 
FLAG_ITERATE iterate (const OP &A, Real &tol)
 
void eigenvalues (std::vector< Real > &E)
 
FLAG_SOLVE solve (V &x, Real tau=0)
 

Private Types

template<typename T >
using vector = std::vector< T >
 
typedef Vector< Real > V
 
typedef LinearOperator< Real > OP
 
typedef ROL::ParameterList PL
 

Private Member Functions

void allocate (void)
 

Private Attributes

template vector< Real > size_type uint
 
ROL::LAPACK< int, Real > lapack_
 
vector< ROL::Ptr< V > > Q_
 
vector< Real > alpha_
 
vector< Real > beta_
 
vector< Real > dl_
 
vector< Real > d_
 
vector< Real > du_
 
vector< Real > du2_
 
vector< Real > y_
 
vector< Real > work_
 
vector< int > ipiv_
 
ROL::Ptr< Vu_
 
Real max_beta_
 
Real tol_beta_
 
Real tol_ortho_
 
int maxit_
 
int k_
 

Detailed Description

template<class Real>
class ROL::Lanczos< Real >

Interface for computing the Lanczos vectors and approximate solutions to symmetric indefinite linear systems.

Definition at line 30 of file ROL_Lanczos.hpp.

Member Typedef Documentation

template<class Real >
template<typename T >
using ROL::Lanczos< Real >::vector = std::vector<T>
private

Definition at line 33 of file ROL_Lanczos.hpp.

template<class Real >
typedef Vector<Real> ROL::Lanczos< Real >::V
private

Definition at line 37 of file ROL_Lanczos.hpp.

template<class Real >
typedef LinearOperator<Real> ROL::Lanczos< Real >::OP
private

Definition at line 38 of file ROL_Lanczos.hpp.

template<class Real >
typedef ROL::ParameterList ROL::Lanczos< Real >::PL
private

Definition at line 40 of file ROL_Lanczos.hpp.

Member Enumeration Documentation

template<class Real >
enum ROL::Lanczos::FLAG_ITERATE : unsigned
strong
Enumerator
ITERATE_SUCCESS 
ITERATE_SMALL_BETA 
ITERATE_MAX_REACHED 
ITERATE_ORTHO_TOL 
ITERATE_LAST 

Definition at line 101 of file ROL_Lanczos.hpp.

template<class Real >
enum ROL::Lanczos::FLAG_SOLVE : unsigned
strong
Enumerator
SOLVE_SUCCESS 
SOLVE_ILLEGAL_VALUE 
SOLVE_SINGULAR_U 
SOLVE_LAST 

Definition at line 109 of file ROL_Lanczos.hpp.

Constructor & Destructor Documentation

template<class Real >
ROL::Lanczos< Real >::Lanczos ( ROL::ParameterList &  PL)
inline

Member Function Documentation

template<class Real >
void ROL::Lanczos< Real >::allocate ( void  )
inlineprivate
template<class Real >
void ROL::Lanczos< Real >::initialize ( const V b)
inline
template<class Real >
void ROL::Lanczos< Real >::initialize ( const V x0,
const V b,
const LO &  A,
Real &  tol 
)
inline
template<class Real >
void ROL::Lanczos< Real >::reset ( const V b)
inline
template<class Real >
void ROL::Lanczos< Real >::reset ( const V x0,
const V b,
const LO &  A,
Real &  tol 
)
inline
template<class Real >
FLAG_ITERATE ROL::Lanczos< Real >::iterate ( const OP A,
Real &  tol 
)
inline
template<class Real >
void ROL::Lanczos< Real >::eigenvalues ( std::vector< Real > &  E)
inline
template<class Real >
FLAG_SOLVE ROL::Lanczos< Real >::solve ( V x,
Real  tau = 0 
)
inline

Member Data Documentation

template<class Real >
template vector<Real> size_type ROL::Lanczos< Real >::uint
private

Definition at line 35 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::allocate(), and ROL::Lanczos< Real >::solve().

template<class Real >
ROL::LAPACK<int,Real> ROL::Lanczos< Real >::lapack_
private
template<class Real >
vector<ROL::Ptr<V> > ROL::Lanczos< Real >::Q_
private
template<class Real >
vector<Real> ROL::Lanczos< Real >::alpha_
private
template<class Real >
vector<Real> ROL::Lanczos< Real >::beta_
private
template<class Real >
vector<Real> ROL::Lanczos< Real >::dl_
private

Definition at line 51 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::allocate(), and ROL::Lanczos< Real >::solve().

template<class Real >
vector<Real> ROL::Lanczos< Real >::d_
private
template<class Real >
vector<Real> ROL::Lanczos< Real >::du_
private
template<class Real >
vector<Real> ROL::Lanczos< Real >::du2_
private

Definition at line 54 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::allocate(), and ROL::Lanczos< Real >::solve().

template<class Real >
vector<Real> ROL::Lanczos< Real >::y_
private

Definition at line 55 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::allocate(), and ROL::Lanczos< Real >::solve().

template<class Real >
vector<Real> ROL::Lanczos< Real >::work_
private
template<class Real >
vector<int> ROL::Lanczos< Real >::ipiv_
private

Definition at line 58 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::allocate(), and ROL::Lanczos< Real >::solve().

template<class Real >
ROL::Ptr<V> ROL::Lanczos< Real >::u_
private
template<class Real >
Real ROL::Lanczos< Real >::max_beta_
private

Definition at line 62 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::iterate(), and ROL::Lanczos< Real >::reset().

template<class Real >
Real ROL::Lanczos< Real >::tol_beta_
private

Definition at line 63 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::iterate(), and ROL::Lanczos< Real >::Lanczos().

template<class Real >
Real ROL::Lanczos< Real >::tol_ortho_
private

Definition at line 65 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::iterate(), and ROL::Lanczos< Real >::Lanczos().

template<class Real >
int ROL::Lanczos< Real >::maxit_
private
template<class Real >
int ROL::Lanczos< Real >::k_
private

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