|
Bridge++
Ver. 2.0.4
|
Eigenvalue solver with Implicitly Restarted Arnoldi algorithm. More...
#include <aeigensolver_IRArnoldi.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_IRArnoldi (FOPR *fopr) | |
| AEigensolver_IRArnoldi (FOPR *fopr, const Parameters ¶ms) | |
| ~AEigensolver_IRArnoldi () | |
| 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< 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 () |
| virtual void | solve (std::vector< real_t > &TDa, std::vector< FIELD > &vk, int &Nsbt, int &Nconv, const FIELD &b) |
Static Public Attributes | |
| static const std::string | class_name = "AEigensolver_IRArnoldi" |
Private Member Functions | |
| void | step (int Nm, int k, std::vector< FIELD > &vk, FIELD &f) |
| void | deflation (int k1, int k2, int Kdis, std::vector< complex_t > &TDa, std::vector< FIELD > &vk, complex_t &beta) |
| deflation of converged eigenvectors. More... | |
| void | qrtrf (std::vector< complex_t > &Ht, int Nk, int Nm, std::vector< complex_t > &Qt, complex_t Dsh, int kmin, int kmax) |
| void | tqri (std::vector< complex_t > &Ht, int k1, int Nk, int Nm, std::vector< complex_t > &Qt, int &nconv) |
| void | setUnit_Qt (int Nm, std::vector< complex_t > &Qt) |
| void | schmidt (int Nk, std::vector< FIELD > &vk) |
| void | shift_wilkinson (complex_t &kappa, const complex_t a, const complex_t b, const complex_t c, const complex_t d) |
| void | check_Qt (const int Nk, const int Nm, std::vector< complex_t > &Qt, std::vector< complex_t > &Ht, std::vector< complex_t > &At) |
| void | eigenvector_Ht (std::vector< complex_t > &Yt, std::vector< complex_t > &St, int km, int Nm) |
| void | mult_Qt (std::vector< complex_t > &Yt, std::vector< complex_t > &Qt, std::vector< complex_t > &Xt, int km, int Nm) |
| Yt = Qt * Xt. More... | |
| void | check_eigen_Ht (std::vector< complex_t > &Ht, std::vector< complex_t > &TDa, std::vector< complex_t > &Xt, int km, int Nm) |
| void | reconst_Ht (std::vector< complex_t > &Ht, std::vector< complex_t > &Qt, complex_t &beta, std::vector< FIELD > &vk, int Nk) |
| void | reunit_Qt (std::vector< complex_t > &Qt, int Nk) |
| int | index (int i, int j) |
Private Attributes | |
| Bridge::VerboseLevel | m_vl |
| int | m_Nk |
| int | m_Np |
| int | m_Nm |
| Nm = Nk + Np. More... | |
| int | m_Niter_eigen |
| real_t | m_Enorm_eigen |
| real_t | m_Vthreshold |
| given as an absolute value More... | |
| std::string | m_sort_type |
| FOPR * | m_fopr |
| Sorter< complex_t > * | m_sorter |
| std::vector< complex_t > | m_TDa2 |
| std::vector< complex_t > | m_Qt |
| std::vector< complex_t > | m_Ht |
| Hessenberg matrix. More... | |
| std::vector< complex_t > | m_Ht2 |
| temporary Hessenberg matrix More... | |
| std::vector< complex_t > | m_Yt |
| std::vector< int > | m_Iconv |
| std::vector< FIELD > | m_B |
| FIELD | m_f |
| FIELD | m_v |
Eigenvalue solver with Implicitly Restarted Arnoldi algorithm.
This template class determines eigenvalues and eigenvectors for a given non-hermitian fermion operator. [24 Feb 2020 H.Matsufuru]
Definition at line 36 of file aeigensolver_IRArnoldi.h.
| typedef ComplexTraits<real_t>::complex_t AEigensolver_IRArnoldi< FIELD, FOPR >::complex_t |
Definition at line 40 of file aeigensolver_IRArnoldi.h.
| typedef FIELD::real_t AEigensolver_IRArnoldi< FIELD, FOPR >::real_t |
Definition at line 39 of file aeigensolver_IRArnoldi.h.
|
inline |
Definition at line 73 of file aeigensolver_IRArnoldi.h.
|
inline |
Definition at line 77 of file aeigensolver_IRArnoldi.h.
| AEigensolver_IRArnoldi< FIELD, FOPR >::~AEigensolver_IRArnoldi |
Definition at line 31 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 939 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 797 of file aeigensolver_IRArnoldi-tmpl.h.
| const std::string AEigensolver_IRArnoldi< AField< double, QXS >, AFopr< AField< double, QXS > > >::class_name |
Definition at line 23 of file aeigensolver_IRArnoldi.cpp.
| const std::string AEigensolver_IRArnoldi< Field, Fopr >::class_name |
Definition at line 26 of file eigensolver_IRArnoldi.cpp.
| const std::string AEigensolver_IRArnoldi< AField< float, QXS >, AFopr< AField< float, QXS > > >::class_name |
Definition at line 43 of file aeigensolver_IRArnoldi.cpp.
|
private |
deflation of converged eigenvectors.
Definition at line 510 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 885 of file aeigensolver_IRArnoldi-tmpl.h.
|
virtual |
Implements AEigensolver< FIELD, FOPR >.
Definition at line 74 of file aeigensolver_IRArnoldi-tmpl.h.
|
inlineprivate |
Definition at line 154 of file aeigensolver_IRArnoldi.h.
|
private |
Yt = Qt * Xt.
Definition at line 920 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 685 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 1007 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 972 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 582 of file aeigensolver_IRArnoldi-tmpl.h.
|
virtual |
Implements AEigensolver< FIELD, FOPR >.
Definition at line 39 of file aeigensolver_IRArnoldi-tmpl.h.
| void AEigensolver_IRArnoldi< 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_IRArnoldi-tmpl.h.
| void AEigensolver_IRArnoldi< FIELD, FOPR >::set_parameters | ( | int | Nk, |
| int | Np, | ||
| int | Niter_eigen, | ||
| double | Enorm_eigen, | ||
| double | Vthreshold | ||
| ) |
Definition at line 107 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 600 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 842 of file aeigensolver_IRArnoldi-tmpl.h.
|
virtual |
complex version of solve.
Reimplemented from AEigensolver< FIELD, FOPR >.
Definition at line 170 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 545 of file aeigensolver_IRArnoldi-tmpl.h.
|
private |
Definition at line 615 of file aeigensolver_IRArnoldi-tmpl.h.
|
static |
Definition at line 42 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 68 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 51 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 69 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 56 of file aeigensolver_IRArnoldi.h.
|
private |
Hessenberg matrix.
Definition at line 62 of file aeigensolver_IRArnoldi.h.
|
private |
temporary Hessenberg matrix
Definition at line 63 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 66 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 50 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 47 of file aeigensolver_IRArnoldi.h.
|
private |
Nm = Nk + Np.
Definition at line 49 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 48 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 60 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 54 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 57 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 59 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 70 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 45 of file aeigensolver_IRArnoldi.h.
|
private |
given as an absolute value
Definition at line 52 of file aeigensolver_IRArnoldi.h.
|
private |
Definition at line 64 of file aeigensolver_IRArnoldi.h.