ergo
mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector > Class Template Reference

#include <LanczosSeveralLargestEig.h>

Public Member Functions

 LanczosSeveralLargestEig (Tmatrix const &AA, Tvector const &startVec, int num_eigs, int maxit=100, int cap=100, Tvector *deflVec_=NULL, Treal sigma_=0)
 
void setRelTol (Treal const newTol)
 
void setAbsTol (Treal const newTol)
 
void set_use_selective_orth ()
 
void set_use_full_orth ()
 
void unset_use_selective_orth ()
 
void unset_use_full_orth ()
 
virtual void run ()
 
virtual void get_ith_eigenpair (int i, Treal &eigVal, Tvector &eigVec, Treal &acc)
 
int get_num_iter () const
 
virtual ~LanczosSeveralLargestEig ()
 
void copyTridiag (MatrixTridiagSymmetric< Treal > &Tricopy)
 

Protected Member Functions

void increaseCapacity (int const newCapacity)
 
void getEigVector (Tvector &eigVec, Treal const *const eVecTri) const
 
virtual void step ()
 
virtual void computeEigenPairTri ()
 
virtual void update ()
 
void selective_orth ()
 
virtual bool converged () const
 
virtual bool converged_ith (int i) const
 

Protected Attributes

Tmatrix const & A
 
Tvector * v
 
Tvector r
 Vectors spanning Krylov subspace.
 
MatrixTridiagSymmetric< Treal > Tri
 Residual vector.
 
Treal * eigVectorTri
 
int capacity
 
int j
 
int maxIter
 Current step.
 
Treal absTol
 
Treal relTol
 
Treal * eValTmp
 
Treal * accTmp
 
int number_of_eigenv
 
int size_accTmp
 

Private Attributes

Treal alpha
 
Treal beta
 
int total_num_iter
 
bool use_selective_orth
 
bool use_full_orth
 
int counter_all
 
int counter_orth
 
Tvector * deflVec
 
Treal sigma
 

Constructor & Destructor Documentation

◆ LanczosSeveralLargestEig()

template<typename Treal, typename Tmatrix, typename Tvector>
mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::LanczosSeveralLargestEig ( Tmatrix const & AA,
Tvector const & startVec,
int num_eigs,
int maxit = 100,
int cap = 100,
Tvector * deflVec_ = NULL,
Treal sigma_ = 0 )
inline

◆ ~LanczosSeveralLargestEig()

template<typename Treal, typename Tmatrix, typename Tvector>
virtual mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::~LanczosSeveralLargestEig ( )
inlinevirtual

Member Function Documentation

◆ computeEigenPairTri()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::computeEigenPairTri ( )
protectedvirtual

◆ converged()

template<typename Treal, typename Tmatrix, typename Tvector>
bool mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged ( ) const
protectedvirtual

References converged_ith(), j, and number_of_eigenv.

Referenced by run().

◆ converged_ith()

template<typename Treal, typename Tmatrix, typename Tvector>
bool mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::converged_ith ( int i) const
protectedvirtual

References accTmp, eValTmp, relTol, size_accTmp, and template_blas_fabs().

Referenced by converged().

◆ copyTridiag()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::copyTridiag ( MatrixTridiagSymmetric< Treal > & Tricopy)
inline

References Tri.

◆ get_ith_eigenpair()

template<typename Treal, typename Tmatrix, typename Tvector>
virtual void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_ith_eigenpair ( int i,
Treal & eigVal,
Tvector & eigVec,
Treal & acc )
inlinevirtual

◆ get_num_iter()

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::get_num_iter ( ) const
inline

References total_num_iter.

Referenced by eigvec::lanczos_method().

◆ getEigVector()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::getEigVector ( Tvector & eigVec,
Treal const *const eVecTri ) const
protected

References j, mat::Matrix< Treal >::ONE, and v.

Referenced by get_ith_eigenpair(), and selective_orth().

◆ increaseCapacity()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::increaseCapacity ( int const newCapacity)
protected

References capacity, j, and v.

Referenced by step().

◆ run()

