Bridge++
Ver. 1.3.x
|
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) | |
void | set_parameters (const Parameters ¶ms) |
void | set_parameters (int Nk, int Np, int Niter_eigen, double Enorm_eigen, double Vthreshold) |
void | set_parameters (const std::string &sort_type, int Nk, int Np, int Niter_eigen, double Enorm_eigen, double Vthreshold) |
void | solve (std::vector< double > &TDa, std::vector< Field > &vk, int &Nsbt, int &Nconv, const Field &b) |
![]() | |
Eigensolver () | |
virtual | ~Eigensolver () |
void | set_parameter_verboselevel (Bridge::VerboseLevel vl) |
Static Public Attributes | |
static const std::string | class_name = "Eigensolver_IRLanczos" |
Private Member Functions | |
void | step (int Nm, 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, int Nk, int Nm, std::vector< double > &Qt, double Dsh, int kmin, int kmax) |
void | tqri (std::vector< double > &TDa, std::vector< double > &TDb, int Nk, int Nm, std::vector< double > &Qt) |
void | setUnit_Qt (int Nm, std::vector< double > &Qt) |
void | schmidt_orthogonalization (Field &w, std::vector< Field > &vk, 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 | |
![]() | |
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 47 of file eigensolver_IRLanczos.h.
|
inline |
Definition at line 64 of file eigensolver_IRLanczos.h.
|
inline |
Definition at line 67 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 467 of file eigensolver_IRLanczos.cpp.
|
private |
Definition at line 383 of file eigensolver_IRLanczos.cpp.
|
virtual |
Implements Eigensolver.
Definition at line 50 of file eigensolver_IRLanczos.cpp.
void Eigensolver_IRLanczos::set_parameters | ( | int | Nk, |
int | Np, | ||
int | Niter_eigen, | ||
double | Enorm_eigen, | ||
double | Vthreshold | ||
) |
Definition at line 94 of file eigensolver_IRLanczos.cpp.
void Eigensolver_IRLanczos::set_parameters | ( | const std::string & | sort_type, |
int | Nk, | ||
int | Np, | ||
int | Niter_eigen, | ||
double | Enorm_eigen, | ||
double | Vthreshold | ||
) |
Definition at line 80 of file eigensolver_IRLanczos.cpp.
|
private |
Definition at line 395 of file eigensolver_IRLanczos.cpp.
|
virtual |
Implements Eigensolver.
Definition at line 129 of file eigensolver_IRLanczos.cpp.
|
private |
Definition at line 338 of file eigensolver_IRLanczos.cpp.
|
private |
Definition at line 408 of file eigensolver_IRLanczos.cpp.
|
static |
Definition at line 50 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 57 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 60 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 56 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 54 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 55 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 61 of file eigensolver_IRLanczos.h.
|
private |
Definition at line 58 of file eigensolver_IRLanczos.h.