QUDA  0.9.0
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:
Inheritance graph
[legend]
Collaboration diagram for quda::Eig_Solver:
Collaboration graph
[legend]

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

◆ Eig_Solver()

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

Definition at line 23 of file lanczos_quda.h.

◆ ~Eig_Solver()

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

Definition at line 24 of file lanczos_quda.h.

Member Function Documentation

◆ convergence()

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 34 of file eig_solver.cpp.

◆ create()

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

Definition at line 12 of file eig_solver.cpp.

References errorQuda, param, profile, QUDA_IMP_RST_LANCZOS, QUDA_LANCZOS, and quda::report().

Referenced by lanczosQuda().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GrandSchm_test()

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 47 of file eig_solver.cpp.

References quda::blas::caxpy(), quda::blas::cDotProduct(), delta, e, fabs(), getVerbosity(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, printf(), and QUDA_VERBOSE.

Referenced by quda::Lanczos::operator()().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator()()

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::Lanczos.

◆ PrintStats()

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 40 of file eig_solver.cpp.

◆ PrintSummary()

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 44 of file eig_solver.cpp.

Member Data Documentation

◆ eigParam

QudaEigParam& quda::Eig_Solver::eigParam
protected

Definition at line 19 of file lanczos_quda.h.

◆ profile

TimeProfile& quda::Eig_Solver::profile
protected

Definition at line 20 of file lanczos_quda.h.

Referenced by create(), and quda::Lanczos::operator()().


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