Grid 0.7.0
ImplicitlyRestartedLanczos< Field > Class Template Reference

#include <ImplicitlyRestartedLanczos.h>

Public Member Functions

 ImplicitlyRestartedLanczos (LinearFunction< Field > &PolyOp, LinearFunction< Field > &HermOp, ImplicitlyRestartedLanczosTester< Field > &Tester, int _Nstop, int _Nk, int _Nm, RealD _eresid, int _MaxIter, RealD _betastp=0.0, int _MinRestart=0, int _orth_period=1, IRLdiagonalisation _diagonalisation=IRLdiagonaliseWithEigen)
 ImplicitlyRestartedLanczos (LinearFunction< Field > &PolyOp, LinearFunction< Field > &HermOp, int _Nstop, int _Nk, int _Nm, RealD _eresid, int _MaxIter, RealD _betastp=0.0, int _MinRestart=0, int _orth_period=1, IRLdiagonalisation _diagonalisation=IRLdiagonaliseWithEigen)
void orthogonalize (Field &w, std::vector< Field > &evec, int k)
void calc (std::vector< RealD > &eval, std::vector< Field > &evec, const Field &src, int &Nconv, bool reverse=false)

Static Public Member Functions

template<typename T>
static RealD normalise (T &v)

Private Member Functions

void step (std::vector< RealD > &lmd, std::vector< RealD > &lme, std::vector< Field > &evec, Field &w, int Nm, int k)
void diagonalize_Eigen (std::vector< RealD > &lmd, std::vector< RealD > &lme, int Nk, int Nm, Eigen::MatrixXd &Qt, GridBase *grid)
void QR_decomp (std::vector< RealD > &lmd, std::vector< RealD > &lme, int Nk, int Nm, Eigen::MatrixXd &Qt, RealD Dsh, int kmin, int kmax)
void diagonalize (std::vector< RealD > &lmd, std::vector< RealD > &lme, int Nk, int Nm, Eigen::MatrixXd &Qt, GridBase *grid)
void diagonalize_lapack (std::vector< RealD > &lmd, std::vector< RealD > &lme, int Nk, int Nm, Eigen::MatrixXd &Qt, GridBase *grid)
void diagonalize_QR (std::vector< RealD > &lmd, std::vector< RealD > &lme, int Nk, int Nm, Eigen::MatrixXd &Qt, GridBase *grid)

Private Attributes

const RealD small
int MaxIter
int MinRestart
int Nstop
int Nk
int Nm
IRLdiagonalisation diagonalisation
int orth_period
RealD OrthoTime
RealD eresid
RealD betastp
LinearFunction< Field > & _PolyOp
LinearFunction< Field > & _HermOp
ImplicitlyRestartedLanczosTester< Field > & _Tester
ImplicitlyRestartedLanczosHermOpTester< Field > SimpleTester

Detailed Description

template<class Field>
class ImplicitlyRestartedLanczos< Field >

Definition at line 97 of file ImplicitlyRestartedLanczos.h.

Constructor & Destructor Documentation

◆ ImplicitlyRestartedLanczos() [1/2]

template<class Field>
ImplicitlyRestartedLanczos< Field >::ImplicitlyRestartedLanczos ( LinearFunction< Field > & PolyOp,
LinearFunction< Field > & HermOp,
ImplicitlyRestartedLanczosTester< Field > & Tester,
int _Nstop,
int _Nk,
int _Nm,
RealD _eresid,
int _MaxIter,
RealD _betastp = 0.0,
int _MinRestart = 0,
int _orth_period = 1,
IRLdiagonalisation _diagonalisation = IRLdiagonaliseWithEigen )
inline

◆ ImplicitlyRestartedLanczos() [2/2]

template<class Field>
ImplicitlyRestartedLanczos< Field >::ImplicitlyRestartedLanczos ( LinearFunction< Field > & PolyOp,
LinearFunction< Field > & HermOp,
int _Nstop,
int _Nk,
int _Nm,
RealD _eresid,
int _MaxIter,
RealD _betastp = 0.0,
int _MinRestart = 0,
int _orth_period = 1,
IRLdiagonalisation _diagonalisation = IRLdiagonaliseWithEigen )
inline

Member Function Documentation

◆ normalise()

template<class Field>
template<typename T>
RealD ImplicitlyRestartedLanczos< Field >::normalise ( T & v)
inlinestatic

Definition at line 178 of file ImplicitlyRestartedLanczos.h.

References norm2().

Referenced by calc(), orthogonalize(), and step().

◆ orthogonalize()

