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 (Teuchos::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 RCP = Teuchos::RCP< T >
 
template<typename T >
using vector = std::vector< T >
 
typedef Vector< Real > V
 
typedef LinearOperator< Real > OP
 
typedef Teuchos::ParameterList PL
 

Private Member Functions

void allocate (void)
 

Private Attributes

template vector< Real > size_type uint
 
Teuchos::LAPACK< int, Real > lapack_
 
vector< RCP< 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_
 
RCP< 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 65 of file ROL_Lanczos.hpp.

Member Typedef Documentation

◆ RCP

template<class Real >
template<typename T >
using ROL::Lanczos< Real >::RCP = Teuchos::RCP<T>
private

Definition at line 67 of file ROL_Lanczos.hpp.

◆ vector

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

Definition at line 68 of file ROL_Lanczos.hpp.

◆ V

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

Definition at line 72 of file ROL_Lanczos.hpp.

◆ OP

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

Definition at line 73 of file ROL_Lanczos.hpp.

◆ PL

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

Definition at line 75 of file ROL_Lanczos.hpp.

Member Enumeration Documentation

◆ FLAG_ITERATE

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 136 of file ROL_Lanczos.hpp.

◆ FLAG_SOLVE

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

Definition at line 144 of file ROL_Lanczos.hpp.

Constructor & Destructor Documentation

◆ Lanczos()

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

Definition at line 152 of file ROL_Lanczos.hpp.

Member Function Documentation

◆ allocate()

template<class Real >
void ROL::Lanczos< Real >::allocate ( void  )
inlineprivate

Definition at line 108 of file ROL_Lanczos.hpp.

References ROL::Lanczos< Real >::maxit_.

Referenced by ROL::Lanczos< Real >::initialize().

◆ initialize() [1/2]

template<class Real >
void ROL::Lanczos< Real >::initialize ( const V b)
inline

◆ initialize() [2/2]

template<class Real >
void ROL::Lanczos< Real >::initialize ( const V x0,
const V b,
const LO &  A,
Real &  tol 
)
inline

◆ reset() [1/2]

template<class Real >
void ROL::Lanczos< Real >::reset ( const V b)
inline

Definition at line 177 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::initialize().

◆ reset() [2/2]

template<class Real >
void ROL::Lanczos< Real >::reset ( const V x0,
const V b,
const LO &  A,
Real &  tol 
)
inline

Definition at line 186 of file ROL_Lanczos.hpp.

◆ iterate()

template<class Real >
FLAG_ITERATE ROL::Lanczos< Real >::iterate ( const OP A,
Real &  tol 
)
inline

◆ eigenvalues()

template<class Real >
void ROL::Lanczos< Real >::eigenvalues ( std::vector< Real > &  E)
inline

Definition at line 243 of file ROL_Lanczos.hpp.

References ROL::Lanczos< Real >::alpha_, and ROL::Lanczos< Real >::beta_.

◆ solve()

template<class Real >
FLAG_SOLVE ROL::Lanczos< Real >::solve ( V x,
Real  tau = 0 
)
inline

Definition at line 264 of file ROL_Lanczos.hpp.

References ROL::Lanczos< Real >::beta_, and ROL::Lanczos< Real >::k_.

Member Data Documentation

◆ uint

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

Definition at line 70 of file ROL_Lanczos.hpp.

◆ lapack_

template<class Real >
Teuchos::LAPACK<int,Real> ROL::Lanczos< Real >::lapack_
private

Definition at line 79 of file ROL_Lanczos.hpp.

◆ Q_

template<class Real >
vector<RCP<V> > ROL::Lanczos< Real >::Q_
private

Definition at line 81 of file ROL_Lanczos.hpp.

◆ alpha_

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

Definition at line 82 of file ROL_Lanczos.hpp.

Referenced by ROL::Lanczos< Real >::eigenvalues().

◆ beta_

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

◆ dl_

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

Definition at line 86 of file ROL_Lanczos.hpp.

◆ d_

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

Definition at line 87 of file ROL_Lanczos.hpp.

◆ du_

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

Definition at line 88 of file ROL_Lanczos.hpp.

◆ du2_

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

Definition at line 89 of file ROL_Lanczos.hpp.

◆ y_

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

Definition at line 90 of file ROL_Lanczos.hpp.

◆ work_

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

Definition at line 92 of file ROL_Lanczos.hpp.

◆ ipiv_

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

Definition at line 93 of file ROL_Lanczos.hpp.

◆ u_

template<class Real >
RCP<V> ROL::Lanczos< Real >::u_
private

Definition at line 95 of file ROL_Lanczos.hpp.

◆ max_beta_

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

Definition at line 97 of file ROL_Lanczos.hpp.

◆ tol_beta_

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

Definition at line 98 of file ROL_Lanczos.hpp.

◆ tol_ortho_

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

Definition at line 100 of file ROL_Lanczos.hpp.

◆ maxit_

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

Definition at line 102 of file ROL_Lanczos.hpp.

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

◆ k_

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

Definition at line 104 of file ROL_Lanczos.hpp.

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


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