QUDA
v1.1.0
A library for QCD on GPUs
|
#include <deflation.h>
Public Member Functions | |
Deflation (DeflationParam ¶m, TimeProfile &profile) | |
virtual | ~Deflation () |
void | verify () |
void | increment (ColorSpinorField &V, int n_ev) |
void | reduce (double tol, int max_n_ev) |
void | operator() (ColorSpinorField &out, ColorSpinorField &in) |
void | loadVectors (ColorSpinorField *RV) |
Load the eigen space vectors from file. More... | |
void | saveVectors (ColorSpinorField *RV) |
Save the eigen space vectors in file. More... | |
bool | is_complete () |
Test whether the deflation space is complete and therefore cannot be further extended More... | |
int | size () |
return deflation space size More... | |
double | flops () const |
Return the total flops done on this and all coarser levels. More... | |
Deflation methods :
Definition at line 78 of file deflation.h.
quda::Deflation::Deflation | ( | DeflationParam & | param, |
TimeProfile & | profile | ||
) |
Constructor for Deflation class
param | DeflationParam struct that defines all meta data |
profile | Timeprofile instance used to profile |
Definition at line 22 of file deflation.cpp.
|
virtual |
Destructor for Deflation class. Frees any existing Deflation instance
Definition at line 61 of file deflation.cpp.
double quda::Deflation::flops | ( | ) | const |
Return the total flops done on this and all coarser levels.
Definition at line 74 of file deflation.cpp.
void quda::Deflation::increment | ( | ColorSpinorField & | V, |
int | n_ev | ||
) |
In the incremental eigcg: expands deflation space.
V | container of new eigenvectors |
n_ev | number of vectors to load |
Definition at line 180 of file deflation.cpp.
|
inline |
Test whether the deflation space is complete and therefore cannot be further extended
Definition at line 159 of file deflation.h.
void quda::Deflation::loadVectors | ( | ColorSpinorField * | RV | ) |
Load the eigen space vectors from file.
RV | Loaded eigen-space vectors (pre-allocated) |
Definition at line 344 of file deflation.cpp.
void quda::Deflation::operator() | ( | ColorSpinorField & | out, |
ColorSpinorField & | in | ||
) |
This applies deflation operation on a given spinor vector(s)
out | The projected vector |
in | The input vector (or equivalently the right hand side vector) |
Definition at line 126 of file deflation.cpp.
void quda::Deflation::reduce | ( | double | tol, |
int | max_n_ev | ||
) |
In the incremental eigcg: reduce deflation space based on the following criteria:
tol | : keep all eigenvectors with residual norm less then tol |
max_n_ev | : keep the lowest max_n_ev eigenvectors (conservative) |
Definition at line 258 of file deflation.cpp.
void quda::Deflation::saveVectors | ( | ColorSpinorField * | RV | ) |
Save the eigen space vectors in file.
RV | Save eigen-space vectors from here |
Definition at line 378 of file deflation.cpp.
|
inline |
return deflation space size
Definition at line 164 of file deflation.h.
void quda::Deflation::verify | ( | ) |
This method verifies the correctness of the MG method. It checks:
Verification that the computed approximate eigenvectors are (not) valid
Definition at line 84 of file deflation.cpp.