template<typename Treal, typename Tmatrix, typename Tvector>
virtual void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::run ( )
inlinevirtual

◆ selective_orth()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::selective_orth ( )
protected

◆ set_use_full_orth()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::set_use_full_orth ( )
inline

References use_full_orth.

◆ set_use_selective_orth()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::set_use_selective_orth ( )
inline

References use_selective_orth.

◆ setAbsTol()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::setAbsTol ( Treal const newTol)
inline

References absTol.

Referenced by eigvec::lanczos_method().

◆ setRelTol()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::setRelTol ( Treal const newTol)
inline

References relTol.

Referenced by eigvec::lanczos_method().

◆ step()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::step ( )
protectedvirtual

◆ unset_use_full_orth()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::unset_use_full_orth ( )
inline

References use_full_orth.

Referenced by LanczosSeveralLargestEig().

◆ unset_use_selective_orth()

template<typename Treal, typename Tmatrix, typename Tvector>
void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::unset_use_selective_orth ( )
inline

References use_selective_orth.

Referenced by LanczosSeveralLargestEig().

◆ update()

template<typename Treal, typename Tmatrix, typename Tvector>
virtual void mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::update ( )
inlineprotectedvirtual

References computeEigenPairTri().

Referenced by run().

Member Data Documentation

◆ A

template<typename Treal, typename Tmatrix, typename Tvector>
Tmatrix const& mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::A
protected

Referenced by LanczosSeveralLargestEig(), and step().

◆ absTol

template<typename Treal, typename Tmatrix, typename Tvector>
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::absTol
protected

◆ accTmp

template<typename Treal, typename Tmatrix, typename Tvector>
Treal* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::accTmp
protected

◆ alpha

template<typename Treal, typename Tmatrix, typename Tvector>
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::alpha
private

Referenced by LanczosSeveralLargestEig(), and step().

◆ beta

template<typename Treal, typename Tmatrix, typename Tvector>
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::beta
private

◆ capacity

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::capacity
protected

◆ counter_all

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::counter_all
private

◆ counter_orth

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::counter_orth
private

◆ deflVec

template<typename Treal, typename Tmatrix, typename Tvector>
Tvector* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::deflVec
private

Referenced by LanczosSeveralLargestEig(), and step().

◆ eigVectorTri

template<typename Treal, typename Tmatrix, typename Tvector>
Treal* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eigVectorTri
protected

◆ eValTmp

template<typename Treal, typename Tmatrix, typename Tvector>
Treal* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::eValTmp
protected

◆ j

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::j
protected

◆ maxIter

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::maxIter
protected

Current step.

Referenced by LanczosSeveralLargestEig(), and run().

◆ number_of_eigenv

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::number_of_eigenv
protected

◆ r

template<typename Treal, typename Tmatrix, typename Tvector>
Tvector mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::r
protected

Vectors spanning Krylov subspace.

In step j: Vectors 0 : j-2 is on file Vectors j-1 : j is in memory

Referenced by LanczosSeveralLargestEig(), and step().

◆ relTol

template<typename Treal, typename Tmatrix, typename Tvector>
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::relTol
protected

◆ sigma

template<typename Treal, typename Tmatrix, typename Tvector>
Treal mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::sigma
private

Referenced by LanczosSeveralLargestEig(), and step().

◆ size_accTmp

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::size_accTmp
protected

◆ total_num_iter

template<typename Treal, typename Tmatrix, typename Tvector>
int mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::total_num_iter
private

Referenced by get_num_iter(), and run().

◆ Tri

template<typename Treal, typename Tmatrix, typename Tvector>
MatrixTridiagSymmetric<Treal> mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::Tri
protected

Residual vector.

Referenced by computeEigenPairTri(), copyTridiag(), selective_orth(), and step().

◆ use_full_orth

template<typename Treal, typename Tmatrix, typename Tvector>
bool mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::use_full_orth
private

◆ use_selective_orth

template<typename Treal, typename Tmatrix, typename Tvector>
bool mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::use_selective_orth
private

◆ v

template<typename Treal, typename Tmatrix, typename Tvector>
Tvector* mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::v
protected

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