QUDA  v1.1.0
A library for QCD on GPUs
Public Member Functions | List of all members
quda::GMResDR Class Reference

#include <invert_quda.h>

+ Inheritance diagram for quda::GMResDR:

Public Member Functions

 GMResDR (const DiracMatrix &mat, const DiracMatrix &matSloppy, const DiracMatrix &matPrecon, SolverParam &param, TimeProfile &profile)
 
 GMResDR (const DiracMatrix &mat, Solver &K, const DiracMatrix &matSloppy, const DiracMatrix &matPrecon, SolverParam &param, TimeProfile &profile)
 
virtual ~GMResDR ()
 
void operator() (ColorSpinorField &out, ColorSpinorField &in)
 
void RunDeflatedCycles (ColorSpinorField *out, ColorSpinorField *in, const double tol_threshold)
 
int FlexArnoldiProcedure (const int start_idx, const bool do_givens)
 
void RestartVZH ()
 
void UpdateSolution (ColorSpinorField *x, ColorSpinorField *r, bool do_gels)
 
bool hermitian ()
 
- Public Member Functions inherited from quda::Solver
 Solver (const DiracMatrix &mat, const DiracMatrix &matSloppy, const DiracMatrix &matPrecon, const DiracMatrix &matEig, SolverParam &param, TimeProfile &profile)
 
virtual ~Solver ()
 
virtual void blocksolve (ColorSpinorField &out, ColorSpinorField &in)
 
const DiracMatrixM ()
 
const DiracMatrixMsloppy ()
 
const DiracMatrixMprecon ()
 
const DiracMatrixMeig ()
 
bool convergence (double r2, double hq2, double r2_tol, double hq_tol)
 
bool convergenceHQ (double r2, double hq2, double r2_tol, double hq_tol)
 Test for HQ solver convergence – ignore L2 residual. More...
 
bool convergenceL2 (double r2, double hq2, double r2_tol, double hq_tol)
 Test for L2 solver convergence – ignore HQ residual. More...
 
void PrintStats (const char *name, int k, double r2, double b2, double hq2)
 Prints out the running statistics of the solver (requires a verbosity of QUDA_VERBOSE) More...
 
void PrintSummary (const char *name, int k, double r2, double b2, double r2_tol, double hq_tol)
 Prints out the summary of the solver convergence (requires a verbosity of QUDA_SUMMARIZE). Assumes SolverParam.true_res and SolverParam.true_res_hq has been set. More...
 
double precisionEpsilon (QudaPrecision prec=QUDA_INVALID_PRECISION) const
 Returns the epsilon tolerance for a given precision, by default returns the solver precision. More...
 
void constructDeflationSpace (const ColorSpinorField &meta, const DiracMatrix &mat)
 Constructs the deflation space and eigensolver. More...
 
void destroyDeflationSpace ()
 Destroy the allocated deflation space. More...
 
void extendSVDDeflationSpace ()
 Extends the deflation space to twice its size for SVD deflation. More...
 
void injectDeflationSpace (std::vector< ColorSpinorField * > &defl_space)
 Injects a deflation space into the solver from the vector argument. Note the input space is reduced to zero size as a result of calling this function, with responsibility for the space transferred to the solver. More...
 
void extractDeflationSpace (std::vector< ColorSpinorField * > &defl_space)
 Extracts the deflation space from the solver to the vector argument. Note the solver deflation space is reduced to zero size as a result of calling this function, with responsibility for the space transferred to the argument. More...
 
int deflationSpaceSize () const
 Returns the size of deflation space. More...
 
void setDeflateCompute (bool flag)
 Sets the deflation compute boolean. More...
 
void setRecomputeEvals (bool flag)
 Sets the recompute evals boolean. More...
 
virtual double flops () const
 Return flops. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from quda::Solver
static Solvercreate (SolverParam &param, const DiracMatrix &mat, const DiracMatrix &matSloppy, const DiracMatrix &matPrecon, const DiracMatrix &matEig, TimeProfile &profile)
 Solver factory. More...
 
static double stopping (double tol, double b2, QudaResidualType residual_type)
 Set the solver L2 stopping condition. More...
 
- Protected Attributes inherited from quda::Solver
const DiracMatrixmat
 
const DiracMatrixmatSloppy
 
const DiracMatrixmatPrecon
 
const DiracMatrixmatEig
 
SolverParamparam
 
TimeProfileprofile
 
int node_parity
 
EigenSolvereig_solve
 
bool deflate_init
 
bool deflate_compute
 
bool recompute_evals
 
std::vector< ColorSpinorField * > evecs
 
std::vector< Complexevals
 

Detailed Description

Definition at line 1408 of file invert_quda.h.

Constructor & Destructor Documentation

◆ GMResDR() [1/2]

quda::GMResDR::GMResDR ( const DiracMatrix mat,
const DiracMatrix matSloppy,
const DiracMatrix matPrecon,
SolverParam param,
TimeProfile profile 
)

Definition at line 222 of file inv_gmresdr_quda.cpp.

◆ GMResDR() [2/2]

quda::GMResDR::GMResDR ( const DiracMatrix mat,
Solver K,
const DiracMatrix matSloppy,
const DiracMatrix matPrecon,
SolverParam param,
TimeProfile profile 
)

Definition at line 249 of file inv_gmresdr_quda.cpp.

◆ ~GMResDR()

quda::GMResDR::~GMResDR ( )
virtual

Definition at line 262 of file inv_gmresdr_quda.cpp.

Member Function Documentation

◆ FlexArnoldiProcedure()

int quda::GMResDR::FlexArnoldiProcedure ( const int  start_idx,
const bool  do_givens = false 
)

Definition at line 385 of file inv_gmresdr_quda.cpp.

◆ hermitian()

bool quda::GMResDR::hermitian ( )
inlinevirtual
Returns
Whether the solver is only for Hermitian systems

Implements quda::Solver.

Definition at line 1450 of file invert_quda.h.

◆ operator()()

void quda::GMResDR::operator() ( ColorSpinorField out,
ColorSpinorField in 
)
virtual

Implements quda::Solver.

Definition at line 462 of file inv_gmresdr_quda.cpp.

◆ RestartVZH()

void quda::GMResDR::RestartVZH ( )

Definition at line 322 of file inv_gmresdr_quda.cpp.

◆ RunDeflatedCycles()

void quda::GMResDR::RunDeflatedCycles ( ColorSpinorField out,
ColorSpinorField in,
const double  tol_threshold 
)

◆ UpdateSolution()

void quda::GMResDR::UpdateSolution ( ColorSpinorField x,
ColorSpinorField r,
bool  do_gels 
)

Definition at line 292 of file inv_gmresdr_quda.cpp.


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