QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
quda::Eig_Solver Class Referenceabstract

#include <lanczos_quda.h>

+ Inheritance diagram for quda::Eig_Solver:

Public Member Functions

 Eig_Solver (QudaEigParam &eigParam, TimeProfile &profile)
 
virtual ~Eig_Solver ()
 
virtual void operator() (double *alpha, double *beta, cudaColorSpinorField **Eig_Vec, cudaColorSpinorField &r, cudaColorSpinorField &Apsi, int k0, int m)=0
 
bool convergence (const double &r2, const double &hq2, const double &r2_tol, const double &hq_tol)
 
void PrintStats (const char *, int k, const double &r2, const double &b2, const double &hq2)
 
void PrintSummary (const char *name, int k, const double &r2, const double &b2)
 
void GrandSchm_test (cudaColorSpinorField &psi, cudaColorSpinorField **Eig_Vec, int Nvec, double *delta)
 

Static Public Member Functions

static Eig_Solvercreate (QudaEigParam &param, RitzMat &ritz_mat, TimeProfile &profile)
 

Protected Attributes

QudaEigParameigParam
 
TimeProfileprofile
 

Detailed Description

New object class for solving an eigen problems, currently Lanczos operator is implemented

Definition at line 16 of file lanczos_quda.h.

Constructor & Destructor Documentation

quda::Eig_Solver::Eig_Solver ( QudaEigParam eigParam,
TimeProfile profile 
)
inline

Definition at line 23 of file lanczos_quda.h.

virtual quda::Eig_Solver::~Eig_Solver ( )
inlinevirtual

Definition at line 24 of file lanczos_quda.h.

Member Function Documentation

bool quda::Eig_Solver::convergence ( const double &  r2,
const double &  hq2,
const double &  r2_tol,
const double &  hq_tol 
)

Not implemented yet!!!, Checkthe eig solver convergence

Definition at line 32 of file eig_solver.cpp.

Eig_Solver * quda::Eig_Solver::create ( QudaEigParam param,
RitzMat ritz_mat,
TimeProfile profile 
)
static

Definition at line 12 of file eig_solver.cpp.

void quda::Eig_Solver::GrandSchm_test ( cudaColorSpinorField psi,
cudaColorSpinorField **  Eig_Vec,
int  Nvec,
double *  delta 
)

Do the GrandSchmit orthogonalization and check the orthogonality of eigen vectors

Definition at line 45 of file eig_solver.cpp.

virtual void quda::Eig_Solver::operator() ( double *  alpha,
double *  beta,
cudaColorSpinorField **  Eig_Vec,
cudaColorSpinorField r,
cudaColorSpinorField Apsi,
int  k0,
int  m 
)
pure virtual

Implemented in quda::ImpRstLanczos, and quda::Lanczos.

void quda::Eig_Solver::PrintStats ( const char *  name,
int  k,
const double &  r2,
const double &  b2,
const double &  hq2 
)

Not implemented yet!!!, Prints out the running statistics of the solver

Definition at line 38 of file eig_solver.cpp.

void quda::Eig_Solver::PrintSummary ( const char *  name,
int  k,
const double &  r2,
const double &  b2 
)

Prints out the summary of the solver convergence (requires a versbosity of QUDA_SUMMARIZE). Assumes QudaEigParam.true_res and QudaEigParam.true_res_hq has been set

Definition at line 42 of file eig_solver.cpp.

Member Data Documentation

QudaEigParam& quda::Eig_Solver::eigParam
protected

Definition at line 19 of file lanczos_quda.h.

TimeProfile& quda::Eig_Solver::profile
protected

Definition at line 20 of file lanczos_quda.h.


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