Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Eigensolver_IRLanczos Class Reference

Eigenvalue solver with Implicitly Restarted Lanczos algorithm. More...

#include <eigensolver_IRLanczos.h>

Inheritance diagram for Eigensolver_IRLanczos:
Eigensolver

Public Member Functions

 Eigensolver_IRLanczos (Fopr *fopr, SortField *sort)
 
void set_parameters (const Parameters &params)
 
void set_parameters (int Nk, int Np, int Niter_eigen, double Enorm_eigen, double Vthreshold)
 
void solve (std::valarray< double > &TDa, std::valarray< Field > &vk, int &Nsbt, int &Nconv, const Field &b)
 
- Public Member Functions inherited from Eigensolver
 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::valarray< double > &TDa, std::valarray< double > &TDb, std::valarray< Field > &vk, Field &f)
 
void qrtrf (std::valarray< double > &TDa, std::valarray< double > &TDb, int Nk, int Nm, std::valarray< double > &Qt, double Dsh, int kmin, int kmax)
 
void tqri (std::valarray< double > &TDa, std::valarray< double > &TDb, int Nk, int Nm, std::valarray< double > &Qt)
 
void setUnit_Qt (int Nm, std::valarray< double > &Qt)
 
void schmidt_orthogonalization (Field &w, std::valarray< Field > &vk, int k)
 

Private Attributes

int m_Nk
 
int m_Np
 
int m_Niter_eigen
 
double m_Enorm_eigen
 
double m_Vthreshold
 
Foprm_fopr
 
SortFieldm_sort
 

Additional Inherited Members

- Protected Attributes inherited from Eigensolver
Bridge::VerboseLevel m_vl
 

Detailed Description

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]

Definition at line 45 of file eigensolver_IRLanczos.h.

Constructor & Destructor Documentation

Eigensolver_IRLanczos::Eigensolver_IRLanczos ( Fopr fopr,
SortField sort 
)
inline

Definition at line 63 of file eigensolver_IRLanczos.h.

Member Function Documentation

void Eigensolver_IRLanczos::qrtrf ( std::valarray< double > &  TDa,
std::valarray< double > &  TDb,
int  Nk,
int  Nm,
std::valarray< double > &  Qt,
double  Dsh,
int  kmin,
int  kmax 
)
private

Definition at line 446 of file eigensolver_IRLanczos.cpp.

void Eigensolver_IRLanczos::schmidt_orthogonalization ( Field w,
std::valarray< Field > &  vk,
int  k 
)
private

Definition at line 360 of file eigensolver_IRLanczos.cpp.

void Eigensolver_IRLanczos::set_parameters ( const Parameters params)
virtual

Implements Eigensolver.

Definition at line 51 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 82 of file eigensolver_IRLanczos.cpp.

void Eigensolver_IRLanczos::setUnit_Qt ( int  Nm,
std::valarray< double > &  Qt 
)
private

Definition at line 374 of file eigensolver_IRLanczos.cpp.

void Eigensolver_IRLanczos::solve ( std::valarray< double > &  TDa,
std::valarray< Field > &  vk,
int &  Nsbt,
int &  Nconv,
const Field b 
)
virtual

Implements Eigensolver.

Definition at line 117 of file eigensolver_IRLanczos.cpp.

void Eigensolver_IRLanczos::step ( int  Nm,
int  k,
std::valarray< double > &  TDa,
std::valarray< double > &  TDb,
std::valarray< Field > &  vk,
Field f 
)
private

Definition at line 319 of file eigensolver_IRLanczos.cpp.

void Eigensolver_IRLanczos::tqri ( std::valarray< double > &  TDa,
std::valarray< double > &  TDb,
int  Nk,
int  Nm,
std::valarray< double > &  Qt 
)
private

Definition at line 387 of file eigensolver_IRLanczos.cpp.

Member Data Documentation

const std::string Eigensolver_IRLanczos::class_name = "Eigensolver_IRLanczos"
static

Definition at line 48 of file eigensolver_IRLanczos.h.

double Eigensolver_IRLanczos::m_Enorm_eigen
private

Definition at line 55 of file eigensolver_IRLanczos.h.

Fopr* Eigensolver_IRLanczos::m_fopr
private

Definition at line 58 of file eigensolver_IRLanczos.h.

int Eigensolver_IRLanczos::m_Niter_eigen
private

Definition at line 54 of file eigensolver_IRLanczos.h.

int Eigensolver_IRLanczos::m_Nk
private

Definition at line 52 of file eigensolver_IRLanczos.h.

int Eigensolver_IRLanczos::m_Np
private

Definition at line 53 of file eigensolver_IRLanczos.h.

SortField* Eigensolver_IRLanczos::m_sort
private

Definition at line 59 of file eigensolver_IRLanczos.h.

double Eigensolver_IRLanczos::m_Vthreshold
private

Definition at line 56 of file eigensolver_IRLanczos.h.


The documentation for this class was generated from the following files: