Grid 0.7.0
Grid::ImplicitlyRestartedBlockLanczos< Field > Class Template Reference

#include <ImplicitlyRestartedBlockLanczos.h>

Public Member Functions

 ImplicitlyRestartedBlockLanczos (LinearOperatorBase< Field > &Linop, LinearOperatorBase< Field > &SLinop, GridRedBlackCartesian *FrbGrid, GridRedBlackCartesian *SFrbGrid, int _mrhs, OperatorFunction< Field > &poly, int _Nstop, int _Nconv_test_interval, int _Nu, int _Nk, int _Nm, RealD _eresid, int _MaxIter, IRBLdiagonalisation _diagonalisation=IRBLdiagonaliseWithEigen)
void orthogonalize (Field &w, std::vector< Field > &evec, int k, int if_print=0)
void reorthogonalize (Field &w, std::vector< Field > &evec, int k)
void orthogonalize (std::vector< Field > &w, int _Nu, std::vector< Field > &evec, int k, int if_print=0)
void orthogonalize_blas (std::vector< Field > &w, std::vector< Field > &evec, int R, int do_print=0)
void orthogonalize_blockhead (Field &w, std::vector< Field > &evec, int k, int Nu)
void calc (std::vector< RealD > &eval, std::vector< Field > &evec, const std::vector< Field > &src, int &Nconv, LanczosType Impl)
void calc_irbl (std::vector< RealD > &eval, std::vector< Field > &evec, const std::vector< Field > &src, int &Nconv)
void calc_rbl (std::vector< RealD > &eval, std::vector< Field > &evec, const std::vector< Field > &src, int &Nconv)

Static Public Member Functions

static RealD normalize (Field &v, int if_print=0)

Data Fields

int split_test

Private Member Functions

void blockwiseStep (std::vector< std::vector< ComplexD > > &lmd, std::vector< std::vector< ComplexD > > &lme, std::vector< Field > &evec, std::vector< Field > &w, std::vector< Field > &w_copy, int b)
void diagonalize_Eigen (std::vector< RealD > &eval, std::vector< std::vector< ComplexD > > &lmd, std::vector< std::vector< ComplexD > > &lme, int Nu, int Nk, int Nm, Eigen::MatrixXcd &Qt, GridBase *grid)
void diagonalize (std::vector< RealD > &eval, std::vector< std::vector< ComplexD > > &lmd, std::vector< std::vector< ComplexD > > &lme, int Nu, int Nk, int Nm, Eigen::MatrixXcd &Qt, GridBase *grid)
void unpackHermitBlockTriDiagMatToEigen (std::vector< std::vector< ComplexD > > &lmd, std::vector< std::vector< ComplexD > > &lme, int Nu, int Nb, int Nk, int Nm, Eigen::MatrixXcd &M)
void packHermitBlockTriDiagMatfromEigen (std::vector< std::vector< ComplexD > > &lmd, std::vector< std::vector< ComplexD > > &lme, int Nu, int Nb, int Nk, int Nm, Eigen::MatrixXcd &M)
void shiftedQRDecompEigen (Eigen::MatrixXcd &M, int Nu, int Nm, RealD Dsh, Eigen::MatrixXcd &Qprod)
void exampleQRDecompEigen (void)

Private Attributes

std::string cname
int MaxIter
int Nstop
int Nu
int Nk
int Nm
int Nblock_k
int Nblock_m
int Nconv_test_interval
RealD eresid
IRBLdiagonalisation diagonalisation
SortEigen< Field > _sort
LinearOperatorBase< Field > & _Linop
LinearOperatorBase< Field > & _SLinop
OperatorFunction< Field > & _poly
GridRedBlackCartesianf_grid
GridRedBlackCartesiansf_grid
int mrhs
int Nevec_acc

Detailed Description

template<class Field>
class Grid::ImplicitlyRestartedBlockLanczos< Field >

Definition at line 117 of file ImplicitlyRestartedBlockLanczos.h.

Constructor & Destructor Documentation

◆ ImplicitlyRestartedBlockLanczos()