template<class Field>
void ImplicitlyRestartedLanczos< Field >::orthogonalize ( Field & w,
std::vector< Field > & evec,
int k )
inline

Definition at line 186 of file ImplicitlyRestartedLanczos.h.

References basisOrthogonalize(), normalise(), OrthoTime, and usecond().

Referenced by step().

◆ calc()

◆ step()

template<class Field>
void ImplicitlyRestartedLanczos< Field >::step ( std::vector< RealD > & lmd,
std::vector< RealD > & lme,
std::vector< Field > & evec,
Field & w,
int Nm,
int k )
inlineprivate

◆ diagonalize_Eigen()

template<class Field>
void ImplicitlyRestartedLanczos< Field >::diagonalize_Eigen ( std::vector< RealD > & lmd,
std::vector< RealD > & lme,
int Nk,
int Nm,
Eigen::MatrixXd & Qt,
GridBase * grid )
inlineprivate

Definition at line 501 of file ImplicitlyRestartedLanczos.h.

References Nk, and Nm.

Referenced by diagonalize().

◆ QR_decomp()

template<class Field>
void ImplicitlyRestartedLanczos< Field >::QR_decomp ( std::vector< RealD > & lmd,
std::vector< RealD > & lme,
int Nk,
int Nm,
Eigen::MatrixXd & Qt,
RealD Dsh,
int kmin,
int kmax )
inlineprivate

Definition at line 527 of file ImplicitlyRestartedLanczos.h.

References Nk, and Nm.

Referenced by calc(), and diagonalize_QR().

◆ diagonalize()

template<class Field>
void ImplicitlyRestartedLanczos< Field >::diagonalize ( std::vector< RealD > & lmd,
std::vector< RealD > & lme,
int Nk,
int Nm,
Eigen::MatrixXd & Qt,
GridBase * grid )
inlineprivate

◆ diagonalize_lapack()

template<class Field>
void ImplicitlyRestartedLanczos< Field >::diagonalize_lapack ( std::vector< RealD > & lmd,
std::vector< RealD > & lme,
int Nk,
int Nm,
Eigen::MatrixXd & Qt,
GridBase * grid )
inlineprivate

◆ diagonalize_QR()

template<class Field>
void ImplicitlyRestartedLanczos< Field >::diagonalize_QR ( std::vector< RealD > & lmd,
std::vector< RealD > & lme,
int Nk,
int Nm,
Eigen::MatrixXd & Qt,
GridBase * grid )
inlineprivate

Definition at line 694 of file ImplicitlyRestartedLanczos.h.

References GridLogError, Nk, Nm, and QR_decomp().

Referenced by diagonalize().

Field Documentation

◆ small

template<class Field>
const RealD ImplicitlyRestartedLanczos< Field >::small
private

Definition at line 99 of file ImplicitlyRestartedLanczos.h.

◆ MaxIter

template<class Field>
int ImplicitlyRestartedLanczos< Field >::MaxIter
private

◆ MinRestart

template<class Field>
int ImplicitlyRestartedLanczos< Field >::MinRestart
private

◆ Nstop

template<class Field>
int ImplicitlyRestartedLanczos< Field >::Nstop
private

◆ Nk

◆ Nm

◆ diagonalisation

template<class Field>
IRLdiagonalisation ImplicitlyRestartedLanczos< Field >::diagonalisation
private

◆ orth_period

template<class Field>
int ImplicitlyRestartedLanczos< Field >::orth_period
private

◆ OrthoTime

template<class Field>
RealD ImplicitlyRestartedLanczos< Field >::OrthoTime
private

Definition at line 109 of file ImplicitlyRestartedLanczos.h.

Referenced by calc(), and orthogonalize().

◆ eresid

template<class Field>
RealD ImplicitlyRestartedLanczos< Field >::eresid
private

◆ betastp

template<class Field>
RealD ImplicitlyRestartedLanczos< Field >::betastp
private

◆ _PolyOp

template<class Field>
LinearFunction<Field>& ImplicitlyRestartedLanczos< Field >::_PolyOp
private

◆ _HermOp

template<class Field>
LinearFunction<Field>& ImplicitlyRestartedLanczos< Field >::_HermOp
private

◆ _Tester

template<class Field>
ImplicitlyRestartedLanczosTester<Field>& ImplicitlyRestartedLanczos< Field >::_Tester
private

◆ SimpleTester

template<class Field>
ImplicitlyRestartedLanczosHermOpTester<Field> ImplicitlyRestartedLanczos< Field >::SimpleTester
private

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