Bridge++
Version 1.5.4
|
Eigenvalue solver with Implicitly Restarted Lanczos algorithm. More...
#include <eigensolver_IRLanczos.h>
Public Member Functions | |
Eigensolver_IRLanczos (Fopr *fopr) | |
Eigensolver_IRLanczos (unique_ptr< Fopr > &fopr) | |
~Eigensolver_IRLanczos () | |
void | set_parameters (const Parameters ¶ms) |
void | set_parameters (const int Nk, const int Np, const int Niter_eigen, const double Enorm_eigen, const double Vthreshold) |
void | set_parameters (const std::string &sort_type, const int Nk, const int Np, const int Niter_eigen, const double Enorm_eigen, const double Vthreshold) |
void | solve (std::vector< double > &TDa, std::vector< Field > &vk, int &Nsbt, int &Nconv, const Field &b) |
Public Member Functions inherited from Eigensolver | |
Eigensolver () | |
virtual | ~Eigensolver () |
void | set_parameter_verboselevel (const Bridge::VerboseLevel vl) |
Static Public Attributes | |
static const std::string | class_name = "Eigensolver_IRLanczos" |
Private Member Functions | |
void | step (const int Nm, const int k, std::vector< double > &TDa, std::vector< double > &TDb, std::vector< Field > &vk, Field &f) |
void | qrtrf (std::vector< double > &TDa, std::vector< double > &TDb, const int Nk, const int Nm, std::vector< double > &Qt, const double Dsh, const int kmin, const int kmax) |
void | tqri (std::vector< double > &TDa, std::vector< double > &TDb, const int Nk, const int Nm, std::vector< double > &Qt) |
void | setUnit_Qt (const int Nm, std::vector< double > &Qt) |
void | schmidt_orthogonalization (Field &w, const std::vector< Field > &vk, const int k) |
Private Attributes | |
int | m_Nk |
int | m_Np |
int | m_Niter_eigen |
double | m_Enorm_eigen |
double | m_Vthreshold |
Fopr * | m_fopr |
Sorter * | m_sorter |
Additional Inherited Members | |
Protected Attributes inherited from Eigensolver | |
Bridge::VerboseLevel | m_vl |
Eigenvalue solver with Implicitly Restarted Lanczos algorithm.
This class determines eigenvalues and eigenvectors for a given fermion operator. Low- or high-lying eigenmodes are determined by chaning SortField class object. 28 Dec 2011 H.Matsufuru YAML is implemented. [14 Nov 2012 Y.Namekawa] unique_ptr is introduced to avoid memory leaks [21 Mar 2015 Y.Namekawa]
Definition at line 40 of file eigensolver_IRLanczos.h.
|
inline |
Definition at line 57 of file eigensolver_IRLanczos.h.
|
inline |
Definition at line 60 of file eigensolver_IRLanczos.h.
Eigensolver_IRLanczos::~Eigensolver_IRLanczos | ( | ) |
Definition at line 19 of file eigensolver_IRLanczos.cpp.
|
private |
Definition at line 446 of file eigensolver_IRLanczos.cpp.
|
private |
Definition at line 362 of file eigensolver_IRLanczos.cpp.
|
virtual |
Implements Eigensolver.
Definition at line 26 of file eigensolver_IRLanczos.cpp.
void Eigensolver_IRLanczos::set_parameters | ( | const int | Nk, |
const int | Np, | ||
const int | Niter_eigen, | ||
const double | Enorm_eigen, | ||
const double | Vthreshold | ||
) |
Definition at line 70 of file eigensolver_IRLanczos.cpp.
void Eigensolver_IRLanczos::set_parameters | ( | const std::string & | sort_type, |
const int | Nk, | ||
const int | Np, | ||
const int | Niter_eigen, | ||
const double | Enorm_eigen, | ||
const double | Vthreshold | ||
) |
Definition at line 56 of file eigensolver_IRLanczos.cpp.
|
private |
Definition at line 374 of file eigensolver_IRLanczos.cpp.
|
virtual |
Implements Eigensolver.
Definition at line 105 of file eigensolver_IRLanczos.cpp.
|
private |
Definition at line 315 of file eigensolver_IRLanczos.cpp.
|
private |
Definition at line 387 of file eigensolver_IRLanczos.cpp.
|
static |
Definition at line 43 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 50 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 53 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 49 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 47 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 48 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 54 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 51 of file eigensolver_IRLanczos.h.