template<class Field>
Grid::ImplicitlyRestartedBlockLanczos< Field >::ImplicitlyRestartedBlockLanczos ( LinearOperatorBase< Field > & Linop,
LinearOperatorBase< Field > & SLinop,
GridRedBlackCartesian * FrbGrid,
GridRedBlackCartesian * SFrbGrid,
int _mrhs,
OperatorFunction< Field > & poly,
int _Nstop,
int _Nconv_test_interval,
int _Nu,
int _Nk,
int _Nm,
RealD _eresid,
int _MaxIter,
IRBLdiagonalisation _diagonalisation = IRBLdiagonaliseWithEigen )
inline

Member Function Documentation

◆ normalize()

template<class Field>
RealD Grid::ImplicitlyRestartedBlockLanczos< Field >::normalize ( Field & v,
int if_print = 0 )
inlinestatic

◆ orthogonalize() [1/2]

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::orthogonalize ( Field & w,
std::vector< Field > & evec,
int k,
int if_print = 0 )
inline

◆ reorthogonalize()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::reorthogonalize ( Field & w,
std::vector< Field > & evec,
int k )
inline

Definition at line 211 of file ImplicitlyRestartedBlockLanczos.h.

References orthogonalize().

◆ orthogonalize() [2/2]

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::orthogonalize ( std::vector< Field > & w,
int _Nu,
std::vector< Field > & evec,
int k,
int if_print = 0 )
inline

Definition at line 216 of file ImplicitlyRestartedBlockLanczos.h.

References innerProduct(), and normalize().

◆ orthogonalize_blas()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::orthogonalize_blas ( std::vector< Field > & w,
std::vector< Field > & evec,
int R,
int do_print = 0 )
inline

◆ orthogonalize_blockhead()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::orthogonalize_blockhead ( Field & w,
std::vector< Field > & evec,
int k,
int Nu )
inline

Definition at line 321 of file ImplicitlyRestartedBlockLanczos.h.

References innerProduct(), normalize(), and Nu.

◆ calc()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::calc ( std::vector< RealD > & eval,
std::vector< Field > & evec,
const std::vector< Field > & src,
int & Nconv,
LanczosType Impl )
inline

◆ calc_irbl()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::calc_irbl ( std::vector< RealD > & eval,
std::vector< Field > & evec,
const std::vector< Field > & src,
int & Nconv )
inline

◆ calc_rbl()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::calc_rbl ( std::vector< RealD > & eval,
std::vector< Field > & evec,
const std::vector< Field > & src,
int & Nconv )
inline

◆ blockwiseStep()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::blockwiseStep ( std::vector< std::vector< ComplexD > > & lmd,
std::vector< std::vector< ComplexD > > & lme,
std::vector< Field > & evec,
std::vector< Field > & w,
std::vector< Field > & w_copy,
int b )
inlineprivate

◆ diagonalize_Eigen()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::diagonalize_Eigen ( std::vector< RealD > & eval,
std::vector< std::vector< ComplexD > > & lmd,
std::vector< std::vector< ComplexD > > & lme,
int Nu,
int Nk,
int Nm,
Eigen::MatrixXcd & Qt,
GridBase * grid )
inlineprivate

Definition at line 925 of file ImplicitlyRestartedBlockLanczos.h.

References conjugate(), eval(), Nk, Nm, and Nu.

Referenced by diagonalize().

◆ diagonalize()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::diagonalize ( std::vector< RealD > & eval,
std::vector< std::vector< ComplexD > > & lmd,
std::vector< std::vector< ComplexD > > & lme,
int Nu,
int Nk,
int Nm,
Eigen::MatrixXcd & Qt,
GridBase * grid )
inlineprivate

◆ unpackHermitBlockTriDiagMatToEigen()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::unpackHermitBlockTriDiagMatToEigen ( std::vector< std::vector< ComplexD > > & lmd,
std::vector< std::vector< ComplexD > > & lme,
int Nu,
int Nb,
int Nk,
int Nm,
Eigen::MatrixXcd & M )
inlineprivate

Definition at line 1127 of file ImplicitlyRestartedBlockLanczos.h.

References conjugate(), Nk, Nm, and Nu.

