|
Bridge++
Ver. 2.0.4
|
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.