Bridge++
Ver. 2.0.2
|
Eigenvalue solver with Implicitly Restarted Lanczos algorithm. More...
#include <aeigensolver_IRLanczos.h>
Public Types | |
typedef FIELD::real_t | real_t |
typedef ComplexTraits< real_t >::complex_t | complex_t |
Public Types inherited from AEigensolver< FIELD, FOPR > | |
typedef FIELD::real_t | real_t |
typedef ComplexTraits< real_t >::complex_t | complex_t |
Public Member Functions | |
AEigensolver_IRLanczos (FOPR *fopr) | |
AEigensolver_IRLanczos (FOPR *fopr, const Parameters ¶ms) | |
~AEigensolver_IRLanczos () | |
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 | get_parameters (Parameters ¶ms) const |
void | solve (std::vector< real_t > &TDa, std::vector< FIELD > &vk, int &Nsbt, int &Nconv, const FIELD &b) |
void | solve (std::vector< complex_t > &TDa, std::vector< FIELD > &vk, int &Nsbt, int &Nconv, const FIELD &b) |
complex version of solve. More... | |
const std::string | class_name |
const std::string | class_name |
const std::string | class_name |
Public Member Functions inherited from AEigensolver< FIELD, FOPR > | |
AEigensolver () | |
virtual | ~AEigensolver () |
Static Public Attributes | |
static const std::string | class_name = "AEigensolver_IRLanczos" |
Private Member Functions | |
void | step (int Nm, int k, std::vector< real_t > &TDa, std::vector< real_t > &TDb, std::vector< FIELD > &vk, FIELD &f) |
void | qrtrf (std::vector< real_t > &TDa, std::vector< real_t > &TDb, int Nk, int Nm, std::vector< real_t > &Qt, real_t Dsh, int kmin, int kmax) |
void | tqri (std::vector< real_t > &TDa, std::vector< real_t > &TDb, int Nk, int Nm, std::vector< real_t > &Qt, int &nconv) |
void | setUnit_Qt (int Nm, std::vector< real_t > &Qt) |
void | schmidt_orthogonalization (FIELD &w, std::vector< FIELD > &vk, int k) |
Private Attributes | |
Bridge::VerboseLevel | m_vl |
int | m_Nk |
int | m_Np |
int | m_Niter_eigen |
real_t | m_Enorm_eigen |
real_t | m_Vthreshold |
std::string | m_sort_type |
FOPR * | m_fopr |
Sorter< real_t > * | m_sorter |
std::vector< real_t > | m_TDb |
std::vector< real_t > | m_TDa2 |
std::vector< real_t > | m_TDb2 |
std::vector< real_t > | m_Qt |
std::vector< int > | m_Iconv |
std::vector< FIELD > | m_B |
FIELD | m_f |
FIELD | m_v |
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] Refactored as a template class. [29 May 2018 H.Matsufuru]
Definition at line 44 of file aeigensolver_IRLanczos.h.
typedef ComplexTraits<real_t>::complex_t AEigensolver_IRLanczos< FIELD, FOPR >::complex_t |
Definition at line 48 of file aeigensolver_IRLanczos.h.
typedef FIELD::real_t AEigensolver_IRLanczos< FIELD, FOPR >::real_t |
Definition at line 47 of file aeigensolver_IRLanczos.h.
|
inline |
Definition at line 78 of file aeigensolver_IRLanczos.h.
|
inline |
Definition at line 81 of file aeigensolver_IRLanczos.h.
AEigensolver_IRLanczos< FIELD, FOPR >::~AEigensolver_IRLanczos |
Definition at line 31 of file aeigensolver_IRLanczos-tmpl.h.
const std::string AEigensolver_IRLanczos< AField< double, QXS >, AFopr< AField< double, QXS > > >::class_name |
Definition at line 24 of file aeigensolver_IRLanczos.cpp.
const std::string AEigensolver_IRLanczos< Field, Fopr >::class_name |
Definition at line 26 of file eigensolver_IRLanczos.cpp.
const std::string AEigensolver_IRLanczos< AField< float, QXS >, AFopr< AField< float, QXS > > >::class_name |
Definition at line 43 of file aeigensolver_IRLanczos.cpp.
|
virtual |
Implements AEigensolver< FIELD, FOPR >.
Definition at line 74 of file aeigensolver_IRLanczos-tmpl.h.
|
private |
Definition at line 596 of file aeigensolver_IRLanczos-tmpl.h.
|
private |
Definition at line 501 of file aeigensolver_IRLanczos-tmpl.h.
|
virtual |
Implements AEigensolver< FIELD, FOPR >.
Definition at line 39 of file aeigensolver_IRLanczos-tmpl.h.
void AEigensolver_IRLanczos< FIELD, FOPR >::set_parameters | ( | const std::string & | sort_type, |
int | Nk, | ||
int | Np, | ||
int | Niter_eigen, | ||
double | Enorm_eigen, | ||
double | Vthreshold | ||
) |
Definition at line 89 of file aeigensolver_IRLanczos-tmpl.h.
void AEigensolver_IRLanczos< FIELD, FOPR >::set_parameters | ( | int | Nk, |
int | Np, | ||
int | Niter_eigen, | ||
double | Enorm_eigen, | ||
double | Vthreshold | ||
) |
Definition at line 107 of file aeigensolver_IRLanczos-tmpl.h.
|
private |
Definition at line 520 of file aeigensolver_IRLanczos-tmpl.h.
|
virtual |
complex version of solve.
Reimplemented from AEigensolver< FIELD, FOPR >.
Definition at line 165 of file aeigensolver_IRLanczos-tmpl.h.
|
virtual |
Reimplemented from AEigensolver< FIELD, FOPR >.
Definition at line 183 of file aeigensolver_IRLanczos-tmpl.h.
|
private |
Definition at line 440 of file aeigensolver_IRLanczos-tmpl.h.
|
private |
Definition at line 535 of file aeigensolver_IRLanczos-tmpl.h.
|
static |
Definition at line 50 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 73 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 58 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 74 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 63 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 71 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 57 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 55 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 56 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 69 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 61 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 64 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 67 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 66 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 68 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 75 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 53 of file aeigensolver_IRLanczos.h.
|
private |
Definition at line 59 of file aeigensolver_IRLanczos.h.