Referenced by calc_irbl().

◆ packHermitBlockTriDiagMatfromEigen()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::packHermitBlockTriDiagMatfromEigen ( std::vector< std::vector< ComplexD > > & lmd,
std::vector< std::vector< ComplexD > > & lme,
int Nu,
int Nb,
int Nk,
int Nm,
Eigen::MatrixXcd & M )
inlineprivate

Definition at line 1155 of file ImplicitlyRestartedBlockLanczos.h.

References Nk, Nm, and Nu.

Referenced by calc_irbl().

◆ shiftedQRDecompEigen()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::shiftedQRDecompEigen ( Eigen::MatrixXcd & M,
int Nu,
int Nm,
RealD Dsh,
Eigen::MatrixXcd & Qprod )
inlineprivate

Definition at line 1182 of file ImplicitlyRestartedBlockLanczos.h.

References conj, Nm, Nu, and real().

Referenced by calc_irbl().

◆ exampleQRDecompEigen()

template<class Field>
void Grid::ImplicitlyRestartedBlockLanczos< Field >::exampleQRDecompEigen ( void )
inlineprivate

Definition at line 1280 of file ImplicitlyRestartedBlockLanczos.h.

References Glog.

Field Documentation

◆ cname

template<class Field>
std::string Grid::ImplicitlyRestartedBlockLanczos< Field >::cname
private

Definition at line 121 of file ImplicitlyRestartedBlockLanczos.h.

Referenced by calc_irbl(), and calc_rbl().

◆ MaxIter

template<class Field>
int Grid::ImplicitlyRestartedBlockLanczos< Field >::MaxIter
private

◆ Nstop

template<class Field>
int Grid::ImplicitlyRestartedBlockLanczos< Field >::Nstop
private

◆ Nu

◆ Nk

◆ Nm

◆ Nblock_k

template<class Field>
int Grid::ImplicitlyRestartedBlockLanczos< Field >::Nblock_k
private

◆ Nblock_m

template<class Field>
int Grid::ImplicitlyRestartedBlockLanczos< Field >::Nblock_m
private

◆ Nconv_test_interval

template<class Field>
int Grid::ImplicitlyRestartedBlockLanczos< Field >::Nconv_test_interval
private

Definition at line 129 of file ImplicitlyRestartedBlockLanczos.h.

Referenced by calc_rbl(), and ImplicitlyRestartedBlockLanczos().

◆ eresid

template<class Field>
RealD Grid::ImplicitlyRestartedBlockLanczos< Field >::eresid
private

◆ diagonalisation

template<class Field>
IRBLdiagonalisation Grid::ImplicitlyRestartedBlockLanczos< Field >::diagonalisation
private

◆ _sort

template<class Field>
SortEigen<Field> Grid::ImplicitlyRestartedBlockLanczos< Field >::_sort
private

Definition at line 135 of file ImplicitlyRestartedBlockLanczos.h.

Referenced by calc_irbl(), and calc_rbl().

◆ _Linop

template<class Field>
LinearOperatorBase<Field>& Grid::ImplicitlyRestartedBlockLanczos< Field >::_Linop
private

◆ _SLinop

template<class Field>
LinearOperatorBase<Field>& Grid::ImplicitlyRestartedBlockLanczos< Field >::_SLinop
private

◆ _poly

template<class Field>
OperatorFunction<Field>& Grid::ImplicitlyRestartedBlockLanczos< Field >::_poly
private

◆ f_grid

template<class Field>
GridRedBlackCartesian* Grid::ImplicitlyRestartedBlockLanczos< Field >::f_grid
private

◆ sf_grid

template<class Field>
GridRedBlackCartesian* Grid::ImplicitlyRestartedBlockLanczos< Field >::sf_grid
private

◆ mrhs

template<class Field>
int Grid::ImplicitlyRestartedBlockLanczos< Field >::mrhs
private

◆ Nevec_acc

template<class Field>
int Grid::ImplicitlyRestartedBlockLanczos< Field >::Nevec_acc
private

◆ split_test

template<class Field>
int Grid::ImplicitlyRestartedBlockLanczos< Field >::split_